Linux系统中常用的命令汇总

  日常开发,上线的服务器系统一般都是Linux系统,所以,熟练的掌握常用的命令操作就尤其的重要了

 

1) 查看某个服务的运行情况 (例如Redis)

ps -ef | grep redis   //e-显示程序使用的环境变量 f-显示UID,PPIP,C与STIME栏位

  

2) 查看某个端口是否在监听

netstat -lntp | grep 6379

  

//查看监听的端口的程序
netstat -anp | grep 9501

  

3)查看linux占用内存/CPU最多的进程

 

可以使用一下命令查使用内存最多的10个进程     
ps -aux | sort -k4nr | head -n 10
 

可以使用一下命令查使用CPU最多的10个进程     
ps -aux | sort -k3nr | head -n 10

参数说明:
  sort
    -k: 进行排序的栏位
    4/3 对应的栏位位置
    -n: 按照数值大小排序
    -r: 反向排序

   动态的查看进程: 用top命令指定固定的PID

top -p 32199
使用了top期间,支持命令,
  h ==》 会显示如何使用的帮助
  M ==〉 通过内存占用率大小进行排序
  P ==》 按照CPU使用率进行大小排序

默认只是显示部分的进程数据, 如果想要查看全部的进程信息, 可以将信息重定向到文件中
top -n -b 1 -d 3 >> file.txt
  参数:
    

-b :batch模式,可以重定向到文件中


-n 1:一共取1次top数据。后边加数字,表示次数


-d 3:每次top时间间隔是3秒钟

-c : 不仅仅显示进程名称, 而是显示完整执行命令 

 

  查看更详细的内存占比

cat /proc/10997/status


Name:    java
State:    S (sleeping)
Tgid:    10997
Ngid:    0
Pid:    10997
PPid:    1959
TracerPid:    0
Uid:    1000    1000    1000    1000
Gid:    1000    1000    1000    1000
FDSize:    256
Groups:    4 24 27 30 46 113 128 130 132 134 1000 1002 
NStgid:    10997
NSpid:    10997
NSpgid:    10987
NSsid:    10914
VmPeak:    11522940 kB
VmSize:    11522940 kB
VmLck:           0 kB
VmPin:           0 kB
VmHWM:       65176 kB
VmRSS:       65176 kB
VmData:    11462972 kB
VmStk:         140 kB
VmExe:           4 kB
VmLib:       17064 kB
VmPTE:         460 kB
VmPMD:          28 kB
VmSwap:           0 kB
HugetlbPages:           0 kB
Threads:    25
SigQ:    0/128292
SigPnd:    0000000000000000
ShdPnd:    0000000000000000
SigBlk:    0000000000000000
SigIgn:    0000000000000003
SigCgt:    2000000181005ccc
CapInh:    0000000000000000
CapPrm:    0000000000000000
CapEff:    0000000000000000
CapBnd:    0000003fffffffff
CapAmb:    0000000000000000
Seccomp:    0
Cpus_allowed:    ff
Cpus_allowed_list:    0-7
Mems_allowed:    00000000,00000001
Mems_allowed_list:    0
voluntary_ctxt_switches:    86
nonvoluntary_ctxt_switches:    2

  VmRSS为内存

 

 

Redis


 

(1) 开启客户端连接Redis

redis-cli

  

(2) 退出客户端的连接

redis-cli shutdown

  或

kill -9 PID

  

(3)常用启动/停止/重启

./etc/init.d/redis-server start

./etc/init.d/redis-server stop

./etc/init.d/redis-server restart

 

MySQL

 


 

 查看MySQL的运行状态

/etc/rc.d/init.d/mysqld status  

  

 

频繁使用

 


 

1. 计算某个文件大小

1) du -h 文件
2) ls -hl 文件

  

2. 重启网卡服务

service network restart

  

3. 相关服务重启

/etc/init.d/redis restart 

  

4. 查看磁盘信息

df -h //以kb显示(常用)  默认使用b显示

  

5. 关机,重启

init 0 //关机

init 6 //友好重启

reboot //出状况或强制重启

  

6. 软连接

ln -s 源文件 目标文件

  

7.查找某个命令或文件

find / -name 文件名称   // find的方式进行查找

whereis  文件名称  //使用whereis方式进行查找

which   文件名称    // 使用which的方式进行查找

locate  文件名称    //使用locate的方式进行查找

 8. 常见统计

wc -l  文件名称  // 统计行数

wc -c 文件名称 // 统计字节数

