LINUX常用命令详解

1. cd

格式 : cd[dirName]

说明 : 变换工作目录至 dirName。 其中 dirName可为绝对路径或相对路径。若目录命令省略,则变换至使用者登录时所在的目录( home directory )。另外,"~" 也表示为 home directory 的意思,"." 则是表示当前所在的目录,".." 则表示当前目录位置的上一层目录。

范例 :

       1.跳到当前目录的子目录(如:usr/bin)当中:

       cd/usr/bin

 

       2.跳到自己的 homedirectory :

       cd ~ (或 cd )

 

       3.跳到当前目录的上上两层 :

       cd../..  

      

       4.跳到父目录下的另外一个目录(如:conf):

       cd ../conf

 

2. pwd

格式 : pwd

说明 : 显示当前所在目录

 

3. ls

格式 : ls[-alrtAFR] [name...]

说明 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。

      

       -a显示所有文件及目录 (包括"."开头的文件)

       -l除文件名外,还将文件类型、权限、拥有者、文件大小等信息详细列出

       -r将文件以相反次序显示(原定依英文字母次序)

       -t将文件依建立时间之先后次序列出

       -A同 -a ,但不列出 "." (当前目录) 及 ".." (父目录)

       -F在列出的文件命令后加一符号;例如可执行文件则加 "*", 目录则加 "/"

       -R若目录下有文件,则以下之档案亦皆依序列出

      

       范例:

       1.列出当前工作目录下所有命令是s 开头的文件,愈新的排愈后面:

       ls-ltr s*

       2.将 /bin 目录以下所有目录及文件详细资料列出 :

       ls-lR /bin

      

       3.列出当前工作目录下所有文件及目录;目录后加 "/", 可执行文件后加"*" :

       ls-AF

 

4. passwd

格式:passwd[-l|-u] [username]

格式:passwd [-xmax] [-n min] [-w warn] [-i inact] [username]

格式:passwd[username]

说明:用来更改使用者的密码。当具备 root 权限的使用者时,可以设置[username]的密码、更改使用者密码的有效期、锁定账户和解除锁定等。

               -l:锁定账户[username],不更改原有密码,使账户[username]不能登录

               -u:解除锁定

               -x:要求更改密码的最大天数

               -n:允许更改密码的最小天数

               -w:密码失效之前的警告天数(即提前几天警告账户密码将失效)

               -i:密码失效之后多少天,账户失效 

 -d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码,
           -S 显示指定使用者的密码认证种类,

                    [username] 指定帐号名称.

范例:

        1. 锁定账户: lijiangong ,使他不能登录      

passwd -l lijiangong     

        2. 解除锁定:      

passwd -u lijiangong

        3. 设定密码有效期

              passwd-x10 -n3 -w2 -i5 lijiangong

        即:3天之后才能更改密码、10天之后必须更改密码、第八天提醒修改密码、

                 密码失效5天之后账户失效

 

5. who

格式 : who -[husfV] [user]

说明 : 显示有哪些用户登录到系统中,显示的信息包含用户ID,使用的终

      端,上线时间,呆滞时间,CPU使用量,动作等等。

参数说明 :

       -h: 不显示标题列

       -u: 不显示用户的动作/工作

       -s: 使用简短的格式来显示

       -f: 不显示用户的上线位置

       -V: 显示程式版本

 

相关命令 : whoami

说明 : 显示当前用户是谁

 

6. cat

格式:cat [-AbeEnstTuv] [--help] [--version] fileName

说明:把文件串连接后输出到萤幕或加 > fileName 到另一个档案

参数:

   -A 等价于 -vET

       -n或 --number由 1 开始对所有输出的行数编号

       -b或 --number-nonblank和 -n 相似,只不过对于空白行不编号

   -e 等价于 –vE

   -E 每行末尾显示一个$符号

       -s或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

      -t 等价于–vT

      -T 显示制表符为 ^I

       -v或 --show-nonprinting,  dos格式的回车换行显示为^M

范例:

       1.把 textfile1 的文件内容加上行号后输入到 textfile2 文件里:

      cat -n textfile1 > textfile2  

       2.把 textfile1 和 textfile2 的文件内容加上行号(空白行不加)之后将内容附加到 textfile3 :

    cat -b textfile1 textfile2 >> textfile3

       ( > 为重定向操作符, >>为重定向追加操作符 )

 

7. mkdir

格式: mkdir  dirName

说明: 创建目录。

        

范例:

       1.在当前目录下创建一子目录,名为 AAA:

      mkdir AAA

 

8. rmdir

格式: rmdir [-p]dirName

