运维人必会:Linux常用命令大全

cd命令

切换目录:

> cd ../  #切换到父级目录
> cd /tmp # 切换到/tmp目录
> cd ~    # 切换到当前用户的家目录

ls命令

查看文件与目录的命令,list 的缩写:

> ls -l  #列出长数据串,包含文件的属性与权限数据等> ls -a  #列出隐藏文件
> ls -d  # 列出目录本身,而不是列出目录的文件数据> ls -lh # 将文件容量以较易读的方式(GB,kB等)列出来
> ls -lR  #连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

grep命令

文本查找:

>grep -a #将binary文件以text文件的方式查找数据
>grep -c #计算找到查找字符串的次数
>grep -i #忽略大小写的区别,即把大小写视为相同
>grep -v #反向选择,即显示出没有‘查找字符串’内容的那一行
>grep -rl#递归查询目录下的匹配文件

find命令

拥有强大的查找功能:

> find / -name *.txt  #查找系统中所有的.txt文件
> find / -size +300M. #查找系统中文件大小超过300M的文件
> find . -perm 0755 # 查找当前目录中文件权限的0755的文件
> find / -user rumenz #列出文件所有者为rumenz的文件
> find / -group rumenz #列出文件所属用户组为name的文件
> find / -size +300M -exec rm -rf {} \; #查找系统中大于300M的文件,并删除

cp命令

文件复制:

>cp -a #将文件的特性一起复制
>cp -p #连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
>cp -i #若目标文件已经存在时,在覆盖时会先询问操作的进行
>cp -r #递归持续复制,用于目录的复制行为
>cp -u #目标文件与源文件有差异时才会复制
>cp -rf #文件强制覆盖复制

mv命令

用于移动文件:

>mv -f  #force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
>mv -i  #若目标文件已经存在,就会询问是否覆盖
>mv -u  #若目标文件已经存在,且比目标文件新,才会更新
>mv -rf #强制递归复制文件

rm命令

删除文件或目录:

