命令选项和参数
Linux中的命令格式为:command [options] [arguments] //中括号表示可选的,即有些命令不需要选项也不需要参数,但有的命令在运行时需要多个选项或参数。
options(选项):选项是调整命令执行行为的开关,即,选项不同决定了命令的显示结果不同。
选项分为长选项和短选项。
短选项:例如-h,-l,-s等。(- 后面接单个字母)
1、短选项都是使用 ‘-’ 引导,当有多个短选项时,各选项之间使用空格隔开
2、有些命令的短选项可以组合,例如 -l -h 可以组合为-lh
3、有些命令的短选项可以不带 - ,这通常叫做BSD风格的选项。例如ps aux
4、有些短选项需要带选项本身的参数,例如 -L 512M
长选项:例如 --help,--list 等。(-- 后面接单词)
1、长选项都是完整的单词
2、长选项通常不能组合
3、如果需要加参数,长选项的参数通常需要 "=",例如 --size=1G
agruments(参数):
参数是指命令的作用对象。
例如 ls 命令,不加参数的时候显示是当前目录,也可以加参数,例如 ls /dev,则输出的结果是 /dev 目录。
小结一下:
选项是限定结果的显示结果
短选项( - ):只能修饰一个字符的选项,例如:ls -a,当然多个短选项可以合并,例如tar -cvf
长选项( -- ):既可以修饰单个字符,也可以修饰一个单词,例如:chkconfig --list,chkconfig --add xxx,service --status-all
权限管理:UNIX权限:U(rwx)g(rwx)0(rwx)
r --可读权限
w --可写权限
x --可执行权限
也可以用数字来表示 :
r=4 w=2 x=1
例:rwx = 7(4+2+1) ; rw = 6 (4+2) ; r-w = 5 (4+0+1) ; r-- = 4 (4+0+0) ; --x = 1 (0+0+1);
示例:
(1)# chmod 777 test1 --赋予test1可读可写可执行权限(所有权限)
文件和目录常用操作命令
在学习之前我们得先了解一下绝对路径和相对路径这两个概念
绝对路径:
在Linux中,绝对路径是从/(即根目录)开始的,例如 /usr、/etc/X11。如果一个路径是从 / 开始的,它一定是绝对路径。举几个示例
[root@srv1 ~]# pwd --判断当前用户所在的位置,也就是说他现在到底位于哪里
/root --用户当前位于/root
[root@srv1 doc]# cd /usr/share/doc/ --以绝对路径方式进入/usr/share/doc目录下
[root@srv1 doc]# pwd --判断用户当前所在的位置
/usr/share/doc --用户位于/usr/share/doc,看来已经达到目的了
相对路径:
是以 . 或 .. 开始的,
.用户当前操作所在的位置,
.. 表示上级目录,
在路径中, . 表示用户当前所在的目录,而 .. 上级目录,
要把 . 和 .. 当做目录来看
1、ls
【命令作用】列出文件和目录的内容
-l --以长格式显示,列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等
-L --列出文件的链接名,Link(链接)
-A --列出除了 "." 和 ".."以外的文件
-a --列出文件下所有的文件,包括以 "." 和 ".."开头的隐藏文件 (Linux下文件隐藏文件是以 . 开头的,如果存在 .. 代表存在着父目录)
-h --人性化地显示出文件大小(4.1k 而不是4023这样的纯数字)
【参数说明】目录或文件 (即,列出指定的目录内容,需要注意绝对路径和相对路径)
另外可以用 tree:以树状图列出目录的内容。可以列出子文件夹
【参数说明】
- -d 显示目录名称而非内容。
- -D 列出文件或目录的更改时间。
2.pwd
【命令作用】 查看”当前工作目录“的完整路径
3.cd
【命令作用】显示当前目录的名称,或更改当前的目录(打开特定目录)
切换用户当前目录,例如 . 表示当前目录 .. 表示上一级目录 ,~ 表示家目录 / 表示根目录
【命令示例】
[root@srv1 ~]# cd --切换到前期用户家目录
[root@srv1 ~]# cd . --切换到当前目录
[root@srv1 ~]# cd .. --切换到当前目录上一级目录
[root@srv1 /]# cd ~ --切换到用户家目录
[root@srv1 ~]# cd / --切换到根目录下
4.touch
【命令作用】创建空文件或文件时间戳修改
【参数说明】创建文件的文件名
【命令示例】
# touch /home123 --在home目录下创建文件123 (这是一个绝对路径)
5.echo
【命令作用】在显示器上显示一段文字,一般起到一个提示的作用
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
【常用选项】
-e --允许下面列出的加反斜线转义的字符进行解释
--换行符
f --换页符
--水平制表符
v --纵向制表符
【参数说明】需要打印的内容或变量
【命令示例】
(1)文本的直接输入:
# echo 'Welcome To WCZY'
(2) 输出变量的值:假设定义一个变量:
# bl="Welcome To WCZY"
# echo $bl
解释:bl是定义的变量名,=号后面是赋值,字符串需要用“”括起来。$后面直接跟上变量名即可
(3)echo 后跟单双引号的区别:
解释:echo后的单引号表示强引用,单引号里面是什么就输出什么,而双引号是弱引用,变量的值会代替变量名输出。
(4)选项中加入 -e ,转义字符可用:
:插入制表符,即跳格显示
echo -e “Hello Linux Hello World”
不加 -e 的对比,如下:
echo "Hello Linux Hello World"
6.mkdir
【命令作用】创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
【常用选项】
-p --可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录(递归)
-v --每次创建新目录都显示信息。【通用的,其它命令也可以用此选项】
-m --设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
【参数说明】需要创建的目录【可以多个】
【命令示例】
(1)创建一个空目录、多个空目录
# mkdir test1
# mkdir test2 test3 test4
(2)递归创建多个目录
# mkdir -p test2/test22
test22是位于test2目录里面
(3)创建权限为777的目录
# mkdir -m 777 test3
test3 的权限为rwxrwxrwx
(4)创建新目录都显示信息
# mkdir -v test4
7.cp
【命令作用】复制文件或者目录
【命令语法】cp [选项] 源 目标
【常用选项】
-f --如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)
-n --不要覆盖已存在的文件(使前面的 -i 选项失效)
-i --覆盖前询问(使前面的 -n 选项失效)
-p --保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等
-P --不跟随源文件中的符号链接
-R,-r --复制目录及目录内的所有项目
-v --显示过程 (通常与-r一起使用)
-s --对源文件建立符号连接,而非复制文件
【参数说明】源文件 目标文件
【命令示例】
(1)将home目录中的abc文件复制到根目录下
# cp /home/abc /
(2)目标文件存在时,会询问是否覆盖
# cp /home/abc /
解释:目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
(3)复制的abc文件建立一个连结档abc.log
# cp -s abc abc.log
8.mv
【命令作用】移动文件或者将文件重命名(move (rename) files),经常用来备份文件或者目录。
【命令语法】mv [选项] 源文件或目录 目标文件或目录
【常用选项】-b --若需覆盖文件,则覆盖前先行备份
【命令示例】
(1)文件改名 # mv abc qwe
解释:将文件abc重命名为qwe
(2)移动文件 # mv test3 test4
解释:将目录test3移动到test4中(如果存在的话,不存在则是将test3重命名为test4)
9.rmdir
【命令作用】删除空目录
【命令语法】rmdir [选项] 目录
【常用选项】
-p --递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
-v --显示指令执行过程
【参数说明】需要删除的目录
【命令示例】
(1)不能删除非空目录
# rmdir bus
(2)递归删除当前目录下的1/2/3/4/5/6目录
# rmdir -pv 1/2/3/4/5/6
10.rm
【命令作用】删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在 /(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
rm通常可以将该文件或目录恢复(注意,rm删除文件其实只是将指向数据块的索引点(information nodes)释放,只要不被覆盖,数据其实还在硬盘上。如果想要文件的内容无法复原,可以使用命令shred 。 另外一般还是要慎用rm -rf *这样的命令。
【命令语法】rm [选项] 文件
【常用选项】
-i 交互模式删除文件,删除文件前给出提示。y 确认删除,n 不删除
-f --忽略不存在的文件,从不给出提示
-r --指示rm将参数中列出的全部目录和子目录均递归地删除。
【参数说明】需要删除的文件或目录
【命令示例】
(1)删除某个文件时,系统会先询问是否删除
# rm -i 文件名
解释:输入rm qwe命令后,系统会询问是否删除,输入y后就会删除文件,不想删除文件则输入n。
(2)强制删除某个文件
# rm-rf abc.log
11.shred
【命令作用】用随机值重写覆盖文件,让文件无法恢复
【命令语法】shred [选项] 文件 [参数]
【常用选项】
-n --自行指定重写覆盖的次数,默认为三次
-s --覆盖指定的字节数(可接受K、M、G等等的单位)
-u --在重写覆盖后截断和删除文件
-z --添加一个带有0的最终覆盖,以隐藏分解
【参数说明】指定要覆盖的文件名
【命令示例】
# shred -n 3 -u app 覆盖app文件三次,并删除
12.nano
【命令作用】文本编辑器
【命令语法】nano [选项] [+行,列] [参数]
【参数说明】文件名
【命令示例】
# nano abc 编辑名为abc的文本
退出编辑:Ctrl+X ,确认 y,回车。
13.vi/vim
【命令作用】文本编辑器,若文件存在则是编辑,若不存在则是创建并编辑
【命令语法】vim [选项] [参数]
【命令示例】
# vim abc 编辑名为abc的文本
编辑是时Insert模式,按Esc回到正常模式。然后保存退出 :wq
14.cat
【命令作用】连接文件并在标准输出上输出【不打开编辑器】。常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
【命令语法】cat [选项] [参数]
【常用选项】
-E --在每行结束显示 $
-n --给所有输出行编号
-v --使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
【参数说明】文件名>
【命令示例】
(1)将123和456的内容输入到789里
# cat 123 456 > 789
789文件不存在的话 会自行创建。
(2)显示123文件内容和换行符
# cat -E 123
(3)显示123文件内容
# cat 123
(4)显示123文件内容和行号
# cat -n 123
15.nl
【命令作用】计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 。 等等的功能。
【命令语法】nl [选项] [参数]
【常用选项】
-b a --表示不论是否为空行,也同样列出行号(类似 cat -n)
-b t --如果有空行,空的那一行不要列出行号(默认值)
【参数说明】文件名
【命令示例】
(1)用nl列出/(根目录)123文件里的内容
# nl /123
(2)用 nl 列出/123文件的内容,空本行也加上行号
# nl -b a /123
16.tac
【命令作用】倒序查看指定文件内容
【命令语法】tac [选项] 文件名
17.more
【命令作用】类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示 方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
【命令语法】more [选项] [参数]
【参数说明】文件名
【命令示例】
(1)# more [文件名] --分屏查看指定文件内容
(2)显示文件中从第3行起的内容
# more +3 /123
(3)从文件中查找第一个出现"1a"字符串的行,并从该处前两行开始显示输出
# more +/1a /123
(4)列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来
# ls -l | more -7
解释:每页显示7个文件信息,按 Ctrl+F 或者 空格键 将会显示下5条文件信息。
21.grep
【命令作用】文本过滤,模糊查找
【命令语法】grep [选项] [需要查找的内容] [参数]
【常用选项】
--color=auto --对匹配到的文本着色显示
-v --显示不能够被pattern匹配到的行
-i --忽略字符大小写
-n --显示行号
-q --静默模式,不输出任何信息;
-A # --after, 后#行
-B # --before, 前#行
-C # --context, 前后各#行
【参数说明】文件名
【命令示例】
(1)# grep a /123 --在根目录下的文件123中查找含字母a的行
(2)# grep -i a /123 --在根目录下的文件123中查找含a或者A的行
(3)# grep -n a /123 --在根目录下的文件123中查找含a的行,并显示行号
(4)# grep -v a /123 --在根目录下的文件123中查找不含a的行
28.diff
【命令作用】比较文件之间的差异
【命令语法】diff [参数] [文件1或目录1] [文件2或目录2]
【常用选项】无
【参数说明】文件1或目录1 文件2或目录2
【命令示例】
# diff a1 a2 --对比a1和a2的不同
32.file
【命令作用】确定文件类型
如果文件系统确定成功,则输出文件类型,输出的文件类型如下:
text :文件中只有ASCII码字符,可以将字符终端显示文件内容
executable:文件可以运行
data:其他类型文件,此类文件一般是二进制文件或不能再字符终端上直接显示的文件
【命令语法】file [选项] [参数]
【常用选项】无
【参数说明】文件名,或者目录名
【命令示例】
# file 123 --查看文件123的类型
33.stat
【命令作用】查看文件属性
【命令语法】stat [选项] [参数]
【常用选项】-f --显示文件系统状态
【参数说明】文件名,或者目录名
【命令示例】
# stat 123 --显示文件123的属性
34.which
【命令作用】 我们经常在Linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
which --查看可执行文件的位置
whereis --查看文件的位置
locate --配合数据库查看文件位置
find --实际搜寻硬盘查询文件名称
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
【命令语法】which [可执行的文件名称]
【常用选项】无
【参数说明】命令名
【命令示例】
(1) # which which --用which去找出which
解释:竟然会有两个which,其中一个是alias(别名命令),意思是输入which会等于后面的那串命令
(2)# which cd --查找cd的绝对路径
解释:发现并没有找到cd的位置(绝对路径),因为 cd 是 bash 内建的命令,但是 which 默认是找 PATH 内所规范的目录,所以找不到
35.whatis
【命令作用】查看帮助文件的位置、命令的作用。
使用makewhatis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库
【命令语法】whatis [选项] [参数]
【参数说明】命令名
【命令示例】
# whatis cat --查看命令cat的作用
36.whereis
【命令作用】whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息
和find相比,whereis查找的速度非常快,这是因为Linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
【命令语法】whereis [选项] [参数]
【常用选项】
-b --仅查找二进制程序和命令
-m --仅查找man帮助手册文件
-s --仅查找源代码文件
【参数说明】命令名
【命令示例】
(1)查看cp文件及相关文件路径
# whereis cp
(2)# where -b cp --只将cp的二进制文件查找出来
# where -m cp --查找cp的man帮助
# where -s cp --查找cp源代码文件
37.locate
【命令作用】快速定位文件的路径。
依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新数据库(updatedb);索引构建过程需要遍历整个根文件系统,极消耗资源;
工作特点是:查找速度快,模糊查找,非实时查找
【命令语法】locate [选项] [参数]
【参数说明】文件名
【命令示例】
(1)# locate pwd --和pwd相关的所有文件
(2)# locate /etc/sh --搜索在etc目录下所有以sh开头的文件
38.find
【命令作用】用于在文件树种查找文件,并作出相应的处理
【命令语法】find [选项] [参数]
【常用选项】
-name --按照文件名查找文件
-iname --按照文件名查找文件,不区分字母大小写
-user --查找属于指定用户的所有文件
-group --按照文件所属的组来查找文件
-uid -- 查找属主为指定的 UID 号的文件
-gid --查找属组为指定的 GID 号的文件
-size --根据文件大小来查找文件
-type --根据文件类型查找
f (普通文件)
d (目录文件)
b (块设备)
c (字符设备)
s (套接字文件)
p (管道文件)
l (符号链接文件)
-exec COMMAND {} --对查找到的每个文件执行由COMMAND指定的命令;{}: 用于引用查找到的文件名称自身
注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令;有些命令不能接受过多参数,此时命令执行可能会失败;另一种方式可规避此问题:
【参数说明】
要查的起始目录,查找的名称是什么
【命令示例】
(1)根据关键字查找
# find . -name "*.1"
解释:在当前目录中查找,以1结尾的文件, "." 代表当前目录
(2)根据权限进行查找
# find . -perm 777
解释:在当前目录中查找权限为777的文件
(3)按类型查找
# find -type f -name "*6"
解释:在当前目录中,查找以6结尾的普通文件
(4)按大小查找文件
# find . -size +1000c -print
解释:在当前目录下,查找大于1K的文件
39.help
【命令作用】查看内部命令的帮助信息
【命令语法】help [选项] [参数]
【常用选项】无
【参数说明】指定命令名显示帮助信息
【命令示例】
# help pwd --查看内部命令pwd的帮助信息
40.man
【命令作用】 命令帮助手册
【命令语法】 man [选项] [参数]
【常用选项】无
【参数说明】所要搜索帮助信息的命令
【命令示例】
# man cd 查看cd的帮助信息