wc -w 文件名称 // 统计字数

//以上命令可以同时组合使用,例如:
wc -lwc file1 file2
  872526  5390372 92673673 14.sql
     744     3711    35936 15.sql
  873270  5394083 92709609 total

 9. 文件排序

1. 按照文件大小排序

ls -lSh
total 89M
   0 -rw-r--r-- 1 Administrator 197121    0 8月  31 17:44 14
 89M -rw-r--r-- 1 Administrator 197121  89M 8月  31 16:13 14.sql
 36K -rw-r--r-- 1 Administrator 197121  36K 8月  31 16:13 15.sql
 20K -rw-r--r-- 1 Administrator 197121  17K 8月  31 16:14 17.sql
 16K -rw-r--r-- 1 Administrator 197121  15K 8月  31 16:13 16.sql
4.0K -rw-r--r-- 1 Administrator 197121 3.3K 8月  31 16:14 18.sql
解释:
    -l : 长格式显示
    -S: 排序,默认降序(注意是大写S)
    -h: 表示文件大小转成M来显示

 当然可以使用升序    -r : 升序排列

2. 按照文件修改时间排序
ls -lt
total 90580
-rw-r--r-- 1 Administrator 197121        0 8月  31 17:44 14
-rw-r--r-- 1 Administrator 197121     3342 8月  31 16:14 18.sql
-rw-r--r-- 1 Administrator 197121    17240 8月  31 16:14 17.sql
-rw-r--r-- 1 Administrator 197121    14609 8月  31 16:13 16.sql
-rw-r--r-- 1 Administrator 197121    35936 8月  31 16:13 15.sql
-rw-r--r-- 1 Administrator 197121 92673673 8月  31 16:13 14.sql
解释:
   -t:   最近的修改时间
默认是降序: 最后修改的在前面
当然也可以加上参数 -r 进行升序排序

  

 10.文件或目录统计

1. 显示目录或者文件所占空间
du

2. 显示指定文件所占空间
du filename/dirname

3. 显示多个文件所占空间
du file1 file2 file3

4. 只显示总和的大小
du -sh
-s:仅显示总计
-h:以友好的单位显示K,M,G

5. 显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
du -ch file1 file2 file3

6. 按照空间大小排序
du|sort -nr|more

7. 输出当前目录下各个子目录所使用的空间
du -h --max-depth=1

8. 统计目录下文件大小
du -sh *

9. 统计文件大小并排序
du -s * | sort -nr (倒叙)

  

 10 内容匹配 grep

grep -rn '匹配词' . 
//递归的匹配所有的搜索词

 

11. 文件压缩与解压 tar

文件压缩:

tar zcvf FileName.tar.gz DirName

文件解压:
tar zxvf FileName.tar.gz



tar.bz2格式
解压:[*******]$ tar jxvf FileName.tar.bz2
压缩:[*******]$ tar jcvf FileName.tar.bz2 DirName


tar.gz格式
解压:[*******]$ tar zxvf FileName.tar.gz
压缩:[*******]$ tar zcvf FileName.tar.gz DirName


tar格式
解包:[*******]$ tar xvf FileName.tar
打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)

zip格式
解压:[*******]$ unzip FileName.zip
压缩:[*******]$ zip FileName.zip DirName

rar格式:
压缩:rar a FileName.rar FileName
  解压:unrar x FileName.rar
     x: 解压文件到完整路径
e: 解压文件到当前目录

rar安装:
  1)下载源码包 https://www.rarlab.com/download.htm
2)下载并解压 tar -zxvf rarlinux-5.5.0.tar.gz
3) cd rar
4) make

  问题:  如果在备份的过程中,文件发生变化会出现报错的情况,导致终端, 可以添加命令  --warning=no-file-changed

 

12. 查看当前登陆的终端

w

22:19:00 up 26 days, 23:29,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    58.101.106.224   21:40    4.00s  0.10s  0.00s w

用户名  终端  登陆IP 登陆时间      正在执行的操作

 

13. 查看CPU信息

1. 物理CPU的个数:
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
2. 每个物理CPU的核心数量:
cat /proc/cpuinfo | grep "cpu cores" | uniq  
3. 逻辑CPU个数:
cat /proc/cpuinfo | grep "processor" | wc -l  

 

14.通过进程ID,查找父进程

pstree -aps 3080 # 3080 是子进程号
systemd,1
  └─dockerd,15006 -H fd://
      └─docker-containe,15024 --config /var/run/docker/containerd/containerd.toml
          └─docker-containe,2991 -namespace moby -workdir...
              └─app,3009
                  └─(app,2080)

 

