您的位置:首页 > 运维架构 > Linux

常用Linux命令

2017-09-02 11:04 239 查看
(1) ls命令
ls –a列出目录所有文件,包括以.开始的隐藏文件
ls –A列出除.及 ..的其他文件
ls –r反序排列
ls –t以文件修改时间排序
ls –S以文件大小排序
ls –h以一度大小显示
ls –l除了文件明个之外,还将文件的权限、所有者、文件大小等信息详细列出来

(1)按易读方式按时间范旭排序,并显示文件详细信息
ls -lhrt

(2)按大小反序显示文件详细信息
ls -lrs

(3)列出当前目录中所有以“t”开头的目录的详细内容
ls –l t*

(4)列出文件绝对路径(不包含隐藏文件)
ls | sed “s:^:’pwd’/:”

(5)列出文件绝对路径(包含隐藏文件)
find $pwd –maxdepth 1 | xargs ls –d


(2) cd命令
进入要目录                                              cd /
进入“家”目录                                           cd ~
进入上一个工作目录                               cd -
把上个命令的参数作为cd参数使用        cd !$

(3) pwd命令
查看当前路径                                         pwd
查看软连接的实际路径                          pwd -P

(4) mkdir命令
可用选项:
-m对新建目录设置存取权限,也可以用chmod命令设置
-p可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好
当前工作目录下创建名为t的文件夹
mkdir t

在tmp目录下创建理解为test/t1/t的目录,若不存在,则创建
mkdir –p /tmp/test/t1/t


(5)rm命令

删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录(如果使用rm来删除文件,通常仍可以将该文件恢复原状)
(1)删除任何.log文件;删除前逐一询问确认
rm –I *.log

(2)删除test子目录及子目录中所有档案,并且不用一一确认
rm –rf test

(3)删除以-f开头的文件
rm -- -f*


(6)find命令

find pathname –options [-print –exec –ok …] 
pathname : find命令所查找的目录路径,例如用.来表示当前系统,用/来表示系统根目录
-print : find命令将匹配的文件输出到标准输出
-exec : find命令对匹配的文件执行该参数所给出的shell命令,相应命令的形式为’command’{}
\:, 注意{}和\;之间的空格
-ok:和-exec的作用相同,只不过以一种更加安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
 
-name按照文件名查找文件
-perm按文件权限来查找文件
-user按文件属主查找文件
-group按照文件所属的组来查找文件
-type查找某一类型的文件
 
b—块设备文件
d—目录
c—字符设备文件
l—符号链接文件
p—管道文件
f—普通文件
 
-size n : [c]查找文件长度为n块文件,带有c时表文件字节大小
-anim n :查找系统中最后N分钟访问的文件
-atime n :查找系统中最后n* 24小时访问的文件
-cmin n :查找系统中最后N分钟被改变文件状态的文件
-ctime n :查找系统中最后n* 24小时被改变文件状态的文件
-mmin n :查找系统中最后N分钟被改变文件数据的文件
-mtime n :查找系统中最后n*24小时被改变文件数据的文件
(用-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件)
-maxdepth n最大查找目录深度
-prune选项来指出需要忽略的目录,在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件
(1)查找48小时内修改过的文件
fnd –atime -2

(2)在当前目录查找以.log结尾的文件。“.”代表当前目录
find ./ -name ‘*.log’

(3)查找/opt目录下权限为777的文件
fnd /opt –perm 777

(4)查找大于1k的文件
fnd –size +1000c
find –size 1000c 查找等于1000字符的文件

(5)在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)
find . –type f –mtime +10 –exec rm –f {} \;

(6)当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。按y键删除文件,按n键不删除
find . –name ‘*.log’ mtime +5 –ok –exec rm {} \;

(7)当前目录下查找文件名以password开头,内容包含“pkg”字符的文件
find . –name ‘passwd’ –exec grep “pkg” {} \;

(8)用exec选项执行cp命令
find . –name ‘*.log’ –exec cp {} test3 \;

(9)查找当前目录下每个普通文件,然后使用xargs来判断文件类型
find –type f –print | xargs file

(10)查找当前目录下所有以js结尾的并且其中包含’editor’字符的普通文件
find –type f –name “*.js” –exec grep –lf ‘ueditor’ {} \;
find –type f –name ‘*.js’ | xargs grep –lf ‘editor’

(11)利用xargs执行mv命令
find . –name “*.log” | xargs –I mv {} test4

(12)用grep命令在当前目录下的所有普通文件中搜索hostname这个词,并标出所在行
find . –name \*(转义)-type f –print | xargs grep –n ‘hostnames’

(13)查找当前目录中以一个小写字母开头,最后是4到9加上.log结束的文件
find . –name ‘[a-z’]*[4-9].log’ -print

(14)在test目录查找不在test4目录查找
find test –path ‘test3/test4’ –prune –o -print

(15)查找更改时间比文件log2012.log新但比文件log2017.log旧的文件
find –newer log2012.log ! –newer log2017.log

depth可以使find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份目录中的文件
find 命令从文件系统哦能否的跟目录开始,查找一个名为CON.FILE的文件。它将首先匹配所有的文件然后再进入自目录中查找
find / -name “CON.FILE” –depth -print

(7) grep命令
文本搜索命令
-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n –context显示匹配字符前后n行
-c –count计算符合样式的列数
-i忽略大小写
-l只列出文件内容符合指定的样式的文件名称
-f从文件中读取关键词
-n显示匹配内容的文件中行数
-R递归查找文件夹

Grep的规则表达式
^   #锚定行的开始如:’grep’匹配所有以grep开头的行
$   #锚定行的结束如:’grep$’匹配所有以grep结尾的行
.    #匹配一个非换行的字符如:’gr.p’匹配gr后接一个任意字符,然后是p
*    #匹配另个或多个先前字符如:’*grep’匹配所有一个或多个空格后紧跟grep的行
.*   #一起用代表任意字符

[]   #匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep
[^]     #匹配一个不在指定范围内的字符,如:’[^A-FH-Z]rep’匹配不包含A-F和T-Z的一个字母开头,紧跟rep的行
\(..\)   #标记匹配字符,如’\(love\)’,love被标记为1
\<      #锚定单词的开始 如’\<grep’匹配包含以grep开头的单词的行
\>      #锚定单词的开始 如’\<grep’匹配包含以grep结尾的单词的行
x\{m\}     #重复字符x, m次,如:
‘0\{5\}’匹配包含5个0的行
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],如:’G\w*p’匹配以G后跟零个或多个文字或数字字符,然后是p
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等
\b     #单词锁定符,如:’\bgrep\b’只匹配grep

(1)查找指定线程
Ps –ef | grep svn

(2)查找指定进程个数
Ps –ef | grep svn –c

(3)从文件中读取关键词
Cat test1.txt | grep –f key.log

(4)从文件中递归查找以grep开头的行,并只列出文件
Grep –IR ‘^grep’ /tmp

(5)查找非x开头的行内容
Grep ‘^[^x]’ test.txt

(6)显示包含Ed或者at字符的内容行
Grep –E ‘ed|at’ test.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: