Linux 常用命令精简

find

# 全局查找 nginx.conf
$ find / -name nginx.conf
# 全局查找 nginx.conf 并筛选掉没有权限等提示信息
$ find / -name nginx.conf 2>/dev/null

top

# 三秒一刷新服务器性能状态
$ top
# E 切换单位
# M 根据内存排序
# P 根据CPU排序

ls

# 查看所有文件名
$ ls
# -l 查看文件列表详情
# -h 将文件大小切换为合适单位
# -S 根据文件大小,降序排列
# -i 查看文件节点ID
# -d [文件夹] 查看文件夹的信息,不加是查看文件夹下的文件

free 查看剩余内存

# 查看剩余内存,单位:字节
$ free
# -h 切换为合适的单位
# total 系统总的可用物理内存大小
# used 已被使用的物理内存大小
# free 还有多少物理内存可用
# shared 被共享使用的物理内存大小
# buff/cache 被 buffer 和 cache 使用的物理内存大小
# available 可以给新程序用的内存空间大小
# 注意:小伙伴不要再看 free memory了, 基本上关注 available memory 就可以了!对领导也耐心解释下,看available更有意义!

drop_caches 释放内存

# 释放内存前先使用sync命令做同步,以确保文件系统的完整性,
# 将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。
# 否则在释放缓存的过程中,可能会丢失未保存的文件。
$ sync
# 释放缓存 drop_caches的值可以是0-3之间的数字,代表不同的含义:
# 0:不释放(系统默认值)
# 1:释放页缓存
# 2:释放dentries和inodes
# 3:释放所有缓存
$ echo 1 > /proc/sys/vm/drop_caches

history

# 查看最近1000条历史命令
$ history
# 查看最近100条历史命令
$ history 100
# 查看历史操作时间
$ export HISTTIMEFORMAT='%F %T '
# 清除当前会话历史
$ history -c

**扩展:**可以通过 Ctrl + R,然后输入指令,可以快速输入历史命令

Linux 查看CPU核数

# 方法1
# top下按1
$ top

# 方法2
$ grep -c "processor" /proc/cpuinfo

vim 查看最后一行

# vim 进入文本内容之后输入G,跳至最后一行

vim

$ vim [选项] [文件]
# -R 以只读模式查看
# 交互命令
# :set nu 查看行号
# :set nonu 关闭行号
# :0 定位到首行
# :$ 定位到尾行
# # 高亮光标所在单词

定位:

  • g + g 定位到第一行
  • G 定位到最后一行

写操作:

  • u 撤销上一步操作
  • 删除:
    • dd 删除光标所在行
    • ndd 删除光标以下n行,包括光标所在行
  • 复制:
    • yy 复制光标所在行
    • nyy 复制光标以下n行,包括光标所在行
  • 粘贴
    • p 将已复制的数据在光标下一行贴上
    • P 将已复制的数据在光标上一行贴上

读操作:

  • 翻页:
    • [Ctrl] + [d] 向下翻页
    • [Ctrl] + [u] 向上翻页

grep

$ grep [-iv] [搜索内容] [文件]
# -i 不区分大小写
# -v 排除指定字符串
# -E 匹配多个,例:grep -E 'USER|uat'
# -c 统计行数
# -n 显示文件中行号,如果在管道符中,代表前一个结果的行号

解压war包

$ unzip common.war -d common

awk

# 查看第一列和最后一列
$ awk '{print $1,$NF}' [文件名]

# 设置第一个字段的长度为50(方便字段对齐)
$ awk '{prinf "%-50s\t%s",$1,$NF}' [文件名]

# 查看行号和最后一列
$ awk '{print NR,$NF}' [文件名]

# 不查看第一行,$0打印所有列
$ awk '{$1="";print $0}'

# 查看sql日志
cat test-center-6001.jar.log  | grep b46105ac6ca24a678bba7f434fb0f0ff | awk '{$1="";$2="";$3="";$4="";$5="";print$0}' | grep "==>"

head

# 查看第一行
$ head -n 1 [文件名]

systemctl

