系统信息查看
#显示所有文件(包含隐藏文件)
ls -a
#只显示隐藏文件
l.
或者
ls -d .*
查看cpu信息、机器硬件型号
# linux 查看显卡信息
lspci | grep -i vga
# nvidia GPU查看显卡信息
lspci | grep -i nvidia
# Nvidia 自带工具
nvidia-smi
# 前边的序号 "00:0f.0"是显卡的代号
# 查看指定显卡的详细信息用以下指令
lspci -v -s 02:00.1
# 周期性的输出显卡的使用情况,用watch指令实现,命令行参数-n后边跟的是执行命令的周期,以s为单位。
watch -n 10 nvidia-smi
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
(看到有8个逻辑CPU, 也知道了CPU型号)
# cat /proc/cpuinfo | grep physical | uniq -c
4 physical id : 0
4 physical id : 1
(说明实际上是两颗4核的CPU)
# getconf LONG_BIT
32
(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)
# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
8
(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)
再完整看cpu详细信息, 不过大部分我们都不关心而已.
# dmidecode | grep 'Processor Information'
查看内存信息
# cat /proc/meminfo
# uname -a
Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
(查看当前操作系统内核信息)
# cat /etc/issue | grep Linux
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
(查看当前操作系统发行版信息)
查看机器型号
# dmidecode | grep "Product Name"
查看网卡信息
# dmesg | grep -i eth
CPU信息查看:
参考: https://blog.51cto.com/chaichuan/2073878
查看逻辑CPU个数:
#cat /proc/cpuinfo |grep "processor"|sort -u|wc -l
24
查看物理CPU个数:
#grep "physical id" /proc/cpuinfo|sort -u|wc -l
2
#grep "physical id" /proc/cpuinfo|sort -u
physical id : 0
physical id : 1
查看每个物理CPU内核个数:
#grep "cpu cores" /proc/cpuinfo|uniq
cpu cores : 6
每个物理CPU上逻辑CPU个数:
#grep "siblings" /proc/cpuinfo|uniq
siblings : 12
判断是否开启了超线程:
如果多个逻辑CPU的"physical id"和"core id"均相同,说明开启了超线程,或者换句话说
逻辑CPU个数 > 物理CPU个数 * CPU内核数 开启了超线程
逻辑CPU个数 = 物理CPU个数 * CPU内核数 没有开启超线程
文件信息查看
这种场景经常见到,比如执行umount,发现被占用,想找到被谁占用
使用fuser来查文件或目录被谁占用
fuser /proc
/proc: 2454rc
参数:-v 显示用多信息,-u 显示用户
# fuser -uv /proc
用户 进程号 权限 命令
/proc: rtkit 2454 .rc.. (rtkit)rtkit-daemon
想要显示/proc目录下所有文件和目录被占用情况,加-m参数
# fuser -uvm /proc
用户 进程号 权限 命令
/proc: root 1311 f.... (root)rsyslogd
root 1667 f.... (root)vmtoolsd
root 2028 f.... (root)acpid
haldaemon 2040 f.... (haldaemon)hald
使用删除某个PID,加-k参数,加入-i,配合-k会询问用户意愿
# fuser -ki /proc
/proc: 2454rc
杀死进程 2454 ? (y/N) n
lsof的使用
lsof列出被进程所打开的文件,直接运行,输出内容很多
加参数-u找某个用户的进程
# lsof -u root|more
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 253,0 4096 2 /
init 1 root rtd DIR 253,0 4096 2 /
init 1 root txt REG 253,0 150352 4560 /sbi
n/init
...
+d 参数,找某个目录被打开的文件
-a 多个条件同时成立,例如找root用户打开/proc的情况
# lsof +d /proc -a -u root
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 1311 root 3r REG 0,3 0 4026532038 /proc/kmsg
vmtoolsd 1667 root 16r REG 0,3 0 4026532032 /proc/meminfo
vmtoolsd 1667 root 17r REG 0,3 0 4026532033 /proc/stat
vmtoolsd 1667 root 18r REG 0,3 0 4026532020 /proc/vmstat
lsof 24962 root 3r DIR 0,3 0 1 /proc
还有个参数-U ,用来列出socket文件类型
文件权限设置:
文件权限中 chmod、u+x、u、r、w、x分别代表什么:
参考:
sh 脚本执行
1. 用绝对路径或相对路径执行
/xxx/xx/test.sh 或 ./test.sh, 要求sh文件必须有可执行权限,可以用命令 chmod a+x test.sh来添加
2. 用bash或sh来执行
bash test.sh 或 sh test.sh
3. 用source 或 . 来执行
source test.sh 或 . test.sh 这样的一大特点是,在本shell执行,前面的方式都是在本shell的子shell中执行,不能获取sh文件中的变量
Shell 命令查找
Ctrl + r