现在的位置: 首页 > 综合 > 正文

linux一些简单的命令——文件管理

2013年03月20日 ⁄ 综合 ⁄ 共 4251字 ⁄ 字号 评论关闭

开始慢慢学习一些linux的命令了,正在学习操作系统。不知道为什么对操作系统产生了浓厚的兴趣,看老外写的那本《操作系统概念》,我觉得写的很好,讲的很是详细,但是我的老师就不怎么给力了……听说学操作系统,要用linux来做实验,现在提前学习一下简单的一些命令,先来熟悉一下,笨鸟先飞……

1. pwd(print working directory):显示当前的工作目录。

2. ls(list):列出当前目录内容。
   eg: ls -al , 按Long Format格式,列出当前目录中的全部文件,包括隐藏的文件。可以得到文件的详细信息。

3. cd(Change Directory):切换目录。
   eg: cd ~ , 直接切换到当前登录用户的主目录。
       cd / , 直接切换到根目录(/)。
       cd /dev/block , 进入dev目录下的block目录。
       cd .. , 回到当前目录的上一级目录。
       (rachel@ubuntu:…$ 中间的内容即你当前所在的目录)

4. cp(copy):文件复制
   eg: cp ./test/test1/file1 ./test/test2 , 将当前目录的test/test1目录中的file1文件复制到当前目录的test/test2目录中。
       cp /home/rachel/test/test1/file1 /home/rachel/test/test2 ,将/home/rachel/test/test1/目录中的file1文件复制到/home/rachel/test/test2目录中。
       cp -ax ./test/test1/test11 ./test/test2 , 将test11目录及其子目录和其中包含的文件全部复制到test2目录下,< -ax中,a(archive)的意思是复制所有的目录,包含子目录,x的意思是复制后此文件的格式将与目标扇区的文件系统的相同>
       cp -ax ./test / , 复制当前目录下的test目录及其子目录到根目录下。(注意这里有权限限制,得用sudo命令才可以进行复制)
       cp ./test/test1/file1 ./test/test2/file21 , 将file1复制到test2中后,改变文件的命名为file21。

5. mv(move):文件移动,即文件的剪切。
   eg: mv ./test/test1/file1 ./test/test2 , 将文件file1移动到test2目录下。
       mv ./test/test1/file1 ./test/test1/newfile , 重命名file1为newfile,因为linux没有重命名的命令,所以用文件移动命令来实现重命名的操作。
       mv ./test/test1/test11 ./test/test2 , 将test11目录及其里面的文件移动到test2目录下。这跟cp指令不同,不用什么特殊的命令参数 。

6. rm(remove):文件删除
   eg: rm ./test/test1/file11 , 删除file11文件。
       rm -r ./test/test1/test12 , 递归删除目录及其内容。

7. mkdir(make directory)
   eg: sudo mkdir /fax , 在根目录上创建一个fax目录。

8. rmdir(remove directory) , 删除目录
   eg: sudo rmdir /fax , 删除根目录上的fax目录。
   (注意:这个命令只能删除一个空的目录,即该目录下没有任何的文件。若要删除该目录以及该目录下的所有文件和子目录,则需使用rm命令,即6中的文件删除命令。使用方法:sudo rm -rf /fax , r是recursive,递归的意思,f为force,即强制删除所有的文件。在使用删除的命令时,比如rm和rmdir,要特别注意,因为该命令是强制删除指定的目录,及子目录和所有的文件,而目录一经删除就无法恢复,所以要格外小心不能写错目录,若将/test,写成了/,那会对系统造成很大的危害。这也是为什么对根目录的操作要使用sudo获得更高的权限来进行操作。)

9. ln(link) , 建立链接文件
   eg: ln -s .test/test1/file1 ./test/test2/file1.ln , 在test2目录下建立file1的链接文件。-s 表示建立的是符号链接(Symbolic Link 也称软链接),若在建立链接文件时没有使用-s,则建立的是硬链接,每增加一个硬链接,就会增加一个指向原始文件位置的指针。硬链接只能建立在同一个扇区中,而且不能用于目录;软链接则可以跨越扇区,而且可同时用于文件和目录。
       ln -s ./test ./test/test2/test.ln , 在test2目录下,建立test目录的链接文件。

10. cat(concatenate) , 查看文件内容
    eg: cat ./test/file , 查看file文件的内容。
        cat -b ./test/files , 在查看的每一行的内容前面加上编号。
        cat > ./test/test2/file2 , 在键盘上输入一些数据,并将这些数据保存在./test/test2目录下,同时使用file2作为文件名。> , 表示“定向”,这个很重要。
        cat ./test/test1/file1 ./test/test2/file2 ./test/test3/file3 , 同时显示file1,file2,file3的内容。
        cat ./test/test1/file1 ./test/test2/file2 ./test/test3/file3 > ./test/files , 将多个文件的内容合并为一个新的文件。

