Linux常用命令.docx
《Linux常用命令.docx》由会员分享,可在线阅读,更多相关《Linux常用命令.docx(51页珍藏版)》请在冰豆网上搜索。
Linux常用命令
Linux常用命令
A.1文件管理
1.cat命令
格式:
cat[-bnsv][--help][--version]fileName
说明:
将文件输出或者冲顶想到指定的文件。
在重定向的时候,“>”表示直接输出到指定的文件,覆盖原文件的内容,而“>>”表示追加到指定文件的末尾。
参数:
❑-n或--number:
由1开始对所有输出,并在行前加行编号
❑-b或--number-nonblank:
和-n相似,只不过对于空白行不编号
❑-s或--squeeze-blank:
遇到连续两行以上空行,就代换为一空行
❑-v或--show-nonprinting
❑--help:
显示帮助信息
❑--version:
显示版本信息
例
(1)textfile1的文件内容加上行号后输出到textfile2文件里
#cat-ntextfile>textfile2
例
(2)把textfile1和textfile2的内容加上行号后附加到textfile3里
#cat-btextfile1textfile2>>textfile3
例(3)清空/etc/test.txt文件内容
#cat/dev/null>/etc/test.txt//dev/null表示控设备
例(4)制作软盘的镜像文件:
#cat/dev/fd0>floppy.img
例(5)把镜像文件写到软盘:
#catfloppy.img>/dev/fd0
例(6)将~/test下的所有文件合为一个文件,文件名为aa
#cat~/test/*>aa
2.cd命令
格式:
cd[dirName]
说明:
变换当前工作目录至dirName。
其中dirName可为绝对路径或相对路径。
若目录名称省略,则变换至用户主目录(也就是刚登录时所在的目录)。
另外,“~”也表示为主目录的意思,“.”则是表示目前所在的目录,“..”则表示当前目录位置的上一层目录。
例
(1)转到/usr/bin/
#cd/usr/bin
例
(2)转到自己的主目录
#cd~
例(3)转到当前目录的上上两层
#cd../..
例(4)返回上层目录
#cd–
3.chgrp命令
格式:
chgrp[-cfhv][--help][-version][所属群组][文件或目录]
chgrp[-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录]
说明:
更改文件或目录的所属群组。
参数:
❑-c或--changes效果类似“-v”参数,但仅显示更改的部分
❑-f或--quiet或--silent:
不显示错误信息
❑-h或--no-dereference:
只对符号连接的文件作修改
❑-R或--recursive:
递归处理,将指定目录下的所有文件及子目录一并处理
❑-v或--verbose:
显示命令执行过程
❑--help:
显示在线帮助。
❑--reference=<参考文件或目录>:
把指定文件或目录的所属群组设成和参考文件或目录的所属群组相同
❑--version:
显示版本信息
例
(1)将/home下的文件aa授予root组
#chgrproot/home/aa
例
(2)将用户syd168主目录及子目录下的所有文件授予student组
#chgrp-Rstudent/home/syd168
4.chmod命令
格式:
chmod[-cfvR][--help][--version]modefile...
说明:
修改文件或目录的权限。
文件权限控制分别以读取(read),写入(write)和执行(execute)3种权限区分,而文件的所有权有用户(user)、组(group)和其它(other)三种。
可以使用chmod命令去改变文件或目录的权限,可以用代表权限的字符或数字进行设置。
但符号连接的权限无法变更,对符号连接权限的修改其实是改变它所链接的原始文件。
参数:
❑mode:
权限设定字串,格式为:
[ugoa...][[+-=][rwxX]...][,...],其中
⏹u表示该文件的拥有者
⏹g表示与该文件的拥有者属于同一个组(group)者
⏹o表示其它以外的人
⏹a表示这三者皆是
⏹+表示增加权限
⏹-表示取消权限
⏹=表示设置设定权限,将替换原有权限
⏹r表示可读取
⏹w表示可写入
⏹x表示可执行
⏹X表示只有当该文件是个子目录或者该文件已经被设定为可执行时
❑-c:
若该文件权限确实已经更改,才显示其更改动作
❑-f:
若该文件权限无法被更改也不要显示错误信息
❑-v:
显示权限变更的详细内容
❑-R:
对当前目录下的所有文件与子目录进行相同的权限改变
❑--help:
显示辅助说明
❑--version:
显示版本
例
(1)将文件file1.txt设为所有人皆可读取
#chmodugo+rfile1.txt
例
(2)将文件file1.txt设为所有人皆可读取
#chmoda+rfile1.txt
例(3)将文件file1.txt与file2.txt设为该文件拥有者,与其所属同一个组的用户可写入,但其它以外的用户则不可写入
#chmodug+w,o-wfile1.txtfile2.txt
例(4)将ex1.py设定为只有该文件拥有者可以执行
#chmodu+xgo-xex1.py
例(5)将当前目录下的所有文件与子目录皆设为任何人可读取
#chmod-Ra+r./*
例(6)设置/home/user1下级子目录下的所有文件权限为755(用户可读写执行,组和其他用户只能读取和执行)
#chmod-R755/home/user1
同样方法设置以上权限:
#chmod-Ru=rwx,g=r-x,o=r-x/home/user1//多个权限项之间用逗号
例(7)给/home/share及子目录下的文件添加所有用户读取权限,组用户写的权限,去掉其他用户写的权限,去掉所有用户执行权限
#chmod-Ra+r,g+w,o-w,a-x/home/user1
注意:
chmod也可以用数字来表示权限,语法格式为:
#chmodabcfile
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1。
如若rwx属性则4+2+1=7;若rw-属性则4+2=6;若r-x属性则4+1=7。
所以,如下的命令之间有等价关系:
chmoda=rwxfile和chmod777file效果相同
chmodug=rwx,o=xfile和chmod771file效果相同
若用chmod4755filename可使此程序具有root的权限。
5.chown命令
格式:
chmod[-cfhvR][--help][--version]user[:
group]file...
说明:
改变文件或目录的所有者。
参数:
❑user:
新的文件拥有者的用户
❑group:
新的文件拥有者的用户组(group)
❑-c:
若该文件拥有者确实已经更改,才显示其更改动作
❑-f:
若该文件拥有者无法被更改也不要显示错误信息
❑-h:
只对于链接(link)进行变更,而非该link真正指向的文件
❑-v:
显示拥有者变更的详细内容
❑-R:
对当前目录下的所有文件与子目录进行相同更改
❑--help:
显示辅助说明
❑--version:
显示版本
例
(1)将文件file1.txt的拥有者设为users组的用户jessie
#chownjessie.usersfile1.txt
例
(2)将当前目录下的所有文件与子目录的拥有者皆设为users组的用户lamport
#chmod-Rlamport.users./*
例(3)将/home/backup下的所有文件的所有者修改为root
#chownroot/home/backup
例(4)将/home/share及子目录下的所有文件的所有者修改为root,组改为share
#chown-Rroot.share/home/backup
6.cp命令
格式:
cp[options]sourcedest或cp[options]source...directory
说明:
复制文件或目录
参数:
❑-a:
尽可能将文件状态、权限等内容都照原状复制
❑-r:
将目录及子目录下的文件一起复制
❑-f:
如果目标文件已经存在,则覆盖之
例
(1)将文件aaa复制为bbb
#cpaaabbb
例
(2)将所有的C语言程序拷贝至Finished子目录中
#cp*.cFinished/
例(3)将/home/backup下的所有文件复制到/root/下
#cp/home/backup/*/root/
例(4)将/home/share及子目录下的所有文件复制到/root下
#cp-R/home/backup/root
7.cut命令
格式:
cut-c|fn-m[-dchar]File…
说明:
显示文本文件每行第n-m字符。
如无file参数,cut命令将读取标准输入。
参数:
❑-cm-n:
表示显示每一行的第m个字符到第n个字符。
❑-fm-n:
表示显示第m栏到第n栏(使用tab分隔)。
❑-dchar使用char指定的字符作为分栏定界符
例
(1)显示/etc/passwd文件每行的前7个字符,并加行号
#cut-c1-7/etc/passwd|cat-n
例
(2)显示/etc/passwd中前三个栏目的内容,栏目之间用“:
”分隔
#cut-f1-3-d:
/etc/passwd|cat-n
8.find命令
格式:
find[path][expression]
说明:
在指定的目录及其子目录中查找匹配条件(expression)的文件。
expression可以是要搜索文件的名称、类别、时间、大小、权限等不同信息的组合,只有完全相符的才会被列出来。
find根据下列规则判断path和expression,在命令中上第一个字符“-、()、,或!
”之前的部份为path,之后的是expression。
如果path是空字串则使用目前路径,如果expression是空字串则使用-print为预设expression。
参数:
❑-mount,-xdev:
只检查和指定目录在同一个文件系统下的文件
❑-aminn:
在过去n分钟内被读取过
❑-anewerfile:
比文件file更晚被读取过的文件
❑-atimen:
在过去n天过读取过的文件
❑-cminn:
在过去n分钟内被修改过
❑-cnewerfile:
比文件file更新的文件
❑-ctimen:
在过去n天过修改过的文件
❑-empty:
空文件,-gidnor-groupname:
gid是n或是group名称是name
❑-ipathp或-pathp:
路径名称符合p的文件,ipath会忽略大小写
❑-namename或-inamename:
文件名符合name的文件,忽略大小写
❑-sizenx:
大小是n,单位是x的文件,x取值如下:
⏹b代表512位元组的区块
⏹c表示字符数
⏹k表示KB
⏹w是二个位元组
❑-typec:
文件类型是c的文件。
下面是可用的文件类型:
⏹d:
目录
⏹c:
字型装置文件
⏹b:
区块装置文件
⏹p:
名命官道
⏹f:
一般文件
⏹l:
符号链接
⏹s:
socket
❑-pidn,查找进程id是n的文件。
可用()分隔,并使用如下格式比较:
⏹exp1-andexp2
⏹!
expr
⏹-notexpr
⏹exp1-orexp2
⏹exp1,exp2
例
(1)将当前目录及其子目录下所有文件名的扩展名是c的文件列出来
#find.-name"*.c"
例
(2)将当前目录其其下子目录中所有一般文件列出
#find.-typef
例(3)将当前目录及其子目录下所有最近20分钟内更新过的文件列出
#find.–ctime-20
例(4)查找包含特殊字符xxx的文件
#find/-name"*.conf"|xargsgrep"xxx"
例(5)从/开始查找所有名为bashrc的文件
#find/-inamebashrc
例(6)在/var/lib/下查找所有属于user1的文件,并忽略错误显示
#find/var/lib-useruser12>/dev/null
例(7)在/var下查找所有不属于root,bin,和user1的文件,并忽略错误显示
#find/var!
-userrootnot-userbinnot-useruser12>/dev/null
9.grep命令
格式:
grepexpression[options]file…
说明:
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
注意,expression一般要放到''中间,如'^aa'。
参数:
expression选项匹配字符,放于''中:
❑^:
匹配行开始,如'^aa'匹配所有以grep开头的行
❑$:
匹配行结束,如'grep$'匹配所有以grep结尾的行
❑*:
匹配0个或多个前导字符,如'*grep'匹配所有一个或多个空格后紧跟grep的行,.*合用代表任意字符
❑[]:
匹配1个指定范围内的字符,如'[Gg]rep'匹配Grep和grep
❑[^]:
匹配1个不在指定范围内的字符
❑\(..\):
标记匹配字符,如'\(love\)',love被标记为1
❑\<:
匹配单词的开始,如:
'\
❑\>:
匹配单词的结束,如'grep\>'匹配包含以grep结尾的单词的行
❑x\{m\}:
重复x为m次,如'0\{5\}'匹配包含5个o的行
❑x\{m,\}:
重复x至少m次,如'o\{5,\}'匹配至少有5个o的行
❑x\{m,n\}:
重复x至少m-n次,如'o\{5,10\}'匹配5--10个o的行
❑\w:
匹配文字和数字字符,也就是[A-Za-z0-9]
❑\W:
\w的反置形式,匹配一个或多个非单词字符,如点号句号等
❑\b:
单词锁定符,如'\bgrepb\'只匹配grep
❑3.:
用于egrep和grep-E的元字符扩展集如zz
❑+:
匹配1个或多个前导的字符
❑?
:
匹配0个或多个前导字符。
如'r?
p'匹配r后跟1个或没字符,然接p
❑a|b|c:
匹配a或b或c。
如grep|sed匹配grep或sed
❑():
分组,如love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov
❑x{m},x{m,},x{m,n}:
作用同x\{m\},x\{m,\},x\{m,n\}
options选项:
❑-?
同时显示匹配行上下的?
行,如:
grep-2patternfilename同时显示匹配行的上下2行
❑-b,--byte-offset打印匹配行前面打印该行所在的块号码
❑-c,--count只打印匹配的行数,不显示匹配的内容
❑-fFile,--file=File从文件中提取模板。
空文件中包含0个模板,所以什么都不匹配
❑-h,--no-filename当搜索多个文件时,不显示匹配文件名前缀
❑-i,--ignore-case忽略大小写差别
❑-q,--quiet取消显示,只返回退出状态。
0则表示找到了匹配的行
❑-l,--files-with-matches打印匹配模板的文件清单
❑-L,--files-without-match打印不匹配模板的文件清单
❑-n,--line-number在匹配的行前面打印行号
❑-s,--silent不显示关于不存在或者无法读取文件的错误信息
❑-v,--revert-match反检索,只显示不匹配的行
❑-w,--word-regexp如果被\<和\>引用,就把表达式做为一个单词搜索
❑-V,--version显示软件版本信息
例
(1)通过管道过滤ls-l输出的内容,只显示以a开头的行。
#ls-l|grep'^a'
例
(2)显示所有以d开头的文件中包含test的行。
#grep'test'd*
例(3)显示在aa,bb,cc文件中匹配test的行。
#grep'test'aabbcc
例(4)显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
#grep'[a-z]\{5\}'aa
例(5)在/etc/目录下查找所有包含root字符的conf文件
#find/etc-name"*.conf"|xargsgrep"^root"
10.head命令
格式:
head[-cnqv][--help][--version]file
说明:
head命令在Linux系统中用来输出文本文件开头部分内容的工具
参数:
❑-c,--bytes=N:
指定输出开头的N个字节
❑-n,--lines=N:
指定输出开头的N行
❑-q,--quiet,--silent:
不输出文件名称的信息
❑-v,--verbose:
显示文件名称的信息
❑--help:
显示帮助文件
❑--version:
版本信息显示
例
(1)显示Test文件的前5行
#head-5Test
#head-n5Test
11.less命令
格式:
less[Option]filename
说明:
less的作用与more十分相似,都可以用来浏览文本文件的内容,不同的是less允许用户往回翻动以浏览已经看过的内容,同时因为less并未在一开始就读入整个文件,因此在遇上大型文件的打开时,会比一般的文本编辑器(如vi)快速。
可以使用键盘的上下箭头前进或后退,看文件内容。
按q键可立即退出。
例
(1)浏览/etc/passwd文件的内容
#less/etc/passwd
12.ln命令
格式:
ln[-fdinsvbS]sourcedist
说明:
创建软链接或硬链接。
Linux/Unix文件系统中有所谓的链接,可以将其视为文件的别名,链接又可分为硬链接与软链接两种,硬链接的意思是一个文件可以有多个名称,软链接是指向另一个文件的位置,类似于Windows中的快捷方式。
硬链接则是原文件(只能是文件)的一个特殊“副本”,并且指向同一物理文件,删除硬链接不会导致原文件的删除,同样删除原文件不会导致硬链接的删除,除非二者都被删除。
所以,硬链接常用于重要文件的防删除保护。
参数:
❑-f:
链接时先将与dist同文件名的文件删除
❑-d:
允许系统管理者硬链接自己的目录
❑-i:
在删除与dist同文件名的文件时先进行询问
❑-n:
在进行软连结时,将dist视为一般的文件
❑-s:
进行软链接
❑-v:
在链接之前显示其文件名
❑-b:
将在链接时会被覆写或删除的文件进行备份
❑-SSUFFIX:
将备份的文件都加上SUFFIX的后缀
例
(1)给文件yy产生一个软链接zz
#ln-syyzz
例
(2)将文件yy产生一个硬连接zz
#lnyyzz
例(3)在/home/user1下建立/etc/bashrc的软链接,链接名为bashrc
#ln-s/etc/bashrc/home/user1/bashrc
例(4)在/home/user1下建立/etc/bashrc的硬连接,链接名为bashrc.h
#ln/etc/bashrc/home/user1/bashrc.h
13.locate命令
格式:
locate[-qv]file
说明:
快速搜寻文件系统内是否有指定的文件。
其方法是先建立一个包括系统内所有文件名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入文件系统之中了。
在一般的发布之中,数据库的建立都被放在contab中自动执行。
参数:
❑-n:
至多显示n个输出
❑-v:
显示更多的信息
例
(1)寻找所有叫chdrv的文件
#locatechdrv
例
(2)寻找所有叫a.out的文件,但最多只显示100个
#locate-n100a.out
例(3)建立数据库:
#updatedb
例(4)查找所有文件名包含bash的文件
#locatebash
14.ls命令
格式:
ls[-alrtAFR][name...]
说明:
显示指定目录下之内容。
参数:
❑-a:
显示所有文件及目录,但不显示以“.”开头的隐含文件
❑-l:
详细列出文件名、权限、拥有者、文件大小等信息
❑-r:
将文件以相反次序显示(原定依英文字母次序)
❑-t:
将文件依建立时间之先后次序列出
❑-A:
同-a,但不列出当前目录“.”及父目录“..”
❑-F:
在可执行文件则加“*”,目录后加“/”
❑-R:
若目录下有文件,则以下之文件亦皆依序列出
例
(1)列出当前目录下所有名称是s开头的文件的详细信息,新建文件在后面
#ls-ltrs*
例
(2)将/bin目录以下所有目录及文件详细内容列出
#ls-lR/bin
例(3)列出当前目录下所有文件,目录于名称后加“/”,可执行文件名后加“*”
#ls-AF
例(4)显示/etc/下的所有文件
#ls/etc
例(5)长格式显示/etc/profile.d下的文件信息
#ls-l/etc/profile.d
15.mkdir命令
格式:
mkdir[-p][-mpermit]dirName
说明:
建立名称为dirName目录
参数:
❑-p:
确保目录名称存在,不存在的就建一个,可以用于建立多级目录
❑-mpermit:
同时指定权限,permit是用数字表示的权限
例
(1)在当前目录下,建立一个名为AAA的子目录:
#mkdirAAA
例
(2)在当前目录下建立Test,t1,t2三个子目录。
#mkdir-pTest,t1,t2
格式:
mkdir[-p][-m权限]目录……
例(3)在/home下创建share目录
#mkdir/home/share
例(4)在/home/下创建多级目录pub/www/user1
#mkdir-p/home/pub/www/user1
例(5)在/home/下创建多级目录pub/www/user2,并赋予755权限
#mkdir-p-m755/home/pub/www/user2
16.more命令