linux日常使用指令总结
linux 日常指令总结(ubuntu):
- ls -lha 所有文件及权限
- ls -lsh;-lrsh 修改日期降序;升序
- df -h 系统磁盘空间
- du -sh 当前目录大小
- du -ah --max-depth=1 显示目录下所有的文件和文件夹(不含子目录)所占空间
- mv file_a file_b 重命名文件
- #查看服务器版本ubuntu:lsb_release -a;uname -a
- ps -aux | grep python (或者-ef 不同风格而已) 查看相关关键字进程
- ls -la /proc/pid/fd 某个进程打开了哪些文件
- netstat -tunlp | grep 8001 ; lsof -i:8001 查看端口占用
- lsof | grep tcpdump.log cp /proc/2864/fd/4 /root/tcpdump.log 找回被删除了但被一个进程打开的文件 (i_count 内存引用计数;i_nlink硬盘引用计数 都为0才被真删除)
- ifconfig 查看ip
- kill -9 pid 强制结束
#后台运行程序
- nohup python -u gen_data.py > out.log 2>&1 &
#以其他用户执行程序
- sudo -i -u jenkins python ..
- tar -zxvf asdji.gz 解压
- tar -zcvf asdasd.gz /etc 打包
- find . -name filename* 查找当前文件夹下的文件(第二参数为要查找的路径)
- free -mt 查看内存(单位为MB) total = userd+free+buffer+cache
※buffer 是os缓存的将要写入的文件 目的讲分散的写操作集中进行 减少磁盘碎片反复寻道
cache是os缓存的读入的文件
ulimit配置
- ulimit -a 查看ulimit配置
- ulimit -n 65535
Linux系统里打开文件描述符的最大值 nginx服务器配置常用最大值
设置各linux 用户的最大进程数,把某linux用户的最大进程数设为10000个:
ulimit -u 10000
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
磁盘io及cpu使用情况
- iostat
- iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
- iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
- iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)iowait 不能超30
- iostat -c 1 10 #查看cpu状态
rsync 拷贝文件
1,本地模式:
rsync -avz -P /etc ~/tmp/
/etc 和/etc/的区别,/etc是复制的时候包含etc这个目录和下面的文件,而第二个则只是复制etc下面的所有文件
2,本地推送模式:
格式:rsync -选项 -本地源文件 -远程文件夹
使用-e 参数借助ssh隧道协议将本地的文件推送到目的服务器:
rsync -avz -P /home/test -e "ssh -p 22" user01@192.168.0.108:/home/tmp/
3,远程抓取模式
格式:rsync -选项 -远程文件夹 -本地目录
rsync -avz -P -e "ssh -p 22" user01@192.168.0.108:/tmp/test ./tmp/
apt-get 修改源:
1,sudo vim /etc/apt/sources.list
2,将原来的列表删除,添加如下内容(中科大镜像源)
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
3,运行sudo apt-get update
免密ssh远程服务器:
1,在远程服务器中添加用户(最好与本机统一命名)并放入sudo组中
2,生成公钥
ssh-keygen -t rsa
3,拷贝公钥到服务器(第一次需要输入密码)
ssh-copy-id adam@10.11.3.230
top指令查看综合状况cpu,内存:
top (后输入M以内存使用情况进行排序)
top -bn 1 -i -c 执行一次获得cpu和内存
第一行:
- 10:01:23 — 当前系统时间
- up 126 days, 14:29 — 系统已经运行时间(在这期间没有重启过)
- 2 users — 当前有2个用户登录系统
- load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
※load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果长时间该数据值大于逻辑CPU的数量过多,就表明系统在超负荷运转了。
cpu详解:
- 查看cpu个数
- cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
- 查看每个cpu的核数
- cat /proc/cpuinfo| grep "cpu cores"| uniq
- 查看逻辑cpu总数
- cat /proc/cpuinfo| grep "processor"| wc -l
CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
第二行:
Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
第三行:cpu状态
- 6.7% us — 用户空间占用CPU的百分比。
- 0.4% sy — 内核空间占用CPU的百分比。
- 0.0% ni — 改变过优先级的进程占用CPU的百分比
- 92.9% id — 空闲CPU百分比
- 0.0% wa — IO等待占用CPU的百分比
- 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
- 0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
- 8306544k total — 物理内存总量(8GB)
- 7775876k used — 使用中的内存总量(7.7GB)
- 530668k free — 空闲内存总量(530M)
- 79236k buff/cache — 缓存的内存量 (79M)
第五行:swap交换分区
- 2031608k total — 交换区总量(2GB)
- 2556k used — 使用的交换区总量(2.5M)
- 2029052k free — 空闲交换区总量(2GB)
swap说明:
一般swap指的是一个交换分区或文件。功能上讲,交换分区主要是在内存不够用的时候,将部分内存上的数据交换到swap空间上,以便让系统不会因内存不够用而导致oom或者更致命的情况出现。当内存使用存在压力,开始触发内存回收的行为时,就可能会使用swap空间。
swapon -s 查看当前系统上正在使用的交换空间信息
网络情况:
- netstat -tunlp | grep 8080 查看端口占用
- netstat -nat|grep ESTABLISHED|wc -l 查看系统并发连接数
- netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 查看所有连接状况
状态描述
- CLOSED:无连接是活动的或正在进行
- LISTEN:服务器在等待进入呼叫
- SYN_RECV:一个连接请求已经到达,等待确认
- SYN_SENT:应用已经开始,打开一个连接
- ESTABLISHED:正常数据传输状态
- FIN_WAIT1:应用说它已经完成
- FIN_WAIT2:另一边已同意释放
- ITMED_WAIT:等待所有分组死掉
- CLOSING:两边同时尝试关闭
- TIME_WAIT:另一边已初始化一个释放
- LAST_ACK:等待所有分组死掉