Linux命令大全(非常具体)零基础入门到醒目,收藏这一篇就够了 ...

打印 上一主题 下一主题

主题 873|帖子 873|积分 2619

做软件开发的朋侪,相信大家或多或少都打仗过Linux,知道Linux中的命令黑白常多的,但是我们也不必因此而烦恼,因为我们只需要把握常用的命令,就可以满意我们一样寻常工作开发了。下面汇总了果冻做开发以来最常用的32个命令,分享给有需要的朋侪。

1、cd-切换当前目次

这是一个最基本,也是最常用的命令,它用于切换当前目次,它的参数是要切换到的目次的路径,可以是绝对路径,也可以是相对路径。
  1. cd /root   # 切换到目录/root
  2. cd ./path          # 切换到当前目录下的path目录中,“.”表示当前目录   
  3. cd ../path         # 切换到上层目录中的path目录中,“..”表示上一层目录  
复制代码
2、ls-检察文件与目次

这也是一个非常有效的检察文件与目次的命令,它的参数非常多,下面就列出一些常用的参数:


  • -l :列出长数据串,包含文件的属性与权限数据等
  • -a :列出全部的文件,连同隐蔽文件(开头为.的文件)一起列出来(常用)
  • -d :仅列出目次自己,而不是列出目次的文件数据
  • -h :将文件容量以较易读的方式(GB,kB等)列出来
  • -R :连同子目次的内容一起列出(递归列出),即是该目次下的所有文件都会表现出来
注:这些参数也可以组合使用
  1. ls -l   # 以长数据串的形式列出当前目录下的数据文件和目录
  2. ls -al   # 以长数据串的形式列出当前目录下的数据文件和目录及隐藏文件(常用)
  3. ls -lR  # 以长数据串的形式列出当前目录下的所有文件  
  4. ls -aR # 列出当前目录所有文件,包括子目录
  5. ls -al --block-size=m  # 查看文件大小,其中k,m,g表示单位
复制代码
相关命令:
如果想展示树形结构,可使用tree命令
  1. # 使用yum install tree命令先安装tree
  2. tree # 树形展示当前目录下所有子文件和目录,该命令不显示中文
  3. tree -N # 中文展示
  4. tree -N -L 2 # 遍历两级菜单
  5. tree /home --charset=gbk -L 2 # 设定中文编码
  6. # -a显示所有文件,-C文件与目录清单加上颜色,-L 2遍历两级菜单
  7. tree -aC -L 2
复制代码
-I 命令允许你使用正则匹配来排除掉你不想看到的文件夹。
  1. tree -I "node_modules"
  2. # 也可以使用`|`同时排除掉多个文件夹
  3. # 最后一个使用到正则匹配,这样以`test_`开头的文件夹都不会被显示出来。
  4. tree -I "node_modules|cache|test_*"
复制代码
3、grep-分析一行内容过滤筛选

分析一行的信息,若当中有我们所需要的信息,就将该行表现出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等,下面就列出一些常用的参数:


  • -a :将binary文件以text文件的方式查找数据
  • -c :盘算找到‘查找字符串’的次数
  • -i :忽略大小写的区别,即把大小写视为相同
  • -v :反向选择,即表现出没有‘查找字符串’内容的那一行
  1. # 把ls -l的输出中包含字母file(不区分大小写)的内容输出  
  2. ls -l | grep -i file  
  3. # 取出文件/etc/passwd中包含root的行,并把找到的关键字加上颜色  
  4. grep --color=auto 'root' /etc/passwd
  5. # 当我们需要过滤多个文件时,也很管用
  6. # 查看以smart开头的目录下面以smart开头的properties配置文件是否包含kafka
  7. grep --color=auto 'kafka' smart*/smart*.properties
复制代码
4、cat-检察文本文件的内容

