Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Shell命令行操作

[复制链接]
diyf 发表于 2005-7-12 14:09:28 | 显示全部楼层 |阅读模式
Linux shell 简介

Linux shell指的是一种程序,有了它,用户就能通过键盘输入指令来操作计算机了。Shell会执行用户输入的命令,并且在显示器上显示执行结果。这种交互的全过程都是基于文本的,与其他各章介绍的图形化操作不同。这种面向命令行的用户界面被称为 CLI(Command Line interface)。在图形化用户界面(GUI)出现之前,人们一直是通过命令行界面来操作计算机的。
现在,基于图形界面的工具越来越多,许多工作都不必使用Shell就可以完成了。然而,专业的 Linux用户认为Shell是一个非常有用的工具,学习 Linux时一定要学习Shell,至少要掌握一些基础知识和基本的命令
启动shell

在启动Linux桌面系统后,Shell已经在后台运行起来了,但并没有显示出来。如果想让它显示出来,
按如下的组合键就可以:
<Ctrl> + <Alt> + <F2>
组合键中的F2可以替换为F3、F4、F5、F6。
如果要回到图形界面,则按如下组合键:
<Ctrl> + <Alt> + <F7>
另外,在图形桌面环境下运行“系统终端”也可以执行Shell命令,与用组合键切换出来的命令行界面
是等效的。“系统终端”启动后是一个命令行操作窗口,可以随时放大缩小,随时关闭,比较方便,推荐使用。启动“系统终端”的方法是:
【开始】 → 【应用程序】 → 【附件】 → 【系统终端】
该软件允许建立多个Shell客户端,它们相互独立,可以通过标签
在彼此之间进行切换。
Shell命令基本规则

一般格式