15. set -ex

# 常见在执行shell命令的时候 使用set -ex
-e:  脚本中的命令一旦运行失败就终止脚本的运行
-x:  用于显示执行的命令与执行结果(默认值显示执行结果)

+ex:  标识不终止错误, 不显示结果

 

 

 


 

centos7

 


 

1)systemctl  命令

  设置nginx为开机启动项:

systemctl enable nginx

   服务相关操作 

systemctl start/stop/reload/restart   nginx (服务名称)

  

      防火墙

查看防火墙开启状态:
systemctl status firewalld

启动/关闭/重启 防火墙
systemctl [start|stop|restart] firewalld.service  查看80端口是否开放成功: firewall-cmd --zone=public --query-port=80/tcp 永久开放80端口: firewall-cmd --zone=public --add-port=80/tcp --permanent

移除80端口号:
firewall-cmd --permanent --zone=public --remove-port=80/tcp 重启防火墙(设置完成一定要设置): firewall-cmd --reload

  

 2)sudo

  临时获取最高权限

sudo -s

      切换用户

su - vagrant  //切换回vagrant用户

 

3)查看域名的证书有效时间

# 域名:fullchain.pem, 指定证书的路径
openssl x509 -in fullchain.pem -noout -text | grep "Not"

# 返回证书的有效期
notBefore=Nov 12 08:07:05 2018 GMT
notAfter=Nov 13 07:36:08 2019 GMT

 

 

 

华丽分割线


 

 命令安装

  1) locate

  可能一开始使用这个命令的时候,是无法使用的,需要你自己进行安装

  

yum install locate 
//可能发生的错误, 没有可用的软件包  locate 的情况

//进行安装mlocate进行解决
yum install -y mlocate

//安装成功之后,就可以愉快的使用locate命令进行内容的查找了, 呃呃呃,但是好像还是有问题,还差一步,对,那就是更新索引库
updatedb

//如果更新之后,还是搜索不到的话,那么可以查看配置文件,是否有限制
vim /etc/updatedb.conf

 

  • PRUNE_BIND_MOUNTS = “yes” 表示开启搜索限制,如果为’no’则表示不开启搜索限制;
  • PRUNEFS = 表示搜索时,不搜索的文件系统;
  • PRUNENAMES = 表示搜索时,不搜索的文件类型;
  • PRUNEPATHS = 表示搜索时,不搜索的路径; 
不只locate命令遵循搜索限制,whereis与which也遵循
 
 

 

日常

  1) 复制文件中的内容到粘贴板上
pbcopy < ~/.ssh/id_rsa.pub


//Windows中的类似使用
clip < ~/.ssh/id_rsa.pub

 

   2) 大文件的切割(场景:查看较大的文件(几十M)的时候,整个都卡住了,这个时候我们就可以切割成多个的小文件方便查看并搜索)
  
//使用命令split  (windows 下使用git bash工具即可使用该命令)

常用参数:
    -<行数> : 指定每多少行切成一个小文件
    -b<字节> : 指定每多少字节切成一个小文件    1KB = 1000B   1MB = 1000KB
    --help : 在线帮助
    --version : 显示版本信息
    -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
    [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号


//实例:
split -3000 index.log #将index.log文件每3000行分割成一个文件  默认多个以''x''开头的文件

   3)  kill 掉所有匹配到名字的进程

ps aux | grep swoole_job |  awk '{print $2}' | xargs kill -9

ps 列出所有进程,

参数:

a - 显示现行终端机下的所有进程,包括其他用户的进程;

u - 以用户为主的进程状态 ;

x - 通常与 a 这个参数一起使用,可列出较完整信息。

 

grep 过滤掉不包含 "swoole" 的行

 

awk '{print $2}'    获取进程 ID (PID, Process Identification),我们想 kill 掉某一个进程的时候需要通过 PID 指定特定进程

 

xargs  将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。

也就是将管道传递过来的每一个 PID 作为 kill -9 的参数

  
  4) 删除20天之前的数据
find /tmp -mtime +21 -exec rm -rf {} \;

注意: 不要忘记最后的分号

mtime: 修改时间(天)

{} \;  固定写法, 一堆大括号+空格+\;

 

 
 
 
 
 
 
 
 
 

posted @ 2018-05-24 10:39  X-Wolf  阅读(584)  评论(0编辑  收藏  举报