一、基本操作类
1、linux关机
#重启
reboot
#关机
shotdown
#直接断电
poweroff
2、pwd
查看当前路径
3、设置环境变量和取消
(1)用export命令
export PATH=/usr/local/bin:$PATH
[root@center ansible-2.7.5]# echo $PATH
/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
#取消环境变量
unset NEUWARE_HOME
#添加库路径
export LD_LIBRARY_PATH=/home/lib:$LD_LIBRARY_PATH
但是这种方法只会对当前用户及当前命令行窗口生效,退出后就会丢失
(2)编辑修改.bashrc文件
vim /root/.bashrc
#在最后一行添上:
export PATH=/usr/local/bin:$PATH
这种方法只会对当前用户生效,需重启系统
(3)编辑修改profile文件:
vim /etc/profile
export PATH=/usr/local/bin:$PATH
4、ulimit
用于配置进程所占用的资源
-a 显示目前资源限制的设定。
-c <core文件上限> 设定core文件的最大值,单位为区块。
-d <数据节区大小> 程序数据节区的最大值,单位为KB。
-f <文件大小> shell所能建立的最大文件,单位为区块。
-H 设定资源的硬性限制,也就是管理员所设下的限制。
-m <内存大小> 指定可使用内存的上限,单位为KB。
-n <文件数目> 指定同一时间最多可开启的文件数。
-p <缓冲区大小> 指定管道缓冲区的大小,单位512字节。
-s <堆叠大小> 指定堆叠的上限,单位为KB。
-S 设定资源的弹性限制。
-t <CPU时间> 指定CPU使用时间的上限,单位为秒。
-u <程序数目> 用户最多可开启的程序数目。
-v <虚拟内存大小> 指定可使用的虚拟内存上限,单位为KB。
例如;设置core文件大小
ulimit -c unlimited
5、who
查看当前用户
w
who
6、watch
周期性的执行给定的命令
watch [OPTIONS] COMMAND
-d, --differences [PERMANENT]高亮显示最近两次更新之间的差异。-d cumulative 选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来
-n, --interval SECONDS指定监测间隔,单位秒。默认 2s,不能低于 0.1s
-p, --precise尝试精确地按照指定的间隔进行一次命令监视
-t, --no-title关闭 watch 命令在顶部的时间间隔、命令、当前时间的输出
-b, --beep被监测的命令退出码非零时发出哔哔声
-e, --errexit被监测的命令发生错误时 watch 停止更新,并在按键之后退出
-g, --chgexit被监测的命令输出发生变化时退出 watch
-c, --color解释 ANSI 颜色和样式序列
-x, --exec将命令传递给 exec(2) 而不是 sh -c
-h, --help显示帮助信息并退出
-v, --version显示版本信息并退出
#例如:
watch -n1 cnmon
7、grep
-n 添加行号作为后缀
-r 递归查找
-i 忽略大小写
-E 以正则表达式进行检索
例如:
ps -A | grep -Eir 'srpc|name|pipeline'
根据条件检索杀进程
ps -A| grep -E 'name|lau|srpc|pipeline'|grep -v grep|awk '{print $1}'|xargs kill -9
对于defunct僵尸进程,需要杀掉父进程
ps -ef| grep -E 'sim|lau|srpc|pipeline'|grep -v grep|more|awk '{print $3}'|xargs kill -9
循环执行
while true; do top -bn 1|grep -E "shrd|nic" | grep -v grep; sleep 1; done
8、su
su命令可以获取root权限,如果切换失败,报错:authentication failure,使用下列命令解决
root@usr sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@usr sudo root
9、查看linux版本号
lsb_release -a
10、创建密钥
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
生成的密钥在~/.ssh/目录下,id_rsa为私钥,用于本机认证,id_rsa.pub为公钥,用于远程服务器认证。
11、~目录和/目录的区别
/目录是指当前系统的根目录
~目录是指当前用户的目录,相当于/home/cur_user/
二、网络相关类
1、ifconfig 显示网络接口配置信息
(1)查看当前网络
ifconfig -a
(2)网络启动和暂停
ifconfig enp0s3 up
ifconfig enp0s3 down
ifconfig lo 127.0.0.1 up #启动回环地址
(3)设置ip地址
ifconfig enp0s3 192.168.1.103 broadcast 192.168.1.255
如果这种方式设置重启后失效,可以使用下面方法设置
cd /etc/netplan/
vi 00-installer-config.yaml
#将enp0s3的网络信息设置如下
enp0s3:
dhcp4: true
addresses: [192.168.1.103/24]
nameservers:
addresses: [114.114.114.114,8.8.8.8]
#设置后执行下面命令生效
sudo netplan apply
2、ip网络工具
1、基本用法
#查看所有ip,以网卡分组
ip address
ip a
#查看路由
ip route
ip r
#查看内核中记录的ARP表
ip neigh
ip n
3、mount挂载NFS
(1)服务端
sudo apt-get install nfs-kernel-server
sudo vim /etc/exports
#在exports文件中添加要挂载的路径
/home *(rw,sync,insecure,no_subtree_check,no_root_squash)
sudo service nfs-kernel-server restart
(2)客户端
mount -t nfs -o nolock -o tcp 192.168.1.103:/home/ /mnt/
4、关闭防火墙
#输入以下命令以停止防火墙服务:
sudo systemctl stop ufw.service
#输入以下命令以禁用防火墙服务:
sudo systemctl disable ufw.service
#最后,输入以下命令以确认防火墙服务已关闭:
sudo ufw status
5、安装和重启SSH服务
#安装
sudo apt-get install sshd
#或者
sudo apt-get install openssh-server
#重启
service sshd restart
systemctl restart sshd.service
6、virtual box虚拟机睡眠后无法使用网络
sudo ifconfig enp0s3 down
sudo ifconfig enp0s3 up
三、性能相关类
1、/proc/meminfo
查看内存最简单的方法
cat /proc/meminfo
cat /proc/<pid>/statm
cat /proc/<pid>/status
2、free
对meminfo的信息做个概述
free -h
3、htop
命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。
4、memstat
可以查看进程数据段、共享库的内存占用
memstat -p pid
5、ps
实时显示各个进程的内存占用情况,CPU使用率
#序列化显示并排序
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
6、top
实时统计运行中进程占用的资源
四、内存相关
1、cat
cat /proc/130006/status
VmPeak: 表示进程所占用最大虚拟内存大小
VmSize: 表示进程当前虚拟内存大小
VmLck: 表示被锁定的内存大小
VmHWM: 表示进程所占用物理内存的峰值
VmRSS: 表示进程当前占用物理内存的大小(与procrank中的RSS)
VmData: 表示进程数据段的大小
VmStk: 表示进程堆栈段的大小
VmExe: 表示进程代码的大小
VmLib: 表示进程所使用共享库的大小
VmPTE: 表示进程页表项的大小
2、pmap
#打印进程123物理内存大于200kB的信息
pmap -x 123 | awk '{if($3>200) print $0}'
3、共享内存相关
#清除共享内存
ipcs -m | grep '^0x' | awk '{print $2}' | xargs -n 1 ipcrm -m
五、docker相关
docker 容器的启动和停止有以下几种方式:
1、查看容器
#查看运行的容器列表
docker ps -a
#查看当前系统中存在哪些镜像
docker images
2、启动一个新的容器
docker run命令用于创建并启动一个新的容器。例如,运行下面的命令可以创建并启动一个新的 Nginx 容器:
docker run -d --name my-nginx nginx
3、 启动一个已停止的容器
命令docker start命令用于启动已经停止的容器。例如,运行下面的命令可以启动名为 my-nginx 的容器:
docker start my-nginx
4、 停止正在运行的容器:
docker stop
命令用于停止正在运行的容器。例如,运行下面的命令可以停止名为 my-nginx 的容器:
docker stop my-nginx
5、 重启容器:
docker restart
命令用于重启容器,即先停止再启动容器。例如,运行下面的命令可以重启名为 my-nginx 的容器:
docker restart my-nginx
6、 暂停容器:
docker pause
命令用于暂停容器中的所有进程。例如,运行下面的命令可以暂停名为 my-nginx 的容器:
docker pause my-nginx
7、恢复容器:
docker unpause
命令用于恢复容器中的所有进程。例如,运行下面的命令可以恢复名为 my-nginx 的容器:
docker unpause my-nginx
8、 停止并删除容器:
docker rm
命令用于停止并删除容器。例如,运行下面的命令可以停止并删除名为 my-nginx 的容器:
docker rm -f my-nginx
docker rmi nginx
六、杂项
1、段错误没有生成core文件
查看core file size,可通过ulimit -c size 设置大小。
ulimit -a
如果还没有生成core文件,运行以下命令再重新运行程序
sudo bash -c "echo core > /proc/sys/kernel/core_pattern "
2、查看PCIE设备信息:lspci
报错:bash: lspci:未找到命令
解决办法:
apt-get install lspci
报错:E: 无法定位软件包 lspci
解决办法:
apt-get install pciutils