linux常用命令总结
0.查找redis.conf文件的位置
find / -name "redis.conf" 2>/dev/null
1.查询当前目录总大小
du -sh # -s 等同于 -d 0
1.3 查询当前文件下的大小并排序
du -h | sort -nr
1.4查询当前路径下的一级子目录的大小
du -h -d 1 # -h 人类可读方式 # -d 深度为1 (目录层级为1)
1.5 查询硬盘的可用空间
df -h
2.批量解压缩
ls *.tar.gz | xargs -n1 tar xzvf
2.3批量解压缩-zip
ls *.zip | xargs -n1 unzip
2.4批量移除zip文件
ls *.zip | xargs rm
2.5压缩命令
tar -zcvf log.tar.gz log2012.log # 打包后,以 gzip 压缩
3.解压缩
tar -zxv -f filename.tar.gz
4.查看内存
free -h
5.远程拷贝文件(本地到远程)
scp file root@192.168.0.123:/root/liqi
6.远程拷贝目录(本地到远程)
scp -r dir root@192.168.0.123:/root/liqi
7.监控cpu频率的命令有
cat /proc/cpuinfo |grep MHz # 查看所有核
cat /proc/cpuinfo |grep MHz|uniq # 查看所有核并去重 lscpu # 查看cpu总频率
8. 挂载命令
sudo mount -t nfs 192.168.49.160:/home/nfsfile ./nfsfile
8.1 安装客户端挂载
- 遇到这个问题:bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program
sudo apt install nfs-common
8.2 取消挂载
sudo umount share
8.3 查看挂载的详细信息,用于排查错误。增加-v 参数
sudo mount -v -t nfs 192.168.49.160:/home/nfsfile ./nfsfile
9.查看跟主机有关的配置
hostnamectl

10.统计行数
wc #是 word count 的缩写
10.5 统计出当前目录下的文件数量
ls | wc -l
11.查看本机的所有ip
ifconfig |grep netmask |cut -d " " -f 10
12.查看当前各个文件的大小
du -ah -d 1 #-d 命令选择深度为1 -a选择所有 -h以人类的方式显示
13.sh脚本开头需要加的话是
#!/bin/bash
14.升级Ubuntu系统
sudo apt-get update # 只升级(安全) sudo apt-get -y dist-upgrade # 升级的同时,根据依赖关系自动删除旧的包,通常被认为有一定风险 sudo apt-get clean # 清理磁盘空间 (一般作为定期维护) sudo apt-get autoremove # 自动清理不用的依赖关系包
备注:Ubuntu 16 以前使用apt-get ;Ubuntu16以后推荐使用apt,更简洁。
15. 更新软件的命令(推荐)
sudo apt update # 刷新软件包目录
sudo apt list --upgradable # 查看是否更新提示
sudo apt upgrade # 如上一步提示有可以更新的项目,则执行更新
16.建立软连接
# 想在当前目录下创建一个mmm文件,指向上上级的模型文件model-150 # 语法是 # ln -s [指向的源文件] [当前要创建的文件] ln -s ../../model-150/ ./mmm

17.取消软链接
unlink mmm # 移除mmm的链接(推荐) rm mmm # 同样的功能,(有删除源文件的风险)【注意不能 rm mmm/ ,会导致源文件删除】
18.查看时间
date
19.修改时区
sudo dpkg-reconfigure tzdata # Debian系列(图像化选择)
tzselect # centos和debian通用的命令(感觉没有上面的好用)
20.查看cpu使用情况
先输入top命令,再按1 查看cpu利用率
20.5修改top刷新时间
top 再按s 再按1 # 就是设置刷新时间为1秒
21.rsync同步命令
rsync -avz mmmm liqi@192.168.49.105:/home/liqi/ # 同步远程 rsync -avz mmmm aaa/ # 同步mmmm到本地aaa文件下
22.查看进程
ps aux ps aux | grep xxx # 查找xxx进程
ps -au # 简要查询
22.5查看某个python3进程并关闭
ps aux | grep python3 kill 1216516 # 我这里查到的是1216516
23.sudo输入密码 1行搞定(参考)
echo 密码 | sudo -S 命令 例如: echo "liqi@123" | sudo -S ./test.sh 注释: -S, --stdin : 从标准输入读取密码
24.将输出结果重定向到日志文件
xx.sh | tee liqi.log
25.关机
shutdown -h now
poweroff
26.秘钥上传
上传160服务器的秘钥到81服务器,实现160免密登录81.
在160服务器上执行:
#生成秘钥 ssh-keygen # 上传秘钥 ssh-copy-id -i ~/.ssh/id_rsa.pub liqi@192.168.53.81
# 遇到报错,就按照提示执行下面命令
ssh-keygen -f "/home/你自己的用户/.ssh/known_hosts" -R "192.168.49.107"
# 或者重新强制上传一次
ssh-copy-id -f -i ~/.ssh/id_rsa.pub liqi@192.168.49.171
详细链接
26.5 rsync报错解决:大部分是没安装
sudo apt-get install rsync # Debian sudo yum install rsync # Red Hat
27.查找文件,不显示错误输出
find / -name mysql 2>/dev/null
28.普通用户临时提升root权限
sudo su
29.从根目录查找文件里面包含gemm的文件内容?
sudo find / -type f -name "*.log" | xargs grep "gemm"
说明:type f 是查找文件,不找文件夹。 xargs 是把前面的命令查出来所有的log,转换后grep查找的内容输入。
30.列出本级目录下,包含yolov的文件夹,并统计数量。
# 列出文件 ls yolov* -d # 列出并统计 ls yolov* -d | wc -l
31.普通用户运行passwd只能修改它自己的密码.
passwd # 先输入当前的密码 # 再输入新的密码 # 确认输入新的密码
32.如何批量下载zip的文件?
wget -r -nH --cut-dirs=1 -A zip http://your_remote_server_url
33.下载单个文件
wget http://your_remote_server_url/your_zip_file.zip
34.卸载软件
dpkg --list # 列出所有安装的东西 sudo apt-get remove xxx # 卸载xxx sudo apt-get --purge remove xxx # 卸载xxx相关的配置 # 如果有进程还在启动,就kill 掉。 kill -9 xxx
35.txt打开乱码问题,解决:
- 原因是:
- Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致。
- Linux下使用的编码是utf8,而Windows使用的是gb18030
iconv -f gb18030 -t utf8 1.txt -o 2.txt # 把gb18030编码的1.txt转换成utf8的2.txt。这样2.txt就成为Linux支持的编码。
36.ubuntu ssh连接不显示颜色,怎么办?【参考】
1.编辑配置文件 vim ~/.bashrc 2.把下面这句注释解开 # force_color_prompt=yes 3.保存 :wq 4.重新加载资源: source ~/.bashrc
37.查看CPU,内存信息
- 逻辑CPU个数
cat /proc/cpuinfo | grep "processor" | wc -l
- 物理CPU个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
- 查看CPU信息
cat /proc/cpuinfo
- 查看内存信息
cat /proc/meminfo
38.指定WIFI | 5G测试?
ifconfig # 查看网络配置 我这里的wwan0是5g的网口
ping www.baidu.com -I wwan0 # 指定wwan0网口发送测试包到baidu.com

