linux常用命令总结
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帮我杀掉
参考资料:
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/