君玉自牧 君玉自牧
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
  • 技术架构

  • 桌面维护

  • 网络工程

  • 系统运维

    • Linux

      • CentOS 初始化 & 环境准备
      • Linux SSH 服务 & 免密登录
      • Linux 用户权限 & 防火墙
      • Linux 磁盘挂载及交换分区
      • Linux 编辑器:vi & vim
      • Linux 软件包管理
      • Linix 文件共享:FTP、NFS、Samba
      • Linux 定时任务:crontab
      • Linux 系统日志基本管理
      • Linux 系统 Shell 命令
        • 基本操作
        • 查找命令
          • find
          • locate
          • whereis
          • which
          • type
        • 文件操作
        • 用户进程
          • 端口占用
          • 进程超限
        • 关闭进程
          • 查询进程
          • 直接杀掉
        • 无法登录
          • Passwd
      • 使用 nohup 启动守护进程
      • 使用 pm2 启动守护进程
      • 使用 Ansible 自动化运维
      • 使用 Puppet 自动化运维
    • Apache

    • Nginx

    • MySQL

    • Redis

    • MQ

    • ELK

    • Nacos

    • PostgreSQL

    • MongoDB

  • 环境搭建

  • 容器编排

  • 持续集成

  • 监控告警

  • 项目实践

  • 脚本开发

  • 前端开发

  • 后端开发

  • 效率工具

目录

Linux 系统 Shell 命令

# 基本操作

关机重启

#关机
shutdown -h now
#重启
shutdown -r now
1
2
3
4

CPU 信息

#查看系统内核信息
uname -a
#查看系统内核版本
cat /proc/version
#查看当前用户环境变量
env
cat /proc/cpuinfo
#查看有几个逻辑cpu,包括cpu型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
#查看有几颗 cpu,每颗分别是几核
cat /proc/cpuinfo | grep physical | uniq -c
#查看当前 CPU 运行在 32bit 还是 64bit 模式下,如果是运行在 32bit 下也不代表 CPU 不支持 64bit
getconf LONG_BIT
#结果大于 0, 说明支持 64bit 计算,lm 指 long mode, 支持 lm 则是 64bit
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

建立软连接

ln -s /usr/local/jdk1.8/ jdk
1

命令重命名

# 在各个用户的 .bash_profile 中添加重命名配置
alias ll='ls -alF'
1
2

# 查找命令

# find

find 是最常见和最强大的查找命令,可以用它找到任何你想找的文件

find [目录] [条件] [动作]
#目录:所要搜索的目录及其所有子目录,默认为当前目录
#条件:所要搜索的文件的特征
#动作:对搜索结果进行特定的处理
1
2
3
4

如果什么参数也不加,find 默认搜索当前目录及其子目录,并且不过滤任何结果返回所有文件

#搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件
find . -name 'my*'
#搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息
find . -name 'my*' -ls
#搜索当前目录中,所有过去 10 分钟中更新过的普通文件,不加 -type f 参数,则搜索普通文件+特殊文件+目录
find . -type f -mmin -10
#搜索当前目录中,降序排列的前 5 个文件夹
find . -type d | sort -r | head -5
1
2
3
4
5
6
7
8

# locate

locate 命令其实是find -name的另一种写法,但比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),其中含有本地所有文件信息; Linux 系统自动创建这个数据库,并且每天自动更新一次,所以使用 locate 命令查不到最新变动过的文件;为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。

#搜索etc目录下所有以sh开头的文件。
locate /etc/sh
#搜索用户主目录下,所有以 m 开头的文件
locate ~/m
#搜索用户主目录下,所有以 m 开头的文件,并且忽略大小写
locate -i ~/m
1
2
3
4
5
6

# whereis

whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数 -b)、man 说明文件(参数 -m)和源代码文件(参数 -s);如果省略参数,则返回所有信息

whereis java
1

# which

which 命令的作用是,在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果;也就是说,使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which grep
1