该命令用于检察文本文件的内容,后接要检察的文件名,通常可用管道与more和less一起使用,从而可以一页页地检察数据,下面就列出一些常用的参数:


  • -n :由 1 开始对所有输出的行数编号。
  • -b :和 -n 相似,只不外对于空缺行不编号。
  1. cat text | less # 查看text文件中的内容,这条命令也可以使用less text来代替
  2. cat /etc/redhat-release # 查看操作系统版本号
  3. cat /proc/version  # 查看操作系统版本
  4. cat /etc/os-release # 查看操作系统版本号
  5. cat /etc/*release*  # 查看操作系统版本号,这个命令比较好使
  6. # 总核数 = 物理CPU个数 X 每颗物理CPU的核数
  7. # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
  8. cat /proc/cpuinfo # 查看CPU信息
  9. # 查看物理CPU个数
  10. cat /proc/cpuinfo | grep "physical id"| sort| uniq| wc -l
  11. # 查看每个物理CPU中core的个数(即核数)
  12. cat /proc/cpuinfo | grep "cpu cores"| uniq
  13. # 查看逻辑CPU的个数
  14. cat /proc/cpuinfo | grep "processor" | wc -l
  15. # 查看CPU信息(型号)
  16. cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
  17. cat /proc/meminfo # 查看内存信息
  18. # 查看所有用户帐号的信息,包括用户名和密码
  19. # passwd文件由许多条记录组成,每条记录占一行,记录了一个用户帐号的所有信息。
  20. # 每条记录由7个字段组成,字段间用冒号“:”隔开,其格式如下:
  21. # username:password:User ID:Group ID:comment:home directory:shell
  22. cat /etc/passwd
  23. cat /etc/resolv.conf # 查看DNS
  24. # 过滤有error的行,并输出行号
  25. cat -n app.log | grep 'error'
  26. # 清空 /etc/test.txt 文档内容
  27. cat /dev/null > /etc/test.txt
复制代码
5、tail/tailf-从尾部检察文本文件的内容

用于从文件尾部检察文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日记文件。tail -f filename 会把 filename 文件里的最尾部的内容表如今屏幕上,而且不断刷新,只要 filename 更新就可以看到最新的文件内容。
常用参数如下:


  • -f:循环读取
  • -c<数目>:表现的字节数
  • -n<行数>:表现文件的尾部 n 行内容
  1. # 查看文件的后10行
  2. tail -10 /etc/passwd 或 tail -n 10 /etc/passwd
  3. # 不停地去读/var/log/messages文件最新的内容,这样有实时监视的效果,用Ctrl+c来终止!
  4. tail -f /var/log/messages
  5. # 显示文件 notes.log 的内容,从第 20 行至文件末尾:
  6. tail +20 notes.log
  7. # 显示文件 notes.log 的最后 10 个字符:
  8. tail -c 10 notes.log
复制代码
tailf 等同于tail -f -n 10,与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别得当那些便携机上跟踪日记文件,因为它减少了磁盘访问,可以省电。
6、find-查找文件

一个查找文件的命令,相对而言,它的使用也相对较为复杂,参数也比较多,所以在这里将给把它们分类列出。
  1. # 命令格式
  2. find [PATH] [option] [action]  
  3. # 与时间有关的参数:  
  4. -mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件
  5. -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名
  6. -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名
  7. -newer file : 列出比file还要新的文件名
  8. # 例如:  
  9. find /root -mtime 0 # 在当前root目录下查找今天之内有改动的文件  
  10. find /root -newer xxx # 在当前root目录下查找比file还要新的文件名
  11. # 与用户或用户组名有关的参数:  
  12. -user name : 列出文件所有者为name的文件  
  13. -group name : 列出文件所属用户组为name的文件  
  14. -uid n : 列出文件所有者为用户ID为n的文件  
  15. -gid n : 列出文件所属用户组为用户组ID为n的文件
  16. # 例如:  
  17. find /home/liguodong -user liguodong # 在目录/home/liguodong 中找出所有者为liguodong的文件  
  18.   
  19. # 与文件权限及名称有关的参数:  
  20. -name filename :找出文件名为filename的文件  
  21. -size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件  
  22. -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、  
  23.              目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);  
  24. -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;  
  25. -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示  
  26. -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示  
  27. # 例如:  
  28. find / -name passwd # 查找文件名为passwd的文件  
  29. find . -perm 0755 # 查找当前目录中文件权限的0755的文件, 第一个0,表示十进制  
  30. find . -size +1k # 查找当前目录中大于1KB的文件,注意c表示byte  
  31. find . -size +1024c # 查找当前目录中大于1KB的文件
复制代码
7、locate-查找文件

用于查找符合条件的文档,他会去保存文档和目次名称的数据库内,查找合乎范本样式条件的文档或目次。当我们不知道某个文件放那里了,能够通过他快速定位到文件目次,这是一条非常有效的命令。
  1. # 查找eureka-server-xxx.jar文件的位置
  2. locate 'eureka-server-xxx.jar'
  3. # 查询包含passwd的目录或文档
  4. locate passwd
复制代码
locate与find的不同:
find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。locate的速率比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
  1. locate -u
复制代码
8、cp-复制文件

该命令用于复制文件,它还可以把多个文件一次性地复制到一个目次下,它的常用参数如下:


  • -a :将文件的特性一起复制
  • -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
  • -i :若目的文件已经存在时,在覆盖时会先询问操纵的进行
  • -r :递归持续复制,用于目次的复制行为
  • -u :目的文件与源文件有差异时才会复制
  1. cp -a file1 file2  # 连同文件的所有特性把文件file1复制成文件file2  
  2. cp file1 file2 file3 dir  #把文件file1、file2、file3复制到目录dir中  
复制代码
9、scp-长途复制文件

该命令用于 Linux 之间复制文件和目次。 scp 是 linux 系统下基于 ssh 登岸进行安全的长途文件拷贝命令。scp 是加密的。
  1. # 命令格式
  2. scp [可选参数] file_source file_target
  3. scp local_file remote_username@remote_ip:remote_folder
  4. scp local_file remote_username@remote_ip:remote_file
  5. scp local_file remote_ip:remote_folder
  6. scp local_file remote_ip:remote_file  
复制代码
下面就列出一些常用的参数:


  • -p:保存原文件的修改时间,访问时间和访问权限。
  • -q: 不表现传输进度条。
  • -r: 递归复制整个目次。
  • -v:具体方式表现输出。
  1. # 从本地服务器复制到远程服务器
  2. # 复制文件
  3. scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music
  4. # 复制文件夹
  5. scp -r /home/space/music/ root@www.runoob.com:/home/root/others/
  6. # 从远程服务器复制到本地服务器
  7. # 复制文件
  8. scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
  9. # 复制文件夹
  10. scp -r www.runoob.com:/home/root/others/ /home/space/music/
复制代码
10、vim-编辑文件

该命令主要用于文本编辑,它接一个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件。vim是一个非常好用的文本编辑器,它里面有很多非常好用的命令,在这里不再多说。
  1. vim demo.txt # 编辑demo.txt文件
复制代码
11、mv-移动目次文件

该命令用于移动文件、目次或更名,move之意,它的常用参数如下:


  • -f :force逼迫的意思,如果目的文件已经存在,不会询问而直接覆盖
  • -i :若目的文件已经存在,就会询问是否覆盖
  • -u :若目的文件已经存在,且比目的文件新,才会更新
注: 该命令可以把一个文件或多个文件一次移动一个文件夹中,但是最后一个目的文件一定要是“目次”。
  1. mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中  
  2. mv file1 file2  # 把文件file1重命名为file2
  3. mv xxdir/ tempdir # 把目录xxdir下的所有文件和目录移动到temp目录下,包含xxdir目录
  4. mv xxdir/* tempdir # 把目录xxdir下的所有文件和目录移动到temp目录下,不包含xxdir目录
复制代码
12、rm-删除目次文件

该命令用于删除文件或目次,remove之意,它的常用参数如下:


  • -f :就是force的意思,忽略不存在的文件,不会出现警告消息
  • -i :互动模式,在删除前会询问用户是否操纵
  • -r :递归删除,最常用于目次删除,它是一个非常危险的参数
  1. rm -i file # 删除文件file,在删除之前会询问是否进行该操作  
  2. rm -rf dir # 强制删除目录dir中的所有文件  
复制代码
**克制rm -rf ***
  1. cd ${log_path}
  2. rm -rf *
复制代码
上面的命名,先辈入到日记目次,然后把日记都删除。看上去没有任何问题。但是,当目次不存在时,悲剧就发生了。
ps:偷偷告诉你一个小故事,我之前就犯过这种错误,不外好在是自己学习假造机上面。如果实现线上生产环境,就不是故事了,而是事故了。
上诉问题有四种方法进行规避:
第一、命令更换,在生产环境把rm -rf 命令更换为mv,再写个定时shell定期清理。模拟了回收站的功能。
第二、收拢权限,帐号权限的分离,线上分配work帐号,只能够删除/home/work/logs/目次,无法删除根目次。大公司一般线上权限管理比较规范,小公司就未必了,搞不好所有的小搭档都有权限在线上乱搞。
第三、使用&& ,可以通过“&&”,将
  1. cd ${log_path}
  2. rm -rf *
复制代码
归并成一个语句
  1. cd ${log_path} && rm -rf *
复制代码
当前半句执行失败的时间,后半句不再执行。
第四、判断目次是否存在,制定编码规范,对目次进行操纵之前,要先判断目次是否存在。靠人的自发来包管规范的执行,总感觉有些不太靠谱。当然,规范是有必要的。
13、ln-连接

这是一个非常重要命令,它的功能是为某一个文件在另外一个位置创建一个同步的链接。当我们需要在不同的目次,用到相同的文件时,我们不需要在每一个需要的目次下都放一个必须相同的文件,我们只要在某个固定的目次,放上该文件,然后在其它的目次下用ln命令链接它就可以,不必重复的占用磁盘空间。
而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特别的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
它的常用参数如下:


  • -f : 链接时先将与 dist 同档名的档案删除
  • -i : 在删除与 dist 同档名的档案时先辈行询问
  • -n : 在进行软链接时,将 dist 视为一般的档案
  • -s : 进行软链接(symbolic link)
  • -v : 在连结之前表现其档名
  • -b : 将在链接时会被覆写或删除的档案进行备份
  1. # 创建软链接在/usr/bin/目录下freeswitch文件,
  2. # 如果 /usr/local/freeswitch/bin/freeswitch丢失,/usr/bin/freeswitch将失效
  3. ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
  4. # 删除软链接,和删除普通的文件是一眼的,删除都是使用rm来进行操作
  5. rm -rf 软链接名称
  6. # 下面我们来创建test_chk目录的软链接
  7. ln -s test_chk test_chk_ln
  8. #软链接创建好了,我们来看看怎么删除它
  9. # 正确的删除方式(删除软链接,但不删除实际数据)
  10. rm -rf  ./test_chk_ln
  11. # 错误的删除方式
  12. rm -rf ./test_chk_ln/ (这样就会把原来test_chk下的内容删除)
复制代码
软链接与硬链接的区别:
软链接:


  • 软链接,以路径的情势存在。类似于Windows操纵系统中的快捷方式
  • 软链接可以 跨文件系统 ,硬链接不可以
  • 软链接可以对一个不存在的文件名进行链接
  • 软链接可以对目次进行链接
硬链接:


  • 硬链接,以文件副本的情势存在。但不占用实际空间。
  • 不允许给目次创建硬链接
  • 硬链接只有在同一个文件系统中才能创建
14、chmod-修改文件权限

chmod用于管理文件或目次的权限,文件或目次权限的控制分别以读取®、写入(w)、执行(x)3种,一般的用法如下:
  1. chmod [-R] abc 文件或目录  
复制代码
参数阐明如下:


  • -R:进行递归的持续更改,即连同子目次下的所有文件都会更改
  • abc : a,b,c各为一个数字,分别表现User、Group、及Other的权限。
该命令有两种用法。一种是包含字母和操纵符表达式的笔墨设定法;


  • u 表现该文件的拥有者,g 表现与该文件的拥有者属于同一个群体(group)者,o 表现其他以外的人,a 表现这三者皆是。


    • 表现增长权限、- 表现取消权限、= 表现唯一设定权限。

  • r 表现可读取,w 表现可写入,x 表现可执行,X 表现只有当该文件是个子目次或者该文件已经被设定过为可执行。
另一种是包含数字的数字设定法。其中4表现读,2表现写,1表现可执行,因此7表现读写可执行,5表现读可执行
  1. chmod g+w file # 向file的文件权限中加入用户组可写权限
  2. # 文件 file1.txt 设为所有人皆可读取 :
  3. chmod ugo+r file1.txt
  4. chmod 755 file # 把file的文件权限改变为-rxwr-xr-x
  5. chmod a=rwx file  等价于 chmod 777 file
  6. chmod ug=rwx,o=x file 等价于 chmod 771 file
复制代码
15、chgrp-修改文件所属用户组

该命令用于改变文件所属用户组,它的使用非常简单,它的基本用法如下:
  1. chgrp [-R] dirname/filename  
复制代码
参数阐明如下:


  • -R :进行递归的持续对所有文件和子目次更改
  1. # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users  
  2. chgrp users -R ./dir
复制代码
16、chown-修改文件所属用户、用户组

该命令用于改变文件的所有者,与chgrp命令的使用方法相同,只是修改的文件属性不同
  1. # 将文件 file1.txt 的拥有者设为 runoob,用户组组 runoobgroup :
  2. chown runoob:runoobgroup file1.txt
  3. # 将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
  4. chown -R runoob:runoobgroup *
复制代码
17、sz/rz-文件上传下载

这是Linux/Unix同Windows进行ZModem文件传输的命令行工具。windows端需要支持ZModem的telnet/ssh客户端(好比SecureCRT、XShell)
sz:将选定的文件发送到当地呆板
rz:运行该命令会弹出一个文件选择窗口,从当地选择文件上传到Linux服务器
  1. # 安装
  2. yum install lrzsz
  3. # 从本地上传文件到服务器:
  4. rz
  5. # 从服务器下载一个文件到本地:
  6. sz filename
  7. # 从服务器下载多个文件到本地:
  8. sz filename1 filename2
  9. ### 下载dir目录下的所有文件,不包含dir下的文件夹:
  10. # sz dir/*
复制代码
18、yum-包安装卸载

Linux包管理器 ,办理依赖问题,方便快捷
  1. yum install <package_name> -y  # 安装包
  2. yum search <package_name> # 搜索包名
  3. yum search all  # 查询所有
  4. yum remove <package_name> -y  # 删除包(不建议用,yum可以解决依赖问题,删除会删除所有包依赖)
  5. yum update # 安装所有软件到最新版本
复制代码
19、curl-与服务器之间传输数据

curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;curl提供了一大堆非常有效的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传等。
  1. # 下载页面
  2. curl -o index.html http://aiezu.com
  3. # 下载并显示进度条
  4. curl -# -o centos6.8.iso http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS.iso
  5. # 继续完成上次终止的未完成的下载
  6. curl -# -o centos6.8.iso -C - http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS.iso
  7. # 访问一个网页
  8. curl https://www.baidu.com
  9. # http请求,带上用户名和密码
  10. curl -u xxx:xxx http://10.250.xxx.xxx:5400/xxx/health
  11. # http post请求
  12. curl http://xxx.xxx.xxx/shorturl -X POST -d '{"originalUrl":"xxx",
  13. "expire":7776000,
  14. "app":"xxx"
  15. }' --header "Content-Type: application/json"
复制代码
20、wget-文件下载

一个下载文件的工具,,我们经常要下载一些软件或从长途服务器恢复备份到当地服务器。wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。
  1. # 使用wget下载单个文件
  2. wget http://www.linuxde.net/testfile.zip
  3. # 下载并以不同的文件名保存
  4. wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080
  5. # 使用wget断点续传
  6. wget -c http://www.linuxde.net/testfile.zip
  7. # wget限速下载
  8. wget --limit-rate=300k http://www.linuxde.net/testfile.zip
复制代码
21、ps-检察进程运行环境

该命令用于将某个时间点的进程运行环境选取下来并输出,它的常用参数如下:


  • -a : 表现除控制进程与无端进程外的所有进程
  • -d :表现除控制进程外的所有进程
  • -e :表现所有进程
  • -g :表现会话或组ID在grplist列表中的进程
  • -p :表现PID在pidlist列表中的进程
  • -s :表现会话ID在sesslist列表中的进程
  • -t :表现终端ID在ttylist列表中的进程
  • -u :表现有效用户ID在userlist列表中的进程
  • -x :以用户为中心组织进程状态信息表现
  • -M :表现进程的安全信息
  • -f :表现完整格式的输出
  • -j :表现使命信息
  • -l :表现长列表
  • -o :仅表现由format指定的列
  • -y :不要表现进程标记
  • -L :表现进程中的线程
其实我们只要记着ps一般使用的命令参数搭配即可,它们并不多,如下:
  1. ps aux # 查看系统所有的进程数据  
  2. ps ax # 查看不与终端(terminal)有关的所有进程  
  3. ps -lA # 查看系统所有的进程数据  
  4. ps axjf # 查看连同一部分进程树状态
  5. ps –ef # 显示所有信息,连同命令行
  6. ps -ef | grep xxx # 过滤池包含xxx的行
复制代码
22、top-检察系统的整体运行环境

实时动态地检察系统的整体运行环境,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。它的常用参数如下:


  • -b:以批处理惩罚模式操纵;
  • -c:表现完整的命令;
  • -i <时间>:设置间隔时间;
  • -u <用户名>:指定用户名;
  • -p <进程号>:指定进程;
  • -n <次数>:循环表现的次数。
top交互命令如下:


  • h:表现帮助画面,给出一些简短的命令总结阐明;
  • k:停止一个进程;
  • i:忽略闲置和僵死进程,这是一个开关式命令;
  • q:退出步伐;
  • r:重新安排一个进程的优先级别;
  • S:切换到累计模式;
  • s:改变两次刷新之间的延迟时间(单元为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
  • f或者F:从当前表现中添加或者删除项目;
  • o或者O:改变表现项目的顺序;
  • l:切换表现平均负载和启动时间信息;
  • m:切换表现内存信息;
  • t:切换表现进程和CPU状态信息;
  • c:切换表现命令名称和完整命令行;
  • M:根据驻留内存大小进行排序;
  • P:根据CPU使用百分比大小进行排序;
  • T:根据时间/累计时间进行排序;w:将当前设置写入~/.toprc文件中。
  1. top  # 显示系统中进程的资源占用状况
  2. top -c # 显示系统中进程的资源占用状况,并显示完整的命令
  3. top -u xxx  # 查看xxx用户的进程的资源占用状况
复制代码
相关命令:iotop、htop
23、kill-根据进程ID杀死进程

该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用,它的基本语法如下:
  1. kill -signal PID  
复制代码
signal的常用参数如下:


  • 1:SIGHUP,启动被停止的进程
  • 2:SIGINT,相称于输入ctrl+c,停止一个步伐的进行
  • 9:SIGKILL,逼迫停止一个进程的进行
  • 15:SIGTERM,以正常的结束进程方式来停止进程
  • 17:SIGSTOP,相称于输入ctrl+z,停息一个进程的进行
注: 最前面的数字为信号的代号,使用时可以用代号代替相应的信号。
  1. # 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程  
  2. kill -SIGTERM %1   
  3. # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得  
  4. kill -SIGHUP PID
  5. # 强制杀死进程号为1112的进程
  6. kill -9 1112
复制代码
kill -15 PID和kill -9 PID的区别
kill -9 PID 是操纵系统从内核级别逼迫杀死一个进程。
kill -15 PID 可以理解为操纵系统发送一个关照告诉应用自动关闭。效果是正常退出进程,退出前可以被阻塞或回调处理惩罚。而且它是Linux缺省的步伐停止信号。
尽量使用kill -15 PID而不要使用kill -9 PID。
kill -9 PID没有给进程留下善后的时机:

  • 关闭socket链接
  • 清理暂时文件
  • 将自己将要被销毁的消息关照给子进程
  • 重置自己的停止状态
一些磁盘操纵多的步伐更是不要使用kill -9 PID,会导致数据的丢失,如ES,kafka等。
批量杀死进程(ps/grep/awk/kill)

  1. ps aux|grep server|grep -v grep | awk '{print $2}'|xargs kill -9
复制代码
阐明:
管道符”|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
awk的作用是输出某一列,{print $2}就是输出第二列,如上即是pid这一列。
“xargs kill -9” 中的 xargs 命令是用来把前面命令的输出效果作为”kill -9″命令的参数,并执行该命令。”kill -9″会强行杀掉指定进程。
24、killall-杀死指定名字的进程

用于杀死指定名字的进程,向一个命令启动的进程发送一个信号,它的一般语法如下:
  1. killall [-iIe] [command name]  
复制代码
它的参数如下:


  • -i :交互式的意思,若需要删除时,会询问用户
  • -e :表现后面接的command name要一致,但command name不能超过15个字符
  • -I :命令名称忽略大小写
  1. killall -SIGHUP syslogd # 重新启动syslogd  
复制代码
25、file-辨识文件范例

该命令用于辨识文件范例,因为在Linux下文件的范例并不是以后缀为分的,所以这个命令对我们来说就很有效了,它的用法非常简单,基本语法如下:
  1. file filename
复制代码
检察test文件格式:
  1. file ./test  
复制代码
26、tar-对文件压缩解压缩

该命令用于对文件进行打包,默认环境并不会压缩,如果指定了相应的参数,它还会调用相应的压缩步伐(如gzip和bzip等)进行压缩和解压。它的常用参数如下:


  • -c :新建打包文件
  • -t :检察打包文件的内容含有哪些文件名
  • -x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目次
  • -j :通过bzip2的支持进行压缩/解压缩
  • -z :通过gzip的支持进行压缩/解压缩
  • -v :在压缩/解压缩过程中,将正在处理惩罚的文件名表现出来
  • -f filename :filename为要处理惩罚的文件
  • -C dir :指定压缩/解压缩的目次dir
留意:-c,-t,-x不能同时出如今同一条命令中
通常我们只需要记着下面几条命令即可:
  1. # 压缩
  2. tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称  
  3. # 查询
  4. tar -jtv -f filename.tar.bz2  
  5. # 解压
  6. tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录  
  7. # 注:上面文件名并不定要以后缀tar.bz2结尾,这里主要是为了说明使用的压缩程序为bzip2
  8. # 解压elasticsearch-5.5.2.tar.gz
  9. tar -zxvf elasticsearch-5.5.2.tar.gz
复制代码
27、zip/unzip/gzip/gunzip-对文件压缩解压缩

用于压缩、解压缩文件,zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz,相应的解压缩命令则是 gunzip 和 unzip。
  1. # 将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
  2. zip -q -r html.zip /home/html
  3. zip -r MiniGPT-4.zip ./MiniGPT-4/
  4. # 如果在我们在 /home/html 目录下,可以执行以下命令:
  5. zip -q -r html.zip *
  6. # 从压缩文件 cp.zip 中删除文件 a.c
  7. zip -dv cp.zip a.c
  8. # 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件
  9. zip -r myfile.zip ./*
  10. # 把myfile.zip文件解压到 /home/bunny/
  11. # -o:不提示的情况下覆盖文件
  12. # -d:-d /home/bunny 指明将文件解压缩到/home/bunny目录下
  13. unzip -o -d /home/bunny myfile.zip
  14. # 它会将文件压缩为文件 test.txt.gz,原来的文件则没有了,解压缩也一样
  15. gzip test.txt
  16. # 它会将文件解压缩为文件 test.txt,原来的文件则没有了,为了保留原有的文件,
  17. # 我们可以加上 -c 选项并利用 linux 的重定向
  18. gunzip test.txt.gz
  19. # 这样不但可以将原有的文件保留,而且可以将压缩包放到任何目录中,解压缩也一样
  20. gzip -c test.txt > /root/test.gz
  21. # 解压缩
  22. gunzip -c /root/test.gz > ./test.txt
复制代码
28、adduser/useradd/userdel-增长删除用户

adduser/useradd为创建用户命令,使用权限:系统管理员,root用户。常用参数阐明如下


  • -c comment:加上备注笔墨。备注笔墨会保存在通常是 /etc/passwd)的备注栏位中。
  • -d home_dir:设定使用者的根目次为 home_dir ,预设值为预设的 home 后面加上使用者帐号
  • -e expire_date:设定此帐号的使用期限(格式为 YYYY-MM-DD),预设值为永世有效
  • -f inactive_time:帐号逾期几日后永世停权。当值为0时帐号则立即被停权。而当值为-1时则关闭此功能,预设值为-1
  • -g <群组>:指定用户所属的群组。
  • -r :创建一个系统的帐号,这个帐号的 UID 会有限制 (/etc/login.defs)
  1. # 添加一个一般用户
  2. useradd kk # 添加用户kk
  3. # 为添加的用户指定相应的用户组
  4. useradd -g root kk # 添加用户kk,并指定用户所在的组为root用户组
  5. # 创建一个系统用户
  6. useradd -r kk # 创建一个系统用户kk
  7. # 为新添加的用户指定/home目录
  8. useradd -d /home/myf kk //新添加用户kk,其home目录为/home/myf
  9. # 当用户名kk登录主机时,系统进入的默认目录为/home/myf
复制代码
用户删除命令:userdel,语法如下:
  1. userdel [login ID]
复制代码
删除用户kk:
  1. userdel kk
复制代码
29、passwd-修改用户密码

更改使用者的密码,常用参数如下:


  • -d:删除密码
  • -l:克制账号使用
  • -S:表现密码信息
  • -u:启用已被克制的账户
  • -x:设置密码的有效期
  • -g:修改群组密码
  • -i:逾期后克制用户账号
  1. # 修改用户密码
  2. passwd runoob  # 设置runoob用户的密码
  3. # 显示账号密码信息
  4. passwd -S runoob
  5. # 删除用户密码
  6. passwd -d lx138
复制代码
30、time-测算一个命令的执行时间

该命令用于测算一个命令的执行时间。就像寻常输入命令一样,不外在命令的前面加入一个time即可。
在步伐或命令运行结束后,在最后输出了三个时间,它们分别是:


  • user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;
  • system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;
  • real:实际时间,从command命令行开始执行到运行停止的消逝时间;
  1. time ./process.sh # 查看process.sh脚本执行时间
  2. time ps aux # 查看ps aux命令的执行时间
复制代码
31、free-表现内存的使用环境

表现内存的使用环境,包括实体内存,假造的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参数阐明


  • -b:以Byte为单元表现内存使用环境。
  • -k:以KB为单元表现内存使用环境。
  • -m :以MB为单元表现内存使用环境。
  • -g :以GB为单元表现内存使用环境。
  • -o :不表现缓冲区调治列。
  • -s <间隔秒数>:持续观察内存使用状况。
  • -t:表现内存总和列。
  1. # 显示内存使用情况
  2. free # 显示内存使用信息
  3. # 以总和的形式显示内存的使用信息
  4. free -gt # 以总和的形式查询内存的使用信息,以GB为单位
  5. # 周期性的查询内存使用信息
  6. free -g -s 10 # 每10s执行一次命令,以GB为单位
复制代码
32、crontab-定时使命

用来定时的去跑一些脚本或者步伐,linux内置的cron进程能帮我们实现这些需求,精确到分,设计秒的我们一般自己写脚本。
相关配置文件阐明:


  • /var/spool/cron/目次下存放的是每个用户包括root的crontab使命,每个使命以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护使命。
  • /etc/cron.d/ 这个目次用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目次中,让它每小时/天/星期、月执行一次。
常用参数阐明:


  • -u :省略该参数,表现操纵当前用户的crontab
  • -e:编辑某个用户的crontab文件内容。如果不指定用户,则表现编辑当前用户的crontab文件。
  • -l:表现某个用户的crontab文件内容,如果不指定用户,则表现表现当前用户的crontab文件内容。
  • -r:从/var/spool/cron目次中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
  • -i:在删除用户的crontab文件时给确认提示
留意:-r,-i尽量不要执行
常见操纵命令如下:
  1. crontab -e  # 编辑定时任务
  2. * * * * * sh /opt/lampp/test.sh   # 每分钟执行一次test.sh,crontab使用
  3. crontab -l  # 查看定时任务
  4. * * * * * sh /opt/lampp/test.sh
  5. # 重启定时任务进程crond
  6. service crond reload
  7. # 查看日志
  8. # /var/log/cron只会记录是否执行了某些计划的脚本
  9. sudo tail -100f /var/log/cron
复制代码
定时使命配置实比方下:
  1. # Example of job definition:
  2. # .---------------- minute (0 - 59)
  3. # |  .------------- hour (0 - 23)
  4. # |  |  .---------- day of month (1 - 31)
  5. # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
  6. # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  7. # |  |  |  |  |
  8. # *  *  *  *  * user-name  command to be executed
  9. # 每1分钟执行一次myCommand
  10. * * * * * myCommand
  11. # 每小时的第3和第15分钟执行
  12. 3,15 * * * * myCommand
  13. # 在上午8点到11点的第3和第15分钟执行
  14. 3,15 8-11 * * * myCommand
  15. # 每隔两天的上午8点到11点的第3和第15分钟执行
  16. 3,15 8-11 */2  *  * myCommand
  17. # 每周一上午8点到11点的第3和第15分钟执行
  18. 3,15 8-11 * * 1 myCommand
  19. # 每晚的21:30重启smb
  20. 30 21 * * * /etc/init.d/smb restart
  21. # 每月1、10、22日的4 : 45重启smb
  22. 45 4 1,10,22 * * /etc/init.d/smb restart
  23. # 每周六、周日的1 : 10重启smb
  24. 10 1 * * 6,0 /etc/init.d/smb restart
  25. # 每天18 : 00至23 : 00之间每隔30分钟重启smb
  26. 0,30 18-23 * * * /etc/init.d/smb restart
  27. # 每星期六的晚上11 : 00 pm重启smb
  28. 0 23 * * 6 /etc/init.d/smb restart
  29. # 每一小时重启smb
  30. * */1 * * * /etc/init.d/smb restart
  31. # 晚上11点到早上7点之间,每隔一小时重启smb
  32. * 23-7/1 * * * /etc/init.d/smb restart
复制代码
好了,这是果冻花了2天业余时间整理的一样寻常工作中常用的命令,希望能够对你有帮忙。如果以为还不错,希望能得到你的一个赞。
题外话

黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、毛病详解、盘算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能逐一展开,统共300多集)
因篇幅有限,仅展示部分资料,领取方法如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表