LINUX常用命令 一

1. cd

2. pwd

3. ls

4. passwd

5. who

6. cat

7. mkdir

8. rmdir

9. chmod

10. chown

11. chgrp

12. touch

13. cp

14. mv

15. rm

16. find

17. grep

18. more

19. less

20. head

21. tail

22. cut

23. crontab

24. sleep

25. kill

26. ps

28. top

29. maninfo

30. alias

31. unalias

32. clear


1. cd

格式 : cd [dirName]

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

范例 :

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

cd /usr/bin

2. 跳到自己的 home directory :

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 [-x max] [-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 设定为只有该文件拥有者可以执行 :

chmod u+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 :

chown jessie: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]
  [-t MMDDhhmm[[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. 最简单的命令格式,将文件的创建时间改为现在的时间。若文件不存在,系统会建立一

个新的文件。

touch file

touch file1 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 的文件:

cp aaa bbb

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

cp *.c Finished

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

14. mv

格式: mv [-i] source dest

   mv [-i] source... directory

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

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

范例:

1. 将文件 aaa 改名为 bbb :

mv aaa 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 分钟内被读取过的文件

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

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

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

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

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

-name filename, -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

this is test1

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

    shell>> cut -c0-6 example   

test2

this   i

23. crontab

格式 :

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

说明 :

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

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

参数 :

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

-r : 删除当前的时程表 

-l : 列出当前的时程表 

时程表的格式如下 :

f1 f2 f3 f4 f5 program

其中 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/20 6-12 * 12 * /usr/bin/backup

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

0 17 * * 1-5 /bin/ls

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

20 0-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;sleep 1m;date

25. kill

格式: kill [ -s signal ] 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

范例:man cat   [info cat]

30. alias

说明:建别名

参数:alias aaa=“ls –l”

31. unalias

说明:取消别名

参数:unalias aaa

32. clear

说明:清屏命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值