11. more , 一页一页显示文件的内容
    eg: more ./file , 显示file文件的内容,按空格键显示下一页的内容,按回车键会向下多显示一行内容。
        more +5 ./file , 显示file文件中从第5行往下的内容。
        more +/string ./file , 显示file文件中,从string开始的内容。

12. less , 交互式操作显示文件内容
    eg: less ./file , 显示file文件的内容,可以使用方向键控制浏览的上下左右画面。按q键退出浏览模式。此命令与more命令有很多相似的地方,但是要比more具有更高的执行能力。

13. head 和 tail , 输出文件内容前面和后面的部分
    eg: head ./file , 默认的输出文件的前10行内容。
        head -5 ./file , 输出文件的前5行内容。
        tail ./file , 默认的输出从第5行到文件尾的内容。
        tail -5 ./file , 输出文件的后5行内容。
        tail -n +5 .file , 输出从第5行开始,到文件尾的内容。

14. chmod(change mode), 文件权限修改命令。
    首先要知道文件都是有哪些权限:r(读),w(写),x(可执行),-(无权限)。
    其次要知道使用该系统的,都有哪些用户:所有者(用u表示),所有者所在的组(以下简称组,用g表示),其他用户(用o表示)。
    可用ls -l 命令显示文件或目录的使用权限,如ls -l ./myfile , 会得到如下的显示:
 -rw-rw-r-- 1 rachel rachel 102 2011-09-08 21:32 ./myfile
 <该范例中第一个字符表示文件类型,与权限无关。字符2,3,4表示文件所有者的访问权限;字符5,6,7表示组成员的访问权限;字符8,9,10表示其他用户对文件的访问权限>
    若要更改文件的访问权限,有两种方式,可供选择:数字表示法和文本表示法
    (1)数字表示法
     文件权限r,w,x,-,分别用4,2,1,0来表示,然后把用数字表示的授予的权限进行相加,
     如:rwxrw-r-- , 对应的数字表达为:(421)(420)(400),相加之后就为:764
     故,数字表示法修改权限的命令如下:
     chmod 764 ./myfile , 即将myfile文件的访问权限修改为:rwxrw-r--
     chmod 644 ./myfile , 将myfile文件的访问权限修改为:rw-r--r--
    (2)文本表示法
     文本表示法用4个字母代表不同的用户:
     所有者——u(user) ,组——g(group) , 其他人员——o(other) , 所有人——a(all)
     可以用+,-,=,来对权限进行增加,减少和重新赋值。如下:
     chmod u+x,g-w,o-r ./myfile , 将所有者的权限加上x,组的权限减去r,将其他用户的权限减去r
     chmod u=rwx,g=rw,o=r ./myfile , 重置各个用户的权限为rwx,rw-,r--。
     chmod u+x,g=rw,o-r ./myfile , 也可以混合使用。
     <注意:在“,”前后不要有空格>

15. I/O重定向(>  ,  >>  ,  <  ,  << ,  &>)
     eg: 
    (1)输出定向(>)
       ls -al ./test > ./file  ,  将test目录下的文件列表输出到file文件中,而不是屏幕上。
       cat > ./file , 在屏幕上输入一些信息,然后保存到file文件中。注意,当输入完信息后,要按回车键,否则最后一行不能保存,然后按Ctrl+C,结束输入,保存文件按。
    (2)附加输出定向(>>)
       cat >> ./file , 将输入的内容保存到file文件中,新输入的内容添加到文件尾,而用输出定向(>)是将新输入的内容覆盖掉原来文件中的内容。
    (3)输入定向(<)
       cat < ./file , 是将file文件的内容传给cat命令,最终显示在屏幕上,cat没有任何标准的输入文件。而cat ./file中,输入文件是file。这种用法对无法接受参数的命令相当有用。
    (4)附加输入定向(<<)
       mail 578579544@qq.com << finish  ,  自定义一个finish字符串,用来结束邮件的编辑,并且寄出邮件。这个功能常用在电子邮件系统中。
    (5)错误输出定向(&>)
       ls -al ./nulltest &> ./error , 将命令执行结果,写入error文件中,而不是显示在屏幕上。若命令执行成功,则将执行结果保存在error文件中,若命令执行失败,就将错误原因写入到文件中。这与输出定向(>)有很大的不同,输出定向是将命令执行失败的原因显示在屏幕上。

16. 管道命令(|)
     eg: ls -al /usr/bin | less  ,  将ls查询的结果当作输入数据,用less命令显示,因为/usr/bin目录下的文件很多,只用ls的话,不能一页全部显示,要查看全部内容很麻烦,用这种方法,就可以一页一页的显示查询到的信息。管道命令主要的功能就是将程序的输出结果,直接定向到另一个程序中,当成输入的数据。

以后要经常更新!

抱歉!评论已关闭.