# type

type 命令其实不能算查找命令,它是用来区分某个命令到底是由 shell 自带的,还是由 shell 外部的独立二进制文件提供的;如果一个命令是外部命令,那么使用 -p 参数,会显示该命令的路径,相当于 which 命令。

type cd
type grep
#加上-p 参数后,就相当于 which 命令
type -p grep
1
2
3
4

查找进程

ps aux | grep xxx
1

# 文件操作

查看磁盘,文件目录基本信息

#查看磁盘挂载情况
mount
#查看磁盘分区信息
df
#查看磁盘分区信息,显示直观大小
df -h
#查看目录及子目录大小
du -H -h
#查看当前目录下文件(夹)占用情况,不会递归
du -sh *
#查看根目录下文件(夹)占用情况
du -sh /*
#查看指定目录下文件(层深为 1)占用情况
du -ah --max-depth=1 /
#查看指定目录下文件(夹)占用情况
du -sh /var/log
#查看指定目录下指定大小的文件(夹)
du -h -t 100M /var/log/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

wc 命令

#查看文件里有多少行
wc -l filename

#看文件里有多少个word
wc -w filename

#文件里最长的那一行是多少个字
wc -L filename

#统计字节数
wc -c
1
2
3
4
5
6
7
8
9
10
11

解压缩

tar czvf xxx.tar 压缩目录
zip -r xxx.zip 压缩目录
tar zxvf xxx.tar
#解压到指定文件夹
tar zxvf xxx.tar -C /root/
unzip xxx.zip
1
2
3
4
5
6

# 用户进程

查询 www 用户所有进程:ps -o nlwp,pid,lwp,args -u www | sort -n 查询 www 用户所有进程并打印:ps -o nlwp,pid,lwp,args -u www | sort -n > 1.txt 查询 www 用户所有进程并关闭:ps -o nlwp,pid,lwp,args -u www | sort -n | awk '{print "kill -9 "$2}'|sh

# 端口占用

netstat -lntp | grep 10086

# 进程超限

账户无法登录,报错:“the server refused to start a shell”,查看tail /var/log/secure,看到“error: do_exec_pty: fork: Resource temporarily unavailable” 查看所有用户进程数:ps h -Led -o user | sort | uniq -c | sort -n 查看指定用户进程数: 查看指定用户进程项:ps -o nlwp,pid,lwp,args -u www | sort -n vim /etc/security/limits.d/20-nproc.conf

*          soft    nproc     4096
www        soft    nproc     10240
root       soft    nproc     unlimited
1
2
3

vim /etc/security/limits.conf

root soft nofile 65535
root hard nofile 65535
*	soft nofile 65535
* hard nofile 65535
1
2
3
4

ulimit -a ulimit -u ulimit -n

# 关闭进程

# 查询进程

ps -o nlwp,pid,lwp,args -u www | sort -n
1

# 直接杀掉

ps -ef | egrep "/usr/sbin/sendmail|/usr/sbin/postdrop" | grep -v grep | awk '{print $2}' | xargs kill -9
1

PS 查看父进程 PID,发现是 crond;crond 执行脚本时会将脚本输出信息以邮件的形式发送给 crond 用户,postfix 没有正常运行,导致邮件发送失败,造成进程一直卡在那 crond->sendmail->postdrop

tail -c 10 /var/log/maillog
1
crontab -e
#首行添加
MAILTO=""
1
2
3

# 无法登录

# Passwd

chattr -ia /etc/passwd
cat /etc/passwd | grep www
#修改 Shell
"/sbin/nologin" > "/bin/bash"
1
2
3
4
网页编辑 (opens new window)
最近提交: 2023/03/22, 11:52:35
Linux 系统日志基本管理
使用 nohup 启动守护进程

← Linux 系统日志基本管理 使用 nohup 启动守护进程→

Theme by Vdoing | Copyright © 2011-2023 | 君玉自牧
粤ICP备15057965号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式