说明: 删除空的目录。

参数: -p 是当子目录被删除后使它也成为空目录时,则顺便一并删除。

范例:

       1.将当前目录下,名为 AAA 的子目录删除 :

          rmdir AAA

       2.在当前目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。

            rmdir -p BBB/Test

 

9. chmod

格式 : chmod [-cfvR] [--help][--version] mode file...

说明 :Linux/Unix 的文件存取权限分为三级 : 文件拥有者、组、其他。利用 chmod 控制文件的存取权限。  

参数 :

       mode: 权限设定字串,格式如下 :[ugoa...][[+-=][rwx]...][,...],其中u表示该文件的拥有者,g 表示与该文件的拥有者属于同一个组(group)者,o 表示其他以外的人,a 表示这三者皆是。

       +表示增加权限、- 表示取消权限、= 表示唯一设定权限。

       r表示可读取,w 表示可写入,x 表示可执行。X 表示只有当该档案是个子目录
  或者该档案已经被设定过为可执行。

        -c : 若该档案权限确实已经更改,才显示其更改动作
        -f : 若该档案权限无法被更改也不要显示错误讯息
        -v : 显示权限变更的详细资料
        -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐
  个变更)
        --help : 显示辅助说明
        --version : 显示版本

范例 :

   1.将文件 file1.txt 设为所有人皆可读取 :

  chmod ugo+r file1.txt或 chmod a+r file1.txt

  

   2.将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个组的人可写入,但其他以外的人则不可写入:

  chmod ug+w,o-w file1.txt file2.txt

 

       3.将 ex1.py 设定为只有该文件拥有者可以执行 :

       chmodu+x ex1.py

 

       4. 将目前目录下的所有档案与子目录皆设为任何人可读取 :
        chmod -R a+r *

10. chown

格式 : chmod [-cfhvR] [--help][--version] user[:group] file...

说明 :利用 chown 可以将文件的拥有者加以改变。     

参数 :

         user : 新的档案拥有者的使用者

IDgroup : 新的档案拥有者的使用者群体(group)

-c : 若该档案拥有者确实已经更改,才显示其更改动作

-f : 若该档案拥有者无法被更改也不要显示错误讯息

-h : 只对于连结(link)进行变更,而非该link 真正指向的档案

-v : 显示拥有者变更的详细资料

-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)

--help : 显示辅助说明

--version : 显示版本

范例 :

       1.将文件 file1.txt 的拥有者设为 users 组的使用者 jessie :

       chownjessie:users file1.txt

 

       2.将当前目录下的所有文件与子目录的拥有者都设为 users 组的使用者 lamport :

       chmod-R lamport:users *

 

11. chgrp

格式 : chgrp[-R] group file...

说明 : 改变文件的所属的组。  

参数 :

     -R : 对当前目录下的所有文件与子目录(包括子目录下的文件)进行相同的变更

 

范例 :

       1.将文件 file1.txt 的所属组设为 users 组:

        chgrp users file1.txt

 

       2.将当前目录下的所有文件与子目录(包括子目录下的文件)都设为 bin 组:

       chmod-R bin *

 

12. touch

格式:    touch[-acfm]
                  [-r reference-file][--file=reference-file]
                  [-tMMDDhhmm[[CC]YY][.ss]]
                   [-d time][--date=time] [--time={atime,access,use,mtime,modify}]
                  [--no-create][--help] [--version]
                  file1 [file2 ...]

说明:touch 指令改变文件的时间记录。 ls -l 可以显示文件的时间记录。    

参数:

       -a改变文件的读取时间记录。

       -m改变文件的修改时间记录。

       -c假如目的文件不存在,不会建立新的文件。与 --no-create 的效果一样。

    -r 使用参考文件的时间记录,与 reference-file 的效果一样。    

       -d设定时间与日期,可以使用各种不同的格式。  

     -f 不使用,是为了与其他 unix 系统的相容性而保留。
     -t 设定档案的时间记录,格式与 date指令相同。
        --no-create 不会建立新档案。
        --help 列出指令格式。
        --version 列出版本讯息。

范例:

       1.最简单的命令格式,将文件的创建时间改为现在的时间。若文件不存在,系统会建立一

个新的文件。

       touchfile

       touchfile1 file2

       2.将 file 的时间记录改变成与 referencefile 一样。

       touch-r referencefile file

       3.将 file 的时间记录改成 5 月 6日 18 点 3 分,公元两千年。时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000 。

       touch-d "6:03pm" file

       touch-d "05/06/2000" file

       touch-d "6:03pm 05/06/2000" file

 

13. cp

