作者:叶魏彬 MSN:fritz_yea@hotmail.com
Copyright(C)Free Software Library,Org(http://yea.xiloo.com)
本文依照GNU Free Document Lience发布,任何人都可以将本文原封不动的复制、转载,但请务必保留此声明。作者不对本文所导致的任何结果负责。
四、Linux下的基本操作--ls,mkdir,cd,cp,mv,rm,touch,ln,tar,man,su,mount,umount,shutdown
经过前面的几番折腾,我们终于可以专心的开始工作了。对于大多数人而言,Linux是一个完全陌生的系统。当我们登录进去以后,接下来该干什么呢?就让我们从最简单的开始吧。以下命令全部基于控制台,至于图形操作,请大家自己摸索,很简单的。
首先,看看我们的主目录下都有些什么。
$ls
testdir
ls是list的缩写,相当于DOS下的dir,它是我们在Linux下最常用到的命令之一。ls有许多的参数,其中常用的有:
ls -l long list文件的详细列表,相当于dir。
ls -a 查看隐藏文件,相当于dir/a。多个参数可以一起使用,比如ls -la,以列表形式查看当前目录下的所有文件(包括隐藏文件)。
需要注意的是,所有的Unix命令,在接参数的时候,命令与参数之间必须有一个空格。因此,ls -a正确,ls-a错误。这一点与MS-DOS是有区别的。ls不带参数,则相当于dir/w。
当目录下的文件太多了,显示太快根本看不清,怎么办?不要紧,我们可以用下面的命令
$ls | more file://或者 ls | less 注意空格
这里我们使用了“管道(pipe)”的概念。简单讲,就是利用管道操作符|,将前一个命令的输出作为后一个命令的输入。ls的输出被用作more的输入,这时屏幕将一次显示一屏,然后用户按回车键往下一行行的滚屏(less与more类似,但是可以使用上下键进行滚屏,用起来更自然),退出就按q。
较新版本的Linux发行版中,ls命令的默认输出结果是彩色的。其中蓝色表示目录,绿色表示可执行文件,白色表示普通文件。这样我们就可以清晰的辨认各种文件了。
接下来,我们新建一个目录。
$mkdir Let_Us_Make_A_New_Directoy file://我故意起这么长的名字,有目的的。
$ls
Let_Us_Make_A_New_Directoy testdir
$cd newdir file://进入newdir
mkdir命令“人如其名”,没什么好说的;cd命令和MS-DOS下的也很像,但是要注意空格。Linux下的命名原则是,除了有特殊意义的ASCII字符不能用外,其他字符均可用作文件名;文件名区分大小写,不限长度。因此就有像我上面起的那种变态名字。但是在Linux下有个优点,就是有“命令补齐”功能。你只要输入前半部分,然后连按两下TAB键,系统就会将后半部分自动补齐。有多重选择时就会提示用户。这是熟练使用Unix系统的必备技巧。(在这里你甚至只需输入cd L,然后TAB两下就行了。因为当前目录下没有其它L开头的文件名。)
我们现在身处Let_Us_Make_A_New_Directoy这个变态目录中,让我们从testdir里拷个文件到这里。
$cp ../testdir/afile . file://拷贝testdir目录里的afile文件到当前目录,也就是Let_Us_Make_A_New_Directoy目录
..指上一级目录,.指当前目录。这里使用的是相对路径,也可以使用绝对路径。
要拷贝整个目录,可以用下面的命令:
$cp -fr ../testdir . file://拷贝testdir到当前目录
参数r告诉cp目标是目录,f强制执行。否则会收到testdir is a directory之类的警告。
mv(move)命令移动文件,相当于“剪切&粘贴”它还有一个作用,就是用它来更改文件名--mv oldname newname
要想删除文件,使用rm(remove)命令。
$cd .. file://先从Let_Us_Make_A_New_Directoy里出来
$rm -fr Let_Us_Make_A_New_Directoy file://删掉这个变态的目录
请特别注意,以上命令都涉及到用户的权限问题。权限制度在Unix中是严格执行的,用户被赋予不同的权限,文件也被设置许多权限。
例如下面的文件
$ls -l text.txt
-rw-rw-r-- 1 yea yea 30 6月 28 22:55 text.txt
文件text.txt的所有者为yea(就是我),所属用户组为yea,大小30字节,创建时间为6月28日22点55分,其权限为-rw-rw-r--。这个标记可以这样理解:-|rw-|rw-|r--,第一节表示类型,-为文件,d为目录,l为链接;后三节表示不同用户的使用权限,分别对应“所有者”,“所有者组群的用户”和“其他用户”,r是读,w是写,x是运行,没有权力就用-表示。因此上面的文件对于我和我同组的用户都有读和写的权力,对其他用户则是只读的。
明白了权限,就要知道,除了root,所有的人都要依权限办事。没有写的权限,就不能执行诸如mkdir,mv,cp,rm之类的命令。
要想新建一个文件,使用touch
$touch newfile
这样我们就建立了一个空文件newfile。给它做个链接。
$ln -s newfile newfile_link
$ls -l newfile*
-rw-rw-r-- 1 yea yea 0 6月 29 19:33 newfile
lrwxrwxrwx 1 yea yea 7 6月 29 19:35 newfile_link -> newfile
链接命令ln我们在前面配置系统的时候就已经接触过了,很容易掌握。这里我就不重复了。
还有tar命令,稍微复习一下。通常我们碰到的都是*.tar.gz文件,这是已经压缩好的文件,我们只要用tar vxzf filename直接解压归档即可。如果是*.tar.bz2,则是tar vxjf filename。两种文件只是压缩方式不同,一个用gzip压的,一个用bzip压的。
最后向大家介绍学习Linux的最直接也最权威的方法--使用系统的手册页man和info。碰到不懂的命令或是想知道某个命令的参数,就“man 命令”或是“info 命令”。
通常情况下,我们是以普通用户身分使用系统的。但是,有时我们需要编辑一些系统文件,或是安装软件,进行系统配置,这时我们就比须使用管理员身分了。而Unix是一个多用户、多进程的操作系统,因此我们不必退出或重启机器,而是直接使用su命令。
$su file://升级为root
Password: file://root的密码
# file://你已经是root了
使用su还可以变成其他人,就是“su username”,然后输入相应的密码。做完工作后,使用exit退出。//你可以试试Ctrl-D
我们在Windows分区下还是有许多东西的,因此有时要把Windows分区挂接到系统上使用。挂接硬盘、分区,使用mount命令。
#mount -vfat /dev/hda5 /fat-d file://把我的D盘装到/fat-d目录下。
vfat是指FAT32系统格式,/dev/hda5是我D盘的硬盘分区位置。其中hda指第一块IDE硬盘,1~4是主分区,5以后是逻辑分区。想要挂接USB设备,则是
#mount -vfat /dev/sda1 /mnt/usbdisk
使用完后要将设备卸载,卸载使用umount。特别注意,不是unmount,一字之差的结果就是command not found
#umount /mnt/usbdisk
这时你才能将USB设备从电脑上拔除,否则将损坏Linux的文件系统。//!!!特别强调,对于软盘也是;而光盘,你若不卸载则光驱门都打不开!!!
一般而言,安装卸载设备是需要root权限的。但是我们可以修改/etc/fstab文件,使普通用户也可以安装卸载设备。这我前一篇已经讲了,就不再重复了。
最后谈谈关机的问题。任何一个系统都不能直接拔电源,这一点就连Windows也不例外。当我们结束工作,想关机退出的时候,应该使用下面的命令:
$shutdown -h now file://立刻关机,关闭电源。
或者
$halt -p file://效果同上
重启机器则是
$shutdown -r now
或者
$reboot
还可以使用“三指禅”——Ctrl-Alt-Delete
退出当前用户,而使用其他用户则是
$logout file://Ctrl-D
学到这里,我们就基本不会在Linux世界里迷路了。大不了关了机器下去找本书看:)
【GNU/Linux实战手记之基本使用篇】就到此为止,下篇文章【GNU/Linux实战手记之Emacs篇】将向大家展示如何上手Emacs,如何在Emacs下使用Shell,安装各种软件,如何在Emacs下一边听音乐,一边写程序(Bash编程),并调试程序。敬请期待。