Linux shell指的是一种程序,有了它,用户就能通过键盘输入指令来操作计算机了。Shell会执行用户输入的命令,并且在显示器上显示执行结果。这种交互的全过程都是基于文本的,与其他各章介绍的图形化操作不同。这种面向命令行的用户界面被称为 CLI(Command Line interface)。在图形化用户界面(GUI)出现之前,人们一直是通过命令行界面来操作计算机的。
现在,基于图形界面的工具越来越多,许多工作都不必使用Shell就可以完成了。然而,专业的 Linux用户认为Shell是一个非常有用的工具,学习 Linux时一定要学习Shell,至少要掌握一些基础知识和基本的命令
启动shell
在启动Linux桌面系统后,Shell已经在后台运行起来了,但并没有显示出来。如果想让它显示出来,
按如下的组合键就可以:
组合键中的F2可以替换为F3、F4、F5、F6。
如果要回到图形界面,则按如下组合键:
另外,在图形桌面环境下运行“系统终端”也可以执行Shell命令,与用组合键切换出来的命令行界面
是等效的。“系统终端”启动后是一个命令行操作窗口,可以随时放大缩小,随时关闭,比较方便,推荐使用。启动“系统终端”的方法是:
【开始】 → 【应用程序】 → 【附件】 → 【系统终端】
该软件允许建立多个Shell客户端,它们相互独立,可以通过标签
在彼此之间进行切换。
Shell命令基本规则
一般格式
Shell命令的一般格式如下:
命令名 【选项】 【参数1】 【参数2】...
【选项】是对命令的特别定义,以减号(-)开始,多个选项可以用一个 减号(-)连起来,如ls -l -a 与
ls -la 相同。
【参数】提供命令运行的信息,或者是命令执行过程中所使用的文件名。
使用分号(可以将两个命令隔开,这样可以实现一行中输入多个命令。命令的执行顺序和输入的顺序
相同。
命令补全
在送入命令的任何时刻,可以按
经输入的字符串不足以唯一地确定它应该使用的命令,系统将发出警告声。再次按
历史命令
系统会把过去输入过的命令记忆下来,只要按方向键中的上下箭头,就可以选择以前输入过的命令了。
联机帮助
可以通过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
飞天毛毛虫 于 2007-06-29 10:07:22发表:
学习啦。。。。。。。:0L :0L
o-o-o-o88 于 2007-06-16 00:56:08发表:
不错的文章
Mrlinux 于 2006-07-24 19:07:51发表:
wodingyixia
wang198415 于 2006-07-19 22:28:58发表:
支持!我订!
zotyu 于 2006-07-19 21:04:10发表:
很好的东西
wide 于 2006-07-13 22:29:11发表:
的确不错的,比较容易懂
redman13 于 2006-04-17 12:02:27发表:
眼熟啊!!
sdpwlf1982 于 2006-03-26 17:47:39发表:
好啊
50257362 于 2006-03-01 12:42:47发表:
Linux刚刚起步 拿去先研究下
上弦月 于 2006-02-23 16:42:32发表:
不错的东东~
love 于 2006-01-09 10:50:54发表:
好文,顶
liugangwen 于 2005-10-10 14:12:46发表:
不错的帖子!支持!
MOCEL 于 2005-10-10 13:26:24发表:
不错的文章,顶
jackson_302 于 2005-09-16 12:20:54发表:
好象是书上的,刚上完课的
wide 于 2005-09-16 00:38:14发表:
支持
love601 于 2005-08-20 14:10:51发表:
好的拿去用看看!~1
applehugh 于 2005-08-10 17:24:49发表:
不要抄袭啦!!!!!!!!!
ccs 于 2005-08-10 00:02:49发表:
支持
新新 于 2005-07-17 00:18:21发表:
支持
thej 于 2005-05-14 00:15:44发表:
磁盘信息的低级复制
+ + 组合键切换进入Shell命令行方式时,有可能出现汉字乱显的现象。这是因为,这种Shell命令行方式在默认情况下是不支持汉字的。具体表现就是,用ls命令查看某目录内容时,如果其中有以汉字命名的文件或文件夹,将显示为乱码。
+<空格>组合键可以启动或关闭汉字输入法,按+组合键可以在各种输入法之间 进行切换。
把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命令行方式时,或者用
要想在Shell命令行方式下正确显示和输入汉字,应该安装相应的中文环境。在红旗Linux4.1桌面版
的工具盘中,可以找到提供中文环境的软件,安装包的名字为zhcon。关于如何安装工具盘中所提供的软
件包,请参见“软件的安装与卸载”一章。
在已安装zhcon的情况下,进入Shell命令行方式后,应该执行一次如下命令,启动中文环境的支持功
能,这样就可以正确显示和输入汉字了。
zhcon
中文环境zhcon支持全拼、五笔等多种输入法。
按