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