Shell命令的一般格式如下:
命令名 【选项】 【参数1】 【参数2】...
【选项】是对命令的特别定义,以减号(-)开始,多个选项可以用一个 减号(-)连起来,如ls -l -a 与
ls -la 相同。
【参数】提供命令运行的信息,或者是命令执行过程中所使用的文件名。
使用分号(可以将两个命令隔开,这样可以实现一行中输入多个命令。命令的执行顺序和输入的顺序
相同。

命令补全

在送入命令的任何时刻,可以按<Tab>键,当这样做时,系统将试图补全此时已输入的命令。如果已
经输入的字符串不足以唯一地确定它应该使用的命令,系统将发出警告声。再次按<Tab>键,系统则会给出可用来用来补全的字符串清单。使用命令补全功能,可以提高使用长命令或操作较长名字的文件或文件夹的都是非常有意义的。

历史命令

系统会把过去输入过的命令记忆下来,只要按方向键中的上下箭头,就可以选择以前输入过的命令了。

联机帮助

可以通过man命令来查看任何命令的联机帮助信息。它将命令名作为参数,该命令的语法格式为:
man 【命令名】
在任何命令之后给help参数,也可以显示该命令的帮助信息。
常用的Shell命令

目录和文件操作

查看当前目录相对于根目录的位置
pwd
查看当前目录内容
ls
以长格式查看当前目录内容。对应每个文件的条目将包括连接数目、所有者、大小、最后修改时间、
权限等内容
ls -l
改变当前目录。目的目录名可用相对路径表示,也可以用绝对路径表示。
cd [目的目录名]
转移到上一级目录
cd ..
创建目录
mkdir [新目录名]
例:
mkdir /var/ftp
删除空目录
rmdir [目录名]
例:
rmdir /var/ftp
递归删除一个目录中的所有文件和该目录本身。
rm -r [目录名]
复制文件
cp [源文件名] [目标文件名]
重命名文件
mv [源文件名] [目标文件名]
例:
mv /etc/rc.d/rc3.d/K50xinetd /etc/rc.d/rc3.d/S50xinetd
删除文件
rm [文件名]
不需确认地删除多个文件
rm -f [带通配符的文件名]
硬链接文件。不能对目录文件做硬链接,不能在不同的文件系统之间做硬链接。
ln [源文件名] [目标文件名]
如下面的例子。源文件abc.png存储在/root下,硬链接myabc.png存储在用户workman的家目录下。
做了这个链接之后,用户root和workman就可以使用不同的文件名来读写同一个图形文件。即使root把abc.png删除,这个图形文件仍然存在,只有当workman把myabc.png也删除后,这个文件才会彻底从计算机上消失。
ln /root/abc.png /home/workman/myabc.png
软链接文件。也就是符号链接。可用此法创建文件的快捷方式。
ln -s [源文件或文件夹名] [目标名]
按文件名查找文件。
find / -name nametofind -print
改变文件所有者。
例:
chown workman.workgroup /data/pub/upload
改变文件访问权限
例:
chmod -R 755 /usr/local/LumaQQ
查看一个文件有多少行
wc -l usr.bin
查看一个文件有多少字节
wc -c usr.bin
查看文本文件的内容
cat usr.bin

用户管理

改变身份。如果不指定用户名,则默认将用户身份换至root。从root身份切换到其他任何身份都不需
要口令。
su [username]
添加用户
例:
adduser -c "MyW" -d /home/workman -g root workman
设置用户口令
例:
passwd workman

安装和卸载软件

安装rpm软件
例:
rpm -Uvh kdevelope-3.1-1.i386.rpm
卸载rpm软件
例:
rpm -e kdevelope
配置、编译、安装、卸载源码发布的软件包。
./configure
make
make install
make clean
卸载源码发布的软件包
make uninstall

文件的打包和解包

解tar包
例:
tar -xvzf gaim-0.77.tar.gz
tar -jxvf XXX.tar.bz2
生成tar包
例:
tar cvf - /etc | gzip-9c > backup.tar.gz

生成rar包
rar a test.rar file1.txt
rar a test.rar dir1
解rar包
rar x test.rar
解zip包
unzip lumaqq_p3.zip
挂装一个iso文件,参数 iocharset=cp936 并不是必须的。如果被挂装的iso文件中存在中文文件名,此参数必须带,否则,中文文件名将显示为乱码。
mount -t iso9660 -o loop,iocharset=cp936 /data/myarc.iso /mnt/iso
卸装iso文件
umount /mnt/iso
生成一个iso文件
cp /dev/cdrom /home/gsh/TomJerry1.iso

远程Shell登录

ssh远程登录进行命令行操作
ssh -l workman 192.168.0.101
ssh远程登录进行文件的传送
sftp workman@192.168.0.101
磁盘信息的低级复制

把Linux分区引导扇区的信息提取出来生成一个文件bootsect.lnx,放到Windows的C盘。
dd if=/dev/hda2 of=bootsect.lnx bs=512 count=1
把bootdisk.img写到软盘上。
dd if=bootdisk.img of=/dev/fd0
使用缩略符号

波浪线 (~)代表家目录。如果现在位于/home/workman/MyOSS-Stuff/IOSN,那么只需执行“cd ~”就可
以回到家目录/home/workman而不必输入“cd /home/workman”。
一个点(.)代表当前目录,而“../” 代表上一级目录。“../”可以嵌套使用,比如“../../”。
输出重定向


在默认的情况下,Linux从键盘接受输入,并将命令的输出送到屏幕。在有时候,这样做并不方便。比如,在一个目录里有很多文件,如果只用简单的ls命令,在屏幕上显示的输出结果可能上千行!为了得到我们需要的信息。我们或许需要把这些结果存储到一个文件中然后再查看这个文件,这就要用到系统的输出重定向功能。
输出重定向的操作符为>或>>。
单个大于号(>)后面紧跟文件名。如果指定的文件不存在,将建立这一文件。如果指定的文件存在,则
文件原有的内容将被覆盖。如果使用两个大于号(>>)则会把输出内容追加到原来文件里面。下面是一个例子:
1.[-(/tmp)> ls /usr/bin >> usr.bin
2.[-(/tmp)> wc -l usr.bin
3.2171 usr.bin
4.[-(/tmp)> ls /usr/bin >> usr.bin
5.[-(/tmp)> wc -l usr.bin
6.4342 usr.bin
7.[-(/tmp)> ls /usr/bin > usr.bin
8.[-(/tmp)> wc -l usr.bin
9.2171 usr.bin
注:行号是为了行文方便加入的,并不是shell的输出.
第1行,/usr/bin中的文件列表被写入文件usr.bin,由于这个文件原来并不存在,系统会自动创建。从第3行可以看出usr.bin的行数。在第4行又重复了第1行的命令,由于使用的是>>,usr/bin中的文件列表被追加写入文件,usr.bin的行数也就增加了一倍。在第7行我们使用了>, usr/bin中的文件列表被写入文件,usr.bin中原有的内容被覆盖了,行数也变成了新的值。
管道

将一个程序的标准输出写道一个文件中去,再将这个文件的内容作为另一个命令的标准输入,等效于
通过临时文件将两个命令结合起来。这种情况很普遍,需要Linux系统提供一种功能:它不需要或不必使用临时文件,就能将两条命令结合在一起。这种功能就是管道。
管道的操作符是一个竖杠 “|”。管道是可以嵌套使用的,因此可以把多个命令结合在一起。
接上例,如果执行下面的命令将直接返回/usr/bin中的文件列表的行数,而不是列表的内容。
ls /usr/bin | wc -l
远程Shell服务


支持远程操作是Linux的一个非常重要的特点。利用此功能,用户从另一台计算机远程登录上来,进
行Shell命令的操作。
红旗Linux4.1桌面版已经安装了支持远程操作的安全Shell服务软件OpenSSH。在默认情况下,此软
件并没有运行起来。可以通过服务控制启动OpenSSH来支持远程操作。下面介绍一下操作方法。
首先,从开始菜单启动服务管理工具,方法是:
【开始】→【设置】→【控制面板】→【服务】
从服务管理工具中找到sshd(安全Shell服务),如图9-2。选中它,从操作菜单中就可以启动安全Shell
服务 了:
【操作】→【启动】
如果希望,每次启动计算机时,自动启动安全Shell服务 ,可以选中它,修改它的属性:
【操作】→【属性】
修改属性的界面,把启动类别改成自动即可。
提示:如果想用一台装有windows系统的电脑进行远程操作,要在这台电脑上安装ssh客户端程序。
可以使用运行于Windows上的专用客户端程序SSHSecureShellClient。另外使用putty等通用的ssh客户端软件也能进行远程操作。
Shell下使用汉字


如果通过“系统终端”使用Shell,“系统终端”本身已支持汉字,并不会遇到困难。
在系统启动时直接进入Shell命令行方式时,或者用<Ctrl> + <Alt> + <F2>组合键切换进入Shell命令行方式时,有可能出现汉字乱显的现象。这是因为,这种Shell命令行方式在默认情况下是不支持汉字的。具体表现就是,用ls命令查看某目录内容时,如果其中有以汉字命名的文件或文件夹,将显示为乱码。
要想在Shell命令行方式下正确显示和输入汉字,应该安装相应的中文环境。在红旗Linux4.1桌面版
的工具盘中,可以找到提供中文环境的软件,安装包的名字为zhcon。关于如何安装工具盘中所提供的软
件包,请参见“软件的安装与卸载”一章。
在已安装zhcon的情况下,进入Shell命令行方式后,应该执行一次如下命令,启动中文环境的支持功
能,这样就可以正确显示和输入汉字了。
zhcon
中文环境zhcon支持全拼、五笔等多种输入法。
按<Ctrl>+<空格>组合键可以启动或关闭汉字输入法,按<Ctrl>+<Shift>组合键可以在各种输入法之间 进行切换。



=============
更多LINUX技术文章,教程下载尽在www.linuxdiyf.com
 楼主| diyf 发表于 2005-8-2 10:42:33 | 显示全部楼层
顶UP
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-24 00:32 , Processed in 0.023402 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表