格式:cp [-arf]source dest

         cp [-arf] source... directory

       说明:将一个文件拷贝至另一文件,或将数个文件拷贝至另一目录。

 

参数:

       -a将文件状态、权限等信息都照原状予以复制。

       -r若 source 中含有目录名,则将目录下的文件顺序拷贝至目的地。

       -f若目的地已经有相同的文件名存在,则在复制前先予以删除再行复制。

 

       范例:

       1.将文件 aaa 复制一份名字为 bbb 的文件:

       cpaaa bbb

       2.将当前目录下的所有C程序拷贝到当前目录下的Finished 子目录中 :

       cp*.c Finished

 

此外,还有一条命令是远程拷贝scp


14. mv

格式: mv [-i]source dest

          mv [-i] source... directory

说明:将一个文件改名为另一文件,或将数个文件移至另一目录。

参数:-i 若目的地已有同名文件,则先询问是否覆盖旧文件。

        

范例:

       1.将文件 aaa 改名为 bbb :

       mvaaa bbb

      

       2.将所有的C程序移至 Finished 子目录中 :

       mv-i *.c  Finished

 

15. rm

格式:rm [-ifr]name...

说明:删除文件及目录。

参数:

       -i删除前逐一询问确认。

       -f即使原文件属性设为只读,也直接删除,无需逐一确认。

       -r将目录及以下之文件逐一删除。

        

       范例:

       1.删除所有C程序文件并删除前逐一询问确认 :

       rm-i *.c

      

       2.将 Finished 子目录及子目录中所有文件删除 :

       rm-r Finished


16. find

各式 : find[path...] [expression]

说明 : 将符合 expression 的文件列出来。             

    -amin n : 在过去 n 分钟内被读取过的文件

       -anewerfile : 比文件 file 更晚被读取过的文件

       -atimen : 在过去 n 天被读取过的文件

       -cminn : 在过去 n 分钟内被修改过的文件

       -cnewerfile :比文件 file 更新的文件

       -ctimen : 在过去 n 天过修改过的文件

       -namefilename, -iname filename : 符合 filename 的文件。iname 会忽略大小写

    -size n : 档案大小是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k表示 kilo bytes,w 是二个位元组。-type c : 档案类型是 c 的档案。

       范例:

       1.将当前目录及其子目录下所有扩展名是 c 的文件列出来。

       #find . -name "*.c"

      

       2.将当前目录及其子目录下所有最近 20 分钟内更新过的文件列出

       #find . -cmin -20

 

17. grep

格式:grep [-no]pattern files

说明:搜索字符串命令

参数:

           -n 显示行号

           -o 只显示匹配的串

范例:

1. grep   printf *

             file1.c:  printf("\nHello\n");

             file2.c:  printf("\nSample\n");

            

        grep -n  printf*

             file1.c:4   printf("\nHello\n");

             file2.c:9   printf("\nSample\n");

 

        grep -o  printf*

             file1.c:  printf

             file2.c:  printf

        

2. 如果搜索的串中有空格,则用引号括起来

             grep "asd abc" *

 

18. more

格式:more  [-num] [+linenum] [fileNames..]

说明:类似 cat ,不过是以一页一页的方式显示。而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。

参数:-num 一次显示的行数

        +linenum 从第 num 行开始显示

        fileNames 欲显示内容的文件,可为多个文件

范例:

       1.从第 20 行开始显示 testfile 之文件内容。

       more+20 testfile

 

19. less

格式: less [Option]  filename

说明: less 的作用与 more 十分相似,都可以用来浏览文本文件的内容,不同的是 less 允许使用者往回卷动(PageUp PageDown)以浏览已经看过的部份,同时因为 less 并未在一开始就读入整个文件,因此在遇上大型文件的开启时,会比一般的文本编辑器(如      vi)来的快速。

20. head

格式:head  [-n|c num] fileName

说明:显示文件头部内容。没有参数时,显示最前10行

参数:

      -n num 显示最前num行

      -c  num显示最前num 字符

 

 

21. tail

格式:tail  [-n|c num] fileName

说明:显示文件尾部内容。没有参数时,显示最后10行

参数:

       -n num 显示最后num行

       -c num 显示最后num 字符

              -f        跟踪,随文件增长显示新的内容。(用Ctrl+C退出)

 

22. cut

格式:cut-cnum1-num2  filename

说明:显示每行从开头算起第num1 到 num2 的字符。

 

范例:

       1.shell>> cat example

       test2

       thisis test1

 

    显示每行开头算起前 6 个字符 

   shell>> cut -c0-6 example  

       test2

       this   i

 

23. crontab

