unix下的常用命令详解
程序员文章站
2022-06-25 16:58:22
本文为unix下的常用命令详解... 12-10-09...
一、注意事项
命令和参数之间必需用空格隔开,参数和参数之间也必需用空格隔开。
一行不能超过256个字符;大小写有区分。
二、特殊字符含义
文件名以“.”开头的都是隐藏文件/目录,只需在文件/目录名前加“.”就可隐藏它。
~/ 表示主目录。
./ 当前目录(一个点)。
../ 上一级目录(两个点)。
; 多个命令一起用。
> >> 输出重定向 。将一个命令的输出内容写入到一个文件里面。如果该文件存在, 就将该文件的内容覆盖;
如果不存在就先创建该文件, 然后再写入内容。
输出重定向,意思就是说,将原来屏幕输出变为文件输出,即将内容输到文件中。
< << 输入重定向。 本来命令是通过键盘得到输入的,但是用小于号,就能够使命令从文件中得到输入。
\ 表示未写完,回车换行再继续。
* 匹配零个或者多个字符。
? 匹配一个字符。
[] 匹配中括号里的内容[a-z][a-z][0-9]。
! 事件。
$ 取环境变量的值。
| 管道。把前一命令的输出作为后一命令的输入,把几个命令连接起来。
|经常跟tee连用,tee 把内容保存到文档并显示出来。
三、通用后接命令符
-a 所有(all)。
-e 所有(every),比a更详细。
-f 取消保护。
-i 添加提示。
-p 强制执行。
-r 目录管理。
分屏显示的中途操作
空格<space> 继续打开下一屏;
回车<return> 继续打开下一行;
b 另外开上一屏;
f 另外开下一屏;
h 帮助;
q或ctrl+c 退出;
/字符串 从上往下查找匹配的字符串;
?字符串 从下往上查找匹配的字符串;
n 继续查找。
四、退出命令
exit 退出; dos内部命令 用于退出当前的命令处理器(command.com) 恢复前一个命令处理器。
ctrl+d 跟exit一样效果,表中止本次操作。
logout 当csh时可用来退出,其他shell不可用。
clear 清屏,清除(之前的内容并未删除,只是没看到,拉回上面可以看回)。
五、目录管理命令
pwd 显示当前所在目录,打印当前目录的绝对路径。
cd 进入某目录,dos内部命令 显示或改变当前目录。
cd回车/cd ~ 都是回到自己的主目录。
cd . 当前目录(空格再加一个点)。
cd .. 回到上一级目录(空格再加两个点)。 cd ../.. 向上两级。
cd /home/hww/person 从绝对路径去到某目录。
cd ~/person 直接进入主目录下的某目录(“cd ~"相当于主目录的路径的简写)。
ls 显示当前目录的所有目录和文件。
用法 ls [-aabccdeeffghhillmnopqrrstux1@] [file...]
ls /etc/ 显示某目录下的所有文件和目录,如etc目录下的。
ls -l (list)列表显示文件(默认按文件名排序),
显示文件的权限、硬链接数(即包含文件数,普通文件是1,目录1+)、用户、组名、大小、修改日期、文件名。
ls -t (time)按修改时间排序,显示目录和文件。
ls -lt 是“-l”和“-t”的组合,按时间顺序显示列表。
ls -f 显示文件类型,目录“/ ”结尾;可执行文件“*”结尾;文本文件(none),没有结尾。
ls -r 递归显示目录结构。即该目录下的文件和各个副目录下的文件都一一显示。
ls -a 显示所有文件,包括隐藏文件。
文件权限
r 读权限。对普通文件来说,是读取该文件的权限;对目录来说,是获得该目录下的文件信息。
w 写权限。对文件,是修改;对目录,是增删文件与子目录。
(注 删除没有写权限的文件可以用 rm -f ,这是为了操作方便,是人性化的设计)。
x 执行权限;对目录,是进入该目录
- 表示没有权限
形式 - rw- r-- r--
其中 第一个是文件类型(-表普通文件,d表目录,l表软链接文件)
第2~4个是属主,生成文件时登录的人,权限最高,用u表示
第5~7个是属组,系统管理员分配的同组的一个或几个人,用g表示
第8~10个是其他人,除属组外的人,用o表示
所有人,包括属主、属组及其他人,用a表示
chmod 更改权限;
用法 chmod [-fr] <绝对模式> 文件 ...
chmod [-fr] <符号模式列表> 文件 ...
其中 <符号模式列表> 是一个用逗号分隔的表 [ugoa]{+|-|=}[rwxxlstugo]
chmod u+rw 给用户加权限。同理,u-rw也可以减权限。
chmod u=rw 给用户赋权限。与加权限不一样,赋权限有覆盖的效果。
主要形式有如下几种
chmod u+rw chmod u=rw
chmod u+r, u+w chmod u+rw,g+w, o+r
chmod 777( 用数字的方式设置权限是最常用的)
数字表示权限时,各数位分别表示属主、属组及其他人;
其中,1是执行权(execute),2是写权限(write),4是读权限(read),
具体权限相当于三种权限的数相加,如7=1+2+4,即拥有读写和执行权。
另外,临时文件/目录的权限为rwt,可写却不可删,关机后自动删除;建临时目录:chmod 777 目录名,再chmod +t 目录名。
id 显示用户有效的uid(用户字)和gid(组名)
用法 id [-ap] [user]
id 显示自己的。
id root 显示root的。
id -a root 显示用户所在组的所有组名(如root用户,是所有组的组员)
df 查看文件系统,查看数据区
用法 df [-f fstype] [-abeghklntvvz] [-o fstype 特定选项] [目录 | 块设备 | 资源]
df -k 以kbytes显示文件大小的查看文件系统方式
六、显示文件内容
more 分屏显示文件的内容。
用法 more [-cdflrsuw] [-行] [+行号] [+/模式] [文件名 ...]。
显示7个信息:用户名 密码 用户id(uid) 组id(gid) 描述信息(一般为空) 用户主目录 login shell(登录shell)
cat 显示文件内容,不分屏(一般用在小文件,大文件显示不下);合并文件,仅在屏幕上合并,并不改变原文件。
用法 cat [ -usvtebn ] [-|文件] ...
tail 实时监控文件,一般用在日志文件,可以只看其中的几行。
用法 tail [+/-[n][lbc][f]] [文件]
tail [+/-[n][l][r|f]] [文件]
七、文件/目录的增删
echo 显示一行内容。
touch 如果文件/目录不存在,则创建新文件/目录;如果文件存在,那么就是更新该文件的最后访问时间,
用法 touch [-acm] [-r ref_file] 文件...
touch [-acm] [mmddhhmm[yy]] 文件...
touch [-acm] [-t [[cc]yy]mmddhhmm[.ss]] file...
mkdir 创建目录(必须有创建目录的权限)
用法 mkdir [-m 模式] [-p] dirname ...
mkdir dir1/dir2 在dir1下建dir2
mkdir dir13 dir4 dir5 连建多个
mkdir ~/games 用户主目录下建(默认在当前目录下创建)
mkdir -p dir6/dir7/dir8 强制创建dir8;若没有前面的目录,会自动创建dir6和dir7。
不用-p时,若没有dir6/dir7,则创建失败。
cp 复制文件/目录
cp 源文件 目标文件 复制文件;若已有文件则覆盖
cp -r 源目录 目标目录 复制目录;若已有目录则把源目录复制到目标目录下,
没有目标目录时,相当于完全复制源目录,只是文件名不同。
cp beans apple dir2 把beans、apple文件复制到dir2目录下
cp -i beans apple 增加是否覆盖的提示
mv 移动或重命名文件/目录
用法 mv [-f] [-i] f1 f2
mv [-f] [-i] f1 ... fn d1
mv [-f] [-i] d1 d2
mv 源文件名 目标文件名 若目标文件名还没有,则是源文件重命名为目标文件;若目标文件已存在,则源文件覆盖目标文件。
mv 源文件名 目标目录 移动文件
mv 源目录 目标目录 若目标目录不存在,则源目录重命名;若目标目录已存在,则源目录移动到目标目录下。
rm 删除文件/目录
用法 rm [-firr] 文件 ...
rm 文件名 删除文件。
rm -r 目录名 删除目录。
rm –f 文件 只要是该文件或者目录的拥有者,无论是否有权限删除,都可以用这个命令参数强行删除。
rm -rf * 删除所有文件及目录
rmdir 删除空目录。只可以删除空目录。
ln 创建硬链接或软链接,硬链接=同一文件的多个名字;软链接=快捷方式
用法 ln [-f] [-n] [-s] f1 [f2]
ln [-f] [-n] [-s] f1 ... fn d1
ln [-f] [-n] -s d1 d2
ln file1 file1.ln 创建硬链接。感觉是同一文件,删除一个,对另一个没有影响;须两个都删除才算删除。
ln -s file1 file1.sln 创建软链接。可跨系统操作,冲破操作权限;也是快捷方式。
八、时间显示
date 显示时间,精确到秒
用法 date [-u] mmddhhmm[[cc]yy][.ss]
date [-u] [+format]
date -a [-]sss[.fff]
cal 显示日历
cal 9 2008 显示2008年9月的日历; cal 显示当月的
用法 cal [ [月] 年 ]
九、帮助
man 帮助( format and display the on-line manual pages)
用法 man [-] [-adflrt] [-m 路径] [-t 宏软件包] [-s 段] 名称 ...
man [-] [-adflrt] [-m path] [-t macro-package] [-s section] name...
man [-m 路径] -k 关键字 ...
man [-m 路径] -f 文件 ...
awk 按一定格式输出(pattern scanning and processing language)
用法 awk [-fc] [-f 源代码 | 'cmds'] [文件]
十、查看用户
users 显示在线用户(仅显示用户名)。
who 显示在线用户,但比users更详细,包括用户名、终端号、登录时间、ip地址。
who am i 仅显示自己,(但包括用户名、端口、登录时间、ip地址;信息量=who)。
whoami 也仅显示自己,但只有用户名(仅显示自己的有效的用户名)。
w 显示比who更多内容,还包括闲置时间、占cpu、平均占用cpu、执行命令。
用法 w [ -hlsuw ] [ 用户 ]
su 改变用户,需再输入密码。
用法 su [-] [ username [ arg ... ] ]
su - 相当于退出再重新登录。
查找
find 查找文件
用法 find [-h | -l] 路径列表 谓词列表
find / -name perl 从根目录开始查找名为perl的文件。
find . -mtime 10 -print 从当前目录查找距离现在10天时修改的文件,显示在屏幕上。
(注 “10”表示第10天的时候;如果是“+10”表示10天以外的范围;“-10”表示10天以内的范围。)
grep 文件中查找字符;有过滤功能,只列出想要的内容
用法 grep -hblcnsviw 模式 文件 . . .
如 grep abc /etc/passwd 在passwd文件下找abc字符
wc 统计
-l 统计行数; -w统计单词数; -c 统计字符数
如 grep wang /etc/passwd|wc -l 统计passwd文件含“wang”的行数
du 查看目录情况
如 du -sk * 不加-s会显示子目录,-k按千字节排序
用法 du [-a] [-d] [-h|-k] [-r] [-o|-s] [-h|-l] [文件...]
十一、进程管理
ps 显示进程。
用法 ps [ -aadeflcjlpyz ] [ -o 格式 ] [ -t 项列表 ]
[ -u 用户列表 ] [ -u 用户列表 ] [ -g 组列表 ]
[ -p 进程列表 ] [ -g 程序组列表 ] [ -s 标识符列表 ] [ -z 区域列表 ]
ps 显示自己的进程。
ps -e 显示每个进程,包括空闲进程。
ps -f 显示详情。
ps -ef 组合-e和-f,所有进程的详情。
ps -u uidlist(用户列表) 具体查看某人的进程。
kill
pkill
sleep
jobs
用法 jobs [-l ]
fg %n
bg %n
stop %n 挂起(仅csh能用)
ctrl+c
ctrl+z
网络链接
ping
usage ping host [timeout]
usage ping -s [-l | u] [adlnrrv] [-a addr_family] [-c traffic_class] [-g gateway [-g gateway ...]] [-f flow_label] [-i interval] [-i interface] [-p tos] [-p port] [-t ttl] host [data_size] [npackets]
ifconfig -a
/sbin/ifconfig 查看本机的ip地址
命令和参数之间必需用空格隔开,参数和参数之间也必需用空格隔开。
一行不能超过256个字符;大小写有区分。
二、特殊字符含义
文件名以“.”开头的都是隐藏文件/目录,只需在文件/目录名前加“.”就可隐藏它。
~/ 表示主目录。
./ 当前目录(一个点)。
../ 上一级目录(两个点)。
; 多个命令一起用。
> >> 输出重定向 。将一个命令的输出内容写入到一个文件里面。如果该文件存在, 就将该文件的内容覆盖;
如果不存在就先创建该文件, 然后再写入内容。
输出重定向,意思就是说,将原来屏幕输出变为文件输出,即将内容输到文件中。
< << 输入重定向。 本来命令是通过键盘得到输入的,但是用小于号,就能够使命令从文件中得到输入。
\ 表示未写完,回车换行再继续。
* 匹配零个或者多个字符。
? 匹配一个字符。
[] 匹配中括号里的内容[a-z][a-z][0-9]。
! 事件。
$ 取环境变量的值。
| 管道。把前一命令的输出作为后一命令的输入,把几个命令连接起来。
|经常跟tee连用,tee 把内容保存到文档并显示出来。
三、通用后接命令符
-a 所有(all)。
-e 所有(every),比a更详细。
-f 取消保护。
-i 添加提示。
-p 强制执行。
-r 目录管理。
分屏显示的中途操作
空格<space> 继续打开下一屏;
回车<return> 继续打开下一行;
b 另外开上一屏;
f 另外开下一屏;
h 帮助;
q或ctrl+c 退出;
/字符串 从上往下查找匹配的字符串;
?字符串 从下往上查找匹配的字符串;
n 继续查找。
四、退出命令
exit 退出; dos内部命令 用于退出当前的命令处理器(command.com) 恢复前一个命令处理器。
ctrl+d 跟exit一样效果,表中止本次操作。
logout 当csh时可用来退出,其他shell不可用。
clear 清屏,清除(之前的内容并未删除,只是没看到,拉回上面可以看回)。
五、目录管理命令
pwd 显示当前所在目录,打印当前目录的绝对路径。
cd 进入某目录,dos内部命令 显示或改变当前目录。
cd回车/cd ~ 都是回到自己的主目录。
cd . 当前目录(空格再加一个点)。
cd .. 回到上一级目录(空格再加两个点)。 cd ../.. 向上两级。
cd /home/hww/person 从绝对路径去到某目录。
cd ~/person 直接进入主目录下的某目录(“cd ~"相当于主目录的路径的简写)。
ls 显示当前目录的所有目录和文件。
用法 ls [-aabccdeeffghhillmnopqrrstux1@] [file...]
ls /etc/ 显示某目录下的所有文件和目录,如etc目录下的。
ls -l (list)列表显示文件(默认按文件名排序),
显示文件的权限、硬链接数(即包含文件数,普通文件是1,目录1+)、用户、组名、大小、修改日期、文件名。
ls -t (time)按修改时间排序,显示目录和文件。
ls -lt 是“-l”和“-t”的组合,按时间顺序显示列表。
ls -f 显示文件类型,目录“/ ”结尾;可执行文件“*”结尾;文本文件(none),没有结尾。
ls -r 递归显示目录结构。即该目录下的文件和各个副目录下的文件都一一显示。
ls -a 显示所有文件,包括隐藏文件。
文件权限
r 读权限。对普通文件来说,是读取该文件的权限;对目录来说,是获得该目录下的文件信息。
w 写权限。对文件,是修改;对目录,是增删文件与子目录。
(注 删除没有写权限的文件可以用 rm -f ,这是为了操作方便,是人性化的设计)。
x 执行权限;对目录,是进入该目录
- 表示没有权限
形式 - rw- r-- r--
其中 第一个是文件类型(-表普通文件,d表目录,l表软链接文件)
第2~4个是属主,生成文件时登录的人,权限最高,用u表示
第5~7个是属组,系统管理员分配的同组的一个或几个人,用g表示
第8~10个是其他人,除属组外的人,用o表示
所有人,包括属主、属组及其他人,用a表示
chmod 更改权限;
用法 chmod [-fr] <绝对模式> 文件 ...
chmod [-fr] <符号模式列表> 文件 ...
其中 <符号模式列表> 是一个用逗号分隔的表 [ugoa]{+|-|=}[rwxxlstugo]
chmod u+rw 给用户加权限。同理,u-rw也可以减权限。
chmod u=rw 给用户赋权限。与加权限不一样,赋权限有覆盖的效果。
主要形式有如下几种
chmod u+rw chmod u=rw
chmod u+r, u+w chmod u+rw,g+w, o+r
chmod 777( 用数字的方式设置权限是最常用的)
数字表示权限时,各数位分别表示属主、属组及其他人;
其中,1是执行权(execute),2是写权限(write),4是读权限(read),
具体权限相当于三种权限的数相加,如7=1+2+4,即拥有读写和执行权。
另外,临时文件/目录的权限为rwt,可写却不可删,关机后自动删除;建临时目录:chmod 777 目录名,再chmod +t 目录名。
id 显示用户有效的uid(用户字)和gid(组名)
用法 id [-ap] [user]
id 显示自己的。
id root 显示root的。
id -a root 显示用户所在组的所有组名(如root用户,是所有组的组员)
df 查看文件系统,查看数据区
用法 df [-f fstype] [-abeghklntvvz] [-o fstype 特定选项] [目录 | 块设备 | 资源]
df -k 以kbytes显示文件大小的查看文件系统方式
六、显示文件内容
more 分屏显示文件的内容。
用法 more [-cdflrsuw] [-行] [+行号] [+/模式] [文件名 ...]。
显示7个信息:用户名 密码 用户id(uid) 组id(gid) 描述信息(一般为空) 用户主目录 login shell(登录shell)
cat 显示文件内容,不分屏(一般用在小文件,大文件显示不下);合并文件,仅在屏幕上合并,并不改变原文件。
用法 cat [ -usvtebn ] [-|文件] ...
tail 实时监控文件,一般用在日志文件,可以只看其中的几行。
用法 tail [+/-[n][lbc][f]] [文件]
tail [+/-[n][l][r|f]] [文件]
七、文件/目录的增删
echo 显示一行内容。
touch 如果文件/目录不存在,则创建新文件/目录;如果文件存在,那么就是更新该文件的最后访问时间,
用法 touch [-acm] [-r ref_file] 文件...
touch [-acm] [mmddhhmm[yy]] 文件...
touch [-acm] [-t [[cc]yy]mmddhhmm[.ss]] file...
mkdir 创建目录(必须有创建目录的权限)
用法 mkdir [-m 模式] [-p] dirname ...
mkdir dir1/dir2 在dir1下建dir2
mkdir dir13 dir4 dir5 连建多个
mkdir ~/games 用户主目录下建(默认在当前目录下创建)
mkdir -p dir6/dir7/dir8 强制创建dir8;若没有前面的目录,会自动创建dir6和dir7。
不用-p时,若没有dir6/dir7,则创建失败。
cp 复制文件/目录
cp 源文件 目标文件 复制文件;若已有文件则覆盖
cp -r 源目录 目标目录 复制目录;若已有目录则把源目录复制到目标目录下,
没有目标目录时,相当于完全复制源目录,只是文件名不同。
cp beans apple dir2 把beans、apple文件复制到dir2目录下
cp -i beans apple 增加是否覆盖的提示
mv 移动或重命名文件/目录
用法 mv [-f] [-i] f1 f2
mv [-f] [-i] f1 ... fn d1
mv [-f] [-i] d1 d2
mv 源文件名 目标文件名 若目标文件名还没有,则是源文件重命名为目标文件;若目标文件已存在,则源文件覆盖目标文件。
mv 源文件名 目标目录 移动文件
mv 源目录 目标目录 若目标目录不存在,则源目录重命名;若目标目录已存在,则源目录移动到目标目录下。
rm 删除文件/目录
用法 rm [-firr] 文件 ...
rm 文件名 删除文件。
rm -r 目录名 删除目录。
rm –f 文件 只要是该文件或者目录的拥有者,无论是否有权限删除,都可以用这个命令参数强行删除。
rm -rf * 删除所有文件及目录
rmdir 删除空目录。只可以删除空目录。
ln 创建硬链接或软链接,硬链接=同一文件的多个名字;软链接=快捷方式
用法 ln [-f] [-n] [-s] f1 [f2]
ln [-f] [-n] [-s] f1 ... fn d1
ln [-f] [-n] -s d1 d2
ln file1 file1.ln 创建硬链接。感觉是同一文件,删除一个,对另一个没有影响;须两个都删除才算删除。
ln -s file1 file1.sln 创建软链接。可跨系统操作,冲破操作权限;也是快捷方式。
八、时间显示
date 显示时间,精确到秒
用法 date [-u] mmddhhmm[[cc]yy][.ss]
date [-u] [+format]
date -a [-]sss[.fff]
cal 显示日历
cal 9 2008 显示2008年9月的日历; cal 显示当月的
用法 cal [ [月] 年 ]
九、帮助
man 帮助( format and display the on-line manual pages)
用法 man [-] [-adflrt] [-m 路径] [-t 宏软件包] [-s 段] 名称 ...
man [-] [-adflrt] [-m path] [-t macro-package] [-s section] name...
man [-m 路径] -k 关键字 ...
man [-m 路径] -f 文件 ...
awk 按一定格式输出(pattern scanning and processing language)
用法 awk [-fc] [-f 源代码 | 'cmds'] [文件]
十、查看用户
users 显示在线用户(仅显示用户名)。
who 显示在线用户,但比users更详细,包括用户名、终端号、登录时间、ip地址。
who am i 仅显示自己,(但包括用户名、端口、登录时间、ip地址;信息量=who)。
whoami 也仅显示自己,但只有用户名(仅显示自己的有效的用户名)。
w 显示比who更多内容,还包括闲置时间、占cpu、平均占用cpu、执行命令。
用法 w [ -hlsuw ] [ 用户 ]
su 改变用户,需再输入密码。
用法 su [-] [ username [ arg ... ] ]
su - 相当于退出再重新登录。
查找
find 查找文件
用法 find [-h | -l] 路径列表 谓词列表
find / -name perl 从根目录开始查找名为perl的文件。
find . -mtime 10 -print 从当前目录查找距离现在10天时修改的文件,显示在屏幕上。
(注 “10”表示第10天的时候;如果是“+10”表示10天以外的范围;“-10”表示10天以内的范围。)
grep 文件中查找字符;有过滤功能,只列出想要的内容
用法 grep -hblcnsviw 模式 文件 . . .
如 grep abc /etc/passwd 在passwd文件下找abc字符
wc 统计
-l 统计行数; -w统计单词数; -c 统计字符数
如 grep wang /etc/passwd|wc -l 统计passwd文件含“wang”的行数
du 查看目录情况
如 du -sk * 不加-s会显示子目录,-k按千字节排序
用法 du [-a] [-d] [-h|-k] [-r] [-o|-s] [-h|-l] [文件...]
十一、进程管理
ps 显示进程。
用法 ps [ -aadeflcjlpyz ] [ -o 格式 ] [ -t 项列表 ]
[ -u 用户列表 ] [ -u 用户列表 ] [ -g 组列表 ]
[ -p 进程列表 ] [ -g 程序组列表 ] [ -s 标识符列表 ] [ -z 区域列表 ]
ps 显示自己的进程。
ps -e 显示每个进程,包括空闲进程。
ps -f 显示详情。
ps -ef 组合-e和-f,所有进程的详情。
ps -u uidlist(用户列表) 具体查看某人的进程。
kill
pkill
sleep
jobs
用法 jobs [-l ]
fg %n
bg %n
stop %n 挂起(仅csh能用)
ctrl+c
ctrl+z
网络链接
ping
usage ping host [timeout]
usage ping -s [-l | u] [adlnrrv] [-a addr_family] [-c traffic_class] [-g gateway [-g gateway ...]] [-f flow_label] [-i interval] [-i interface] [-p tos] [-p port] [-t ttl] host [data_size] [npackets]
ifconfig -a
/sbin/ifconfig 查看本机的ip地址