1. linux内存文件相关命令
free -h df -h du -sh * | sort -nr
2. 取系统版本
awk -F= ‘/^NAME/{print $2}’ /etc/os-release
"CentOS Linux"
if [ -f /etc/redhat-release ]; then
yum -y install git
fi
if [ -f /etc/lsb-release ]; then
apt -y install git
fi
获取当前文件夹名字最后的名字
$(pwd | sed "s/\// /g" | awk 'NR==1{print $NF}')
3. 查看硬件信息
uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令
head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L
cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令
hostname # 查看计算机名的linux系统信息命令
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备的linux系统信息命令
lsmod # 列出加载的内核模块
env # 查看环境变量资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载磁盘和分区
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息进程
ps -ef # 查看所有进程
top # 实时显示进程状态用户
w # 查看活动用户
id # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务服务
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务程序
rpm -qa # 查看所有安装的软件包
cat /proc/cpuinfo :查看CPU相关参数的linux系统命令
cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo :查看linux系统内存信息的linux系统命令
cat /proc/version :查看版本,类似uname -r
cat /proc/ioports :查看设备io端口
cat /proc/interrupts :查看中断
cat /proc/pci :查看pci设备的信息
cat /proc/swaps :查看所有swap分区的信息
4. sudo
增加sudo权限 vim /etc/sudoers
root ALL=(ALL) ALL user ALL=(ALL) ALL
5. apt
关闭锁定
5.1. gsettings set org.gnome.desktop.session idle-delay 0
5.2. ifconfig 支持安装
sudo apt install net-tools
sudo vi /etc/apt/sources.list
deb cdrom:[Ubuntu 16.04.3 LTS Xenial Xerus - Release amd64 (20170801)]/ xenial main restricted deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
source /etc/apt/sources.list sudo apt update
6. getip
lan_ip=ip addr | grep inet | grep -v inet6 | grep -v 127.0.0.1 | awk '{print $2}' | awk -F '/' '{print $1}'
echo $lan_ip
wan_ip=wget -qO - ifconfig.co
echo $wan_ip
7. trace
yum install ltrace yum install strace
ptree -p pidof zsh
pidof zsh
lsof zsh
strace -c -p pidof zsh
8. watch
git clone https://github.com/brinkqiang/glances cd glances python setup.py install
apt install python-jinja2 apt install python3-jinja2
yum install python-jinja2 yum install python33-python-jinja2
9. 查看io
iostat sudo iotop
10. gcc -L、-Wl,-rpath, -Wl,-rpath-link的区别
-L:只是在编译时指定库的位置,但是运行时无法找到该位置;
-rpath和-rpath-link都可以在链接时指定库的路径。
但是运行时,-rpath-link指定的路径就不再有效,因为链接器没有将库的路径包含进可执行文件中或库中;
而-rpath指定的路径,已被链接器写入可执行文件中或库中
11. fuser
fuser:通过文件或文件系统找出正在使用该文件的程序
fuser [-umv] [-k [i] [-signal]] file/dir 选项与参数: -u :除了程序的 PID 之外,同时列出该程序的拥有者; -m :后面接的那个档名会主动的上提到该文件系统的最顶层,对 umount 不成功很有效! -v :可以列出每个文件与程序还有命令的完整相关性! -k :找出使用该文件/目录的 PID ,并试图以 SIGKILL 这个讯号给予该 PID; -i :必须与 -k 配合,在删除 PID 之前会先询问使用者意愿! -signal:例如 -1 -15 等等,若不加的话,默认是 SIGKILL (-9) 例子: fuser -uv . USER PID ACCESS COMMAND .: root 20639 ..c.. (root)bash ACCESS 代表的意义为: c :此程序在当前的目录下(非次目录); e :可被触发为运行状态; f :是一个被开启的文件; r :代表顶层目录 (root directory); F :该文件被开启了,不过在等待回应中; m :可能为分享的动态函式库;
12. lsof
lsof:列出被进程打开的文件名
lsof [-aUu] [+d] 选项与参数: -a :多项数据需要『同时成立』才显示出结果 -U :仅列出 Unix like 系统的 socket 文件类型; -u :后面接 username,列出该使用者相关程序所开启的文件; +d :后面接目录,亦即找出某个目录底下已经被开启的文件!