格式 :

       crontab[ -u user ] filecrontab [ -u user ] { -l | -r | -e } cmd

说明 :

       crontab是用来在固定时间或固定间隔执行程序。

       -uuser 设定指定user 的时间表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user ,就是表示设定自己的时间表。

 

参数 :

       -e: 执行文字编辑器来设定时程表,默认的文字编辑器是 VI

       -r: 删除当前的时程表

       -l: 列出当前的时程表

       时程表的格式如下 :

       f1 f2 f3 f4 f5program

       其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天(0~6,0为星期天)。cmd 表示要执行的程序。

当 f1 为 * 时表示每分钟都要执行,f2 为 * 时表示每小时都要执行,其余类推;

    当 f1 为 a-b 时,表示从第 a 分钟到第 b 分钟这段时间内要执行,f2为 a-b 时,表示从第 a 到第 b小时都要执行,其余类推;

       当 f1 为 */n 时,表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示,每n 小时个时间间隔执行一次,其余类推;

        当 f1 为 a, b, c,... 时,表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示,第 a, b, c...个小时要执行,其余类推;

       使用者也可以将所有的设定先存放在文件 file 中,用 crontab file 的方式来设定时间表。

 

范例 :

       1.每月每天每小时的第 0 分钟执行一次 /bin/ls :

       0* * * * /bin/ls

2. 在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :

       0/206-12 * 12 * /usr/bin/backup

       3.周一到周五每天下午 5:00执行一次 /bin/ls :

       017 * * 1-5 /bin/ls

       4.每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"

       200-23/2 * * * echo "haha"

 

 

24. sleep

格式 : sleep [--help] [--version]number[smhd]

说明 : sleep 可以用来将当前动作延迟一段时间

参数 :

         --help : 显示辅助讯息
       --version : 显示版本编号
       number : 时间长度,后面可接 s、m、h 或 d, 其中 s 为秒,m 为 分钟,h 为小时,d 为日数

 

范例 :

       1.显示当前时间后延迟 1 分钟,之后再次显示时间 :

       date;sleep1m;date

 

 

25. kill

格式: kill [ -ssignal ] pid ...

            kill -l [ signal ]

说明:kill 送出一个特定的信号 (signal) 给进程号为 pid 的进程。根据该信号而做特定的动作, 若没有指定,默认是送出终止 (TERM) 信号

        

参数:

-s (signal) : 其中常用的一个信号(9) 杀死进程; 详细的信号可以用 kill -l

    -l (signal) : 列出所有可用的信号名称
      

范例:

  1. 将 pid 为 323 的进程杀死 :

       kill-9 323

  2. 将 pid 为 456 的行程重跑 (restart) :
  kill -HUP 456

 

26. ps

格式:ps [options] [--help]

说明:显示进程的名称、占用资源、状态等

参数:

       ps的参数非常多, 在此仅列出3个

       -A 列出所有的行程

       -e  列出所有的进程

       -f  显示详细的信息(包括命令行参数)

范例:
  ps
  PID TTY TIME CMD
  2791 ttyp0 00:00:00 tcsh
  3092 ttyp0 00:00:00 ps
  % ps -A
  PID TTY TIME CMD
  1 ? 00:00:03 init
  2 ? 00:00:00 kflushd
  2 ? 00:00:00 kflushd
  3 ? 00:00:00 kpiod
  4 ? 00:00:00 kswapd
  5 ? 00:00:00 mdrecoveryd
  .......


27.pstree

格式:   pstree [-a] [-c] [-h|-Hpid] [-l] [-n][-p] [-u] [-G|-U] [pid|user]
                  pstree -V
说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程

参数: 
  -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
  -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
  -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
范例:
  1. pstree
  init-+-amd
  |-apmd
  |-atd
  |-httpd---10*[httpd]
  %pstree -p
  init(1)-+-amd(447)
  |-apmd(105)
  |-atd(339)
  %pstree -c
  init-+-amd
  |-apmd
  |-atd
  |-httpd-+-httpd
  | |-httpd
  | |-httpd
  | |-httpd
  ....

 

28. top

格式:top

说明:显示CPU的使用率、内存大小、内存使用率、进程状态等

 

29. man,info

man、info :在线手册命令

格式:man command

范例:mancat   [info cat]

 

30. alias

说明:建别名

参数:alias aaa=“ls–l”


31. unalias

说明:取消别名

参数:unalias aaa

 

 

32. clear

说明:清屏命令

 


本文出自 “linux” 博客,请务必保留此出处http://51mox.blog.51cto.com/5402080/1426583

LINUX常用命令详解,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。