>rm -f #就是force的意思,忽略不存在的文件,不会出现警告消息
>rm -i #互动模式,在删除前会询问用户是否操作
>rm -r #递归删除,最常用于目录删除,它是一个非常危险的参数
>rm -rf / #这是一个危险的命令,会造成系统所有文件丢失>rm -rf rumenz/* #强制删除rumenz目录下的非隐藏文件
>rm -rf rumenz/* #强制删除rumenz目录下的所有文件,包含隐藏文件

ps命令

查看进程:

>ps aux  # 查看系统所有的进程数据
>ps ax   # 查看不与terminal有关的所有进程
>ps -lA  # 查看系统所有的进程数据
>ps axjf # 查看连同一部分进程树状态

kill命令

用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号:

>kill -signal PID

signal的常用参数如下:

1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
3:SIGKILL,强制中断一个进程的进行
4:SIGTERM,以正常的结束进程方式来终止进程
5:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行

killall命令

用于向一个命令启动的进程发送一个信号:

>killall -9 nginx #直接结束nginx进程

小技巧:killall后面直接跟上进程名就可以,不用像kill那样,需要先找到进程pid。

file命令

该命令用于判断接在file命令后的文件的基本数据,因为在Linux下文件的类型并不是以后缀为分的,所以这个命令对我们来说就很有用了。

> file rumenz.txt  #查看rumenz.txt的文件类型
rumenz.txt: ASCII text

> file /usr/bin/ls #查看命令ls的文件类型
/usr/bin/ls: ELF 64-bit LSB executable

> file -i rumenz.txt  #查看文件rumenz.txt的MiME类型
rumenz.txt: text/plain; charset=us-ascii

> file -z redis-5.0.8.tar.gz #尝试去解读压缩文件的内容
redis-5.0.8.tar.gz: POSIX tar archive

tar命令

该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。

-c 新建tar包,create的缩写

-t 查看打包(tar)文件的文件

-x 解tar包或者解压缩(tar.gz),可以搭配-C(大写)指定解压的目录,extract的缩写

-j 通过bzip2压缩或者解压

-J 通过xz压缩或者解压

-z 通过gzip压缩或者解压

-v 显示执行过程。verbose的缩写

-f filename :filename为要处理的文件

-C 指定压缩,解压的目录
--- tar

> tar -cvf rumenz.tar rumenz.txt. #将rumenz.txt打包成rumenz.tar,默认不压缩

> tar -xvf rumenz.tar             #解包到当前目录

> tar -xvf rumenz.tar -C /tmp     #解包到tmp目录
--- tar.gz

> tar -czvf rumenz.tar.gz  rumenz.txt #将rumenz.txt压缩成rumenz.tar.gz

> tar -xzvf rumenz.tar.gz             #解压rumenz.tar.gz到当前目录

> tar -xzvf rumenz.tar.gz -C /tmp     #解压rumenz.tar.gz到tmp目录

> tar -xzvf rumenz.tar.gz rumenz.txt  #只解压rumenz.txt文件
--- tar.bz2

> tar -cjvf rumenz.tar.bz2  rumenz.txt #将rumenz.txt压缩成rumenz.tar.bz2

> tar -xjvf rumenz.tar.bz2             #解压rumenz.tar.bz2到当前目录

> tar -xjvf rumenz.tar.bz2 -C /tmp     #解压rumenz.tar.bz2到tmp目录

> tar -xjvf rumenz.tar.bz2 rumenz.txt  #只解压rumenz.txt文件

---tar.xz

> tar -cJvf rumenz.tar.xz   rumenz.txt #将rumenz.txt压缩成rumenz.tar.xz

> tar -xJvf rumenz.tar.xz              #将rumenz.tar.xz解压到当前目录

> tar -xJvf ruemnz.tar.gz -C /tmp      #将rumenz.tar.xz解压到tmp目录

> tar -xJvf rumenz.tar.xz rumenz.txt  #只解压rumenz.txt文件

cat命令

该命令用于查看文本文件的内容,后面跟上要查看的文件名,通常会和more和less一起使用。

> cat rumenz.txt  #查看rumenz.txt的文件内容

> cat rumenz.txt | more #文件内容较多时,可以通过more分页查看

利用cat向文件中添加内容 cat > :

> cat > rumenz.sh << EOF

> 123

> 345

> rumenz.com

> EOF

EOF是end of file的意思,利用cat向文件中追加内容 cat >>:

> cat >> rumenz.sh << EOF

> 111

> 222

> EOF

chgrp命令

该命令用于改变文件所属用户组:

> chgrp rumenz rumenz.txt     #将rumenz.txt文件的所属组改成rumenz

> chgrp rumenz -R ./tmp       #递归的把tmp目录下所有文件(包含目录)的所属组改成rumenz

chown命令

修改文件的所有者和所属组:

> chown rumenz:rumenz rumenz.txt #将rumenz.txt的所有者和所属组改成rumenz,rumenz

> chown -R rumenz:rumenz rumenz/ #将rumenz目录下所有的文件(包括目录)的所有者和所属组改成rumenz,rumenz

> chown rumenz rumenz.txt      #将rumenz.txt的所有者改成rumenz

> chown :rumenz rumenz.txt     #将rumenz.txt的所属组改成rumenz

chmod命令

命令用于改变文件的权限,chmod可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改。

数字权限分为三种:读(r=4),写(w=2),执行(x=1):

> chmod a+r rumenz.txt    #给rumenz.txt的所有用户增加读权限

> chmod a-x rumenz.txt    #删除rumenz.txt的所有用户的执行权限

> chmod a+rw rumenz.txt   #给rumenz.txt的所有用户增加读写权限

> chmod +rwx rumenz.txt   #给rumenz.txt的所有用户增加读写执行权限

> chmod +x rumenz.sh      #给rumenz.sh增加可执行权限

> chmod -R a+r rumenz/    #给rumenz目录下所有文件(包含目录)增加读权限

> chmod -R a-x rumenz/    #删除rumenz目录下所有文件(包含目录)的执行权限

> chmod 755 rumenz.txt     #相当于u=rwx (4+2+1),go=rx (4+1 & 4+1)

> chmod u=rwx,go=rx rumenz.txt #和上一条等价

vim命令

i 插入到光标前面

I 插入到行的开始位置

a 插入到光标的后面

A 插入到行的最后位置

o, O 新开一行

Esc 关闭插入模式

:w 保存

:wq, :x 保存并关闭

:q 关闭(已保存)

:q! 强制关闭

/string 搜索string字符串,如果要忽略大小写set ic

n 搜索指定字符串出现的下一个位置

:%s/old/new/g 全文替换指定字符串old--->new

:n1,n2s/old/new/g 在一定范围内替换,n1,n2表示行数

dd 删除一行

dw 删除一个单词

x 删除后一个字符

X 删除前一个字符

D 删除一行最后一个字符

[N]yy 复制一行或者N行

yw 复制一个单词

p 粘贴

top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。输入top命令后常用的快捷键如下:d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

p 通过指定监控进程ID来仅仅监控某个进程的状态。

q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

S 指定累计模式。

s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

i 使top不显示任何闲置或者僵死进程。

c 显示整个命令行而不只是显示命令名。

m 切换显示内存信息。

t 切换显示进程和CPU状态信息。

c 切换显示命令名称和完整命令行。

M 根据驻留内存大小进行排序。

P 根据CPU使用百分比大小进行排序。

T 根据时间/累计时间进行排序。

q 退出程序。
> top -p pid  # 显示指定的进程信息

> top -Hp pid # 显示pid进程下的所有线程的资源使用情况

time命令

测算一个命令(即程序)的执行时间:

> time ls #统计ls的执行时间
real    0m0.004s

user    0m0.001s

sys     0m0.001s
© 版权声明
THE END