linux

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 :后面接目录,亦即找出某个目录底下已经被开启的文件!