39. 查找某个进程,并kill掉
ps aux|grep webapp.jar| grep -v grep| awk '{print $2}'|xargs kill
解释:
- ps aux 列出所有进程
- grep webapp.jar 查找webapp.jar
- grep -v grep 排查grep自己这条命令
- awk '(print $2)' 只要第2列进程id号(第1列是用户名, 第2列式进程id)
- xargs kill 把之前拿到的进程id号,输入给kill,让kill帮我杀掉
40.查看80端口的网络:
netstat - tuanlp | grep -w 80
-w 是只匹配80,不匹配8080的意思。全量匹配单词的意思
-t:TCP,表示仅显示 TCP 协议相关的连接。-u:UDP,表示仅显示 UDP 协议相关的连接。-a:All,表示显示所有连接,包括正在监听的(Listening)和已经建立连接的(Established)。-n:Numeric,表示以数字形式显示 IP 地址和端口号,而不是尝试解析成主机名和服务名。这可以加快命令执行速度。-l:Listening,表示仅显示正在监听的连接。这里可以省略-p:Process,表示显示连接所属的进程 ID (PID) 和进程名称。这个参数非常有用,可以让你知道是哪个程序在占用端口
41. 过滤信息忽略大小写。
用grep -i
例如:
docker inspect test | grep -i pid

42. 查看系统所有的进程ps -elf
ps -elf

说明:
-
ps: "process status" 的缩写,这个命令本身就是用来显示当前进程快照的。 -
-e: 这个参数代表 "every",意思是显示所有进程。不加这个参数,ps通常只会显示与当前终端相关的进程。它等同于-A参数。 -
-l: 这个参数代表 "long",意思是使用长格式输出。这会显示比默认格式多得多的信息列,比如进程状态 (S)、进程优先级 (PRI) 等。 -
-f: 这个参数代表 "full",意思是使用完整格式输出。它也会提供详细信息,并且会包含一些-l参数没有的列,比如 UID、PPID、C 和 STIME。同时,它会以完整的命令和参数(CMD列)来显示进程,而不仅仅是命令名
总结:
ps -elf 命令的作用是:以完整(full)、长(long)的格式,显示系统上所有(every)正在运行的进程。
43. ps aux 跟ps -elf的区别?
风格不一样。aux 不显示PPID,ps -elf 会显示PPID
简单记忆:
aux-> 关注资源(有点像 Windows 的任务管理器)。-elf-> 关注关系(像查看一个家族的族谱)。
| 特性 | ps aux |
ps -elf |
|---|---|---|
| 风格 | BSD 风格 (无 -) |
UNIX/Linux 风格 (有 -) |
| 关键信息 | 资源占用 (%CPU, %MEM) |
进程关系 (PPID 父进程ID) |
| 输出列 | USER, PID, %CPU, %MEM, VSZ, RSS... | UID, PID, PPID, C, STIME, TTY... |
| 使用场景 | 当你想快速查看“哪个进程占用了最多的CPU或内存?”时。 | 当你想知道“这个进程是谁启动的?”或者查看进程的详细调度信息时。 |
44. 清理空间的命令:
sudo du -ah /* --max-depth=2 | sort -rh | head -10
参考资料:
wget 参数:https://www.linuxprobe.com/wget.html
34卸载 参考: https://worktile.com/kb/p/47084
35 乱码问题: https://www.cnblogs.com/keshuqi/p/5957721.html
37 查看CPU, 内存信息: https://www.jianshu.com/p/cffd842bc3ea
39 命令来源于 介绍ansible的 https://lotabout.me/2020/Ansible-Introduction/


浙公网安备 33010602011771号