# 启动一个服务:
$ systemctl start firewalld.service
# 关闭一个服务:
$ systemctl stop firewalld.service
# 重启一个服务:
$ systemctl restart firewalld.service
# 显示一个服务的状态:
$ systemctl status firewalld.service
# 查看服务列表
$ systemctl list-units --all --type=service

# 在开机时启用一个服务:
$ systemctl enable firewalld.service
# 在开机时禁用一个服务:
$ systemctl disable firewalld.service
# 查看服务是否开机启动:
$ systemctl is-enabled firewalld.service

# 查看开机启动的服务列表:
$ systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表:
$ systemctl --failed

设置alias别名、环境变量

# 1.临时生效(只对当前用户的当前shell有效,比如bash)
$ alias ll='ls -l --color=auto'
$ alias ll.='ls -la --color=auto'
$ export PATH=$PATH:/home/uusama/mysql/bin

# 2.当前用户永久生效(修改当前用户家目录下的.bashrc配置文件)
$ vim +999 ~/.bashrc
# +999 进入文件后,光标定位在尾行(第999行)
$ source ~/.bashrc
# source 重新加载配置文件

# 3.所有用户永久生效(修改大配置文件.bashrc)
$ vim +999 /etc/.bashrc
# +999 进入文件后,光标定位在尾行(第999行)
$ source /etc/.bashrc
# source 重新加载配置文件

删除空文件

# 删除当前目录下的空文件
$ find -maxdepth 1 -size 0 -exec rm {
    
    } \;

ls rm批量删除文件

$ ls | grep *.zip | xargs rm

根据i节点查找、删除

# 查询文件i节点
$ ls -i
# 根据文件i节点删除
$ find . -maxdepth 1 inum 6507391 -delete

curl 去除统计信息

# -s 去除统计信息
$ curl -s www.baidu.com

curl查看请求耗时

curl -X GET -w "\ntime_namelookup:%{time_namelookup}\ntime_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n"  "https://www.baidu.com"

# time_namelookup: DNS 服务器域名解析的时间
# time_connect: client 发出请求,到 c/s 建立TCP 的时间;里面包括 DNS 解析的时间
# time_starttransfer: client 发出请求;到 server 响应发出第一个字节开始的时间;包括前面的2个时间 
# time_total: 请求发起到链接关闭总耗时

根据用户统计内内存使用情况

$ ps -aux | grep -E '^USER|^uat' | awk '{print $1,$2,$3,$4}'

$相关运算整理

  • $(命令)相当于`命令`
  • $((运算式))相当于$[运算式]
  • ${变量名}相当于"$变量名"(包括双引号)
  • [条件判断]相当于“test 条件判断”

sh脚本参数传递

  • $0 是脚本本身的名字
  • $1 是传递给该shell脚本的第一个参数
  • $2 是传递给该shell脚本的第二个参数
  • $@ 是传给脚本的所有参数的列表
  • $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
  • $$ 是脚本运行的当前进程ID号
  • $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

命令行常用快捷键

快捷键 说明
ctrl+a 把光标移动到命令行开头
ctrl+e 把光标移动到命令行结尾
ctrl+c 强制终止当前命令
ctrl+l 清屏,相当于clear命令
ctrl+u 删除、剪切光标之前的命令
ctrl+k 删除、剪切光标之后的命令
ctrl+y 粘贴
ctrl+r 在历史命令中搜索,再按ctrl+r搜索匹配的下一条命令
ctrl+d 退出当前终端
ctrl+z 暂停进程,并放入后台
ctrl+s 暂停屏幕输出
ctrl+q 恢复屏幕输出

查询文件i节点

# 查看inode
$ ls -i
# 根据inode删除
$ find -maxdepth 1 -inum 11646107 -exec rm {
    
    } \;

netstat查看WAIT_TIME连接状态数

# 根据状态分组计数
$ netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
# 根据WAIT_TIME计数
$ netstat  -anp | grep TIME_WAIT | wc -l
# TIME_WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态
# 导致这个的原因应该是咱们的服务频繁的主动断开链接。

猜你喜欢

转载自blog.csdn.net/qq_33204709/article/details/128305751