注意
--
接长格式命令参数,-
接短格式命令参数,只有短格式和短格式之间可以合并。- 如果某个命令有很多控制台输出,可以在末尾添加
&
来时其在后台运行。
常用快捷键
- Tab:补全命令
- Ctrl+C:终止命令
- Ctrl+D:
EOF
,结束终端 - Ctrl+l: 清屏,等同
clear
关机
1 | poweroff |
重启
1 | reboot |
系统状态检测命令
查看系统版本信息
lsb_release
查看系统版本
1 | lsb_release -a |
RedHat下无法使用
uname
查看系统版本
1 | uname -a |
查看内核版本
1 | uname -r |
参考资料:
RedHat下查看系统版本详细信息
1 | cat /etc/redhat-release |
查看硬件配置
uptime
查看系统负载信息
1 | uptime |
df
查看硬盘空间
1 | df -h |
free
查看内存信息
1 | free [-h] |
查看CPU硬件信息
查看型号和逻辑核数:
1 | cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c |
查看物理核数:
1 | cat /proc/cpuinfo | grep physical | uniq -c |
查看完整信息:
1 | cat /proc/cpuinfo |
nvidia-smi
查看GPU硬件信息
使用该命令前需要先安装NVIDIA驱动:
1 | nvidia-smi |
参考资料:
ifconfig
查看网卡信息
1 | ifconfig [参数] [网络设备] |
网络状态信息
ping
检查系统网络联通性,使用ICMP协议
1 | ping [参数] 主机地址 |
- -c:共发送次数
- -l:指定网卡名称
- -i:每次间隔时间(秒)
- -W:最长等待时间(秒)
tracepath
显示数据包到达目的主机所经过的路由信息
1 | tracepath [参数] 域名 |
netstat
显示网络连接、路由表、接口状态等网络相关信息
1 | netstat [参数] |
- -a:显示所有连接中的Socket
- -p:显示正在使用的Socket信息
- -t:显示TCP协议的连接状态
- -u:显示UDP协议的连接状态
- -n:使用IP地址,不使用域名
- -l:仅列出正在监听的服务状态
- -i:现在网卡列表信息
- -r:显示路由表信息
系统时间信息
date
查看系统时间
1 | date |
以特定格式显示时间
1 | date "+%Y-%m-%d %H:%M:%S" |
设置系统时间
1 | date -s "20201006 20:07:50" |
timedatectl
1 | timedatectl |
- status:显示状态信息
- list-timezones:列出已知时区
- set-time:设置系统时间
- set-timezone:设置生效时区
其他信息
who
查看当前等入主机的用户终端信息
1 | who |
last
查看主机的被访记录
1 | last |
history
显示执行过的命令历史
1 | history [-c] |
- -c:清空历史命令记录信息
sosreport
收集系统配置及架构信息并输出诊断文档
1 | sosreport |
查找定位文件命令
pwd
显示用户当前所处的工作目录
1 | pwd |
cd
切换当前的工作路径
1 | cd [参数] [目录] |
返回上一次所处的目录
1 | cd - |
换到当前用户的家目录
1 | cd ~ |
换到其他用户的家目录
1 | cd ~username |
ls
显示目录中的文件信息
1 | ls [-ald] |
- -a:看到全部文件(包括隐藏文件)
- -l:查看文件的属性、大小等详细信息
- -d:查看目录属性信息
1 | ll # ls -l |
tree
以树状图的形式列出目录内容及结构
1 | tree |
find
按照指定条件来查找文件所对应的位置
1 | find [查找范围] 寻找条件 |
- -name:匹配名称
- -perm:匹配权限(mode为完全匹配,-mode为包含即可)
- -user:匹配所有者
- -group:匹配所有组
- -mtime -n +n:匹配修改内容的时间(-n指n天以内,+n指n天以前)
- -atime -n +n:匹配访问文件的时间(-n指n天以内,+n指n天以前)
- -ctime -n +n:匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
- -nouser:匹配无所有者的文件
- -nogroup:匹配无所有组的文件
- -newer f1 !f2:匹配比文件f1新但比f2旧的文件
- —type b/d/c/p/l/f:匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
- -size:匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
- -prune:忽略某个目录
- -exec …… {}\;:后面可跟用于进一步处理搜索结果的命令
locate
按照名称快速搜索文件所对应的位置
1 | locate 文件名称 |
第一次使用前,记得先执行下updatedb命令来生成出索引数据库,然后再进行查找:
1 | updatedb |
whereis
按照名称快速搜索二进制程序(命令)、源代码以及帮助手册文件所对应的位置
1 | whereis 命令名称 |
which
按照指定名称快速搜索二进制程序(命令)所对应的位置
1 | which 命令名称 |
文本文件编辑命令
cat
查看纯文本文件(内容较少的)
1 | cat [参数] 文件名称 |
- -n:显示行号
more
查看纯文本文件(内容较多的)
1 | more [参数] 文件名称 |
可以使用空格键或回车键向下翻页
head
查看纯文本文件的前N行
1 | head [参数] 文件名称 |
查看前10行
1 | head -n 10 /etc/profile |
tail
查看纯文本文件的后N行或持续刷新文件的最新内容
1 | tail [参数] 文件名称 |
- -n:查看后n行
- -f:持续刷新
tr
替换文本内容中的字符
1 | tr [原始字符] [目标字符] |
wc
统计指定文本文件的行数、字数或字节数
1 | wc [参数] 文件名称 |
- -l:只显示行数
- -w:只显示单词数
- -c:只显示字节数
stat
查看文件的具体存储细节和时间等信息
1 | stat 文件名称 |
- Access Time(最后一次内容被访问的时间,简称Atime)
- Modify Time(最后一次内容被修改的时间,简称Mtime)
- Change Time(文件属性最后一次被修改的时间,简称Ctime)
grep
按行提取文本内容
1 | grep [参数] 文件名称 |
- -b:将可执行文件(binary)当作文本文件(text)来搜索
- -c:仅显示找到的行数
- -i:忽略大小写
- -n:显示行号
- -v:反向选择——仅列出没有“关键词”的行
cut
按列提取文本内容
1 | cut [参数] 文件名称 |
- -f:设置需要看的列数
- -d:设置间隔符号
diff
比较多个文件之间内容的差异
1 | diff [参数] 文件名称A 文件名称B |
- —brief:确认两个文件是否不同
- -c:详细比较出多个文件的差异之处
uniq
去除文本中连续的重复行
1 | uniq [参数] 文件名称 |
sort
对文本内容进行再排序
1 | sort [参数] 文件名称 |
- -f:忽略大小写
- -b:忽略缩进与空格
- -n:以数值型排序
- -r:反向排序
- -u:去除重复行
- -t:指定间隔符
- -k:设置字段范围
文件目录管理命令
touch
创建空白文件或设置文件的时间
1 | touch [参数] 文件名称 |
- -a:仅修改“读取时间”(atime)
- -m:仅修改“修改时间”(mtime)
- -d:同时修改atime与mtime
mkdir
创建空白的目录
1 | mkdir [参数] 目录名称 |
- -p:递归创建出具有嵌套叠层关系的文件目录
cp
复制文件或目录
1 | cp [参数] 源文件名称 目标文件名称 |
- 如果目标文件是目录,则会把源文件复制到该目录中
- 如果目标文件也是普通文件,则会询问是否要覆盖它
如果目标文件不存在,则执行正常的复制操作
-p:保留原始文件的属性
- -d:若对象为“链接文件”,则保留该“链接文件”的属性
- -r:递归持续复制(用于目录)
- -i:若目标文件存在则询问是否覆盖
- -a:相当于-pdr(p、d、r为上述参数)
mv
剪切或重命名文件
1 | mv [参数] 源文件名称 目标文件名称 |
rm
删除文件或目录
1 | rm [参数] 文件名称 |
- -f:强制执行
- -i:删除前询问
- -r:删除目录
- -v:显示过程
dd
按照指定大小的数据块个数来复制文件或转换文件
1 | dd if=参数值 of=参数值 count=参数值 bs=参数值 |
- if:输入的文件名称
- of:输出的文件名称
- bs:设置每个“块”的大小
- count:设置要复制“块”的个数
创建指定大小的文件
1 | dd if=/dev/zero of=560_file count=1 bs=560M |
file
查看文件的类型
1 | file 文件名称 |
进程操作
ps
1 | ps aux |
- -a:显示所有进程(包括其他用户的进程)
- -u:用户以及其他详细信息
- -x:显示没有控制终端的进程
pstree
以进程树形式查看
1 | pstree |
top
动态监视进程活动及系统负载信息
1 | top |
nice
调整进程优先级
1 | nice 优先级数字 服务名字 |
数字越低优先级越高
pidof
通过服务名查询PID
1 | pidof [参数] 服务名 |
kill
杀死进程
1 | kill [参数] PID |
-9
代表最高级别的强制杀死进程。
killall
终止某个指定名称的服务所对应的全部进程
1 | killall [参数] 服务名称 |
下载文件
1 | wget |
- -b:后台下载模式
- -P:下载到指定目录
- -t:最大尝试次数
- -c:断点续传
- -p:下载页面内所有资源,包括图片、视频等
- -r:递归下载
更新CMake
关于安装xgboost中升级cmake和gcc的步骤(无编译)
压缩、解压、打包文件
tar
对文件进行打包压缩或解压
1 | tar 参数 文件名称 |
- -c:创建压缩文件
- -x:解开压缩文件
- -t:查看压缩包内有哪些文件
- -z:用Gzip压缩或解压
- -j:用bzip2压缩或解压
- -v:显示压缩或解压的过程
- -f:目标文件名,必须放到参数的最后一位,代表要压缩或解压的软件包名称
- -p:保留原始的权限与属性
- -P:使用绝对路径来压缩
- -C:指定解压到的目录
zip
递归压缩当前文件夹下的文件到xxx.zip
。
1 | zip -r xxx.zip ./* |
删除压缩文件中smart.txt
文件
1 | zip -d myfile.zip smart.txt |
向压缩文件中myfile.zip
中添加rpm_info.txt
文件
1 | zip -m myfile.zip ./rpm_info.txt |
参考资料:
unzip
1 | unzip -o -d /home/sunny myfile.zip |
把myfile.zip
文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny
指明将文件解压缩到/home/sunny
目录下;