Linux常用命令汇总

Posted 夏小悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令汇总相关的知识,希望对你有一定的参考价值。

前言

  本篇文章主要汇总了项目开发过程中常用的linux命令,以便后续查询。

1. 终极命令

  man 为用户查询指令的使用手册。

	# 查询指令ls
	man ls

  为便于查询man输出的指令手册,下面给出一些快捷键:

按键功能
Space下一页
Enter下一行
PgUp下一页
PgDn上一页
Home跳转到手册开头
End跳转到手册末尾
^下一行
v上一行
/从上到下搜索手册中某个关键词,比如/is就是在手册中搜索关键词is
?从下到上搜索手册中某个关键词,?is
n定位到下一个搜索到的关键词
N定位到上一个搜索到的关键词
q退出手册

2. 基础命令

2.1 C系

  cat 在终端设备上输出文件的内容

	# 输出main.py文件中的内容
	cat main.py

  cd 切换目录

	# 切换到Documents目录
	cd Documents/

  cp 复制文件

	# 复制文件main.py到Documents目录中
	cp main.py Documents/
	# 复制文件main.py到Documents目录中,并重命名为xiayouran.py
	cp main.py Documents/xiayouran.py
	# 复制Documents目录中所有的文件到Downloads目录中
	cp Documents/* Downloads/
	# 复制pywork文件夹及其所有的文件到Documents目录中
	cp -r pywork/ Documents/

	-f	# 若目标文件已存在, 则会直接覆盖原文件
	-i	# 若目标文件已存在, 则会询问是否覆盖
	-r	# 递归复制文件和目录
	-v	# 详细显示命令执行的操作

2.2 E系

  echo 在终端设备上输出字符串或变量的值

	# 输出字符串
	echo "hello world!"
	# 输出变量PATH的值
	echo $PATH

2.3 F系

  find 查找文件

	# 在pywork目录下搜索所有以.py为后缀名的文件
	find /pywork -name "*.py"

2.4 K系

  kill 终止某个指定PID的服务进程

	# 终止PID为32519的进程
	kill 32519
	# 若上述指令无效, 可使用最高级别地指令强制杀死进程
	kill -9 32519

2.5 M系

  mkdir 创建文件夹

	# 创建名为pywork的文件夹
	mkdir pywork
	# 创建多级目录
	mkdir -p pywork/work1

  more 在终端设备上输出文件的内容

	# 输出main.py文件中的内容, 若内容过多, 会自动进行分屏展示
	more main.py
	
	# 为了方便查看文件内容, 一般根据文件内容量来选择合适的指令
	# 如果内容较少, 可使用cat; 如果内容较多, 可使用more

  mv 移动文件或重命名

	# 移动文件到pywork文件夹
	mv mian.py pywork/
	# 重命名mian.py为test.py
	mv mian.py test.py

	-i	# 若存在同名文件, 则向用户询问是否覆盖
	-f	# 覆盖已有文件时, 不进行任何提示

2.6 N系

  nvidia-smi 查看GPU的使用情况

	# 查看服务器上的GPU信息
	nvidia-smi

	# 
	NVIDIA-SMI 418.67
	Driver Version: 418.67	# 显卡驱动版本
	CUDA Version: 10.1		# CUDA版本

	GPU				# 服务器上GPU编号(从0开始编号)	0
	NAME			# GPU类型	Tesla V100-SXM2-32GB
	Persistence-M	# 持久模式	On 打开 Off 关闭
	FAN				# 风扇的转速(0%-100%)	N/A表示没有风扇
	Temp			# GPU的温度	54C(摄氏度)
	Perf			# GPU的性能状态, 从P0到P12	P0(性能最大)
	Pwr:Usage/Cap	# 能耗, 212W / 300W
	Bus-Id			# GPU总线相关显示 00000000:06:00.0
	Disp.A			# Display Active, 表示GPU的显示是否初始化 Off
	Memory-Usage	# 显存使用情况 4000MiB / 16384MiB
	Volatile GPU-Util	# GPU使用率
	Uncorr. ECC		# 是否开启错误检查和纠正技术, 0 disabled 1 enabled
	Compute M.		# 计算模式, 0 DEFAULT 1 EXCLUSIVE_PROCESS 2 PROHIBITED

2.7 P系

  pwd 显示当前路径

	# 显示当前路径
	pwd

2.8 R系

  reboot 重启系统

	# 重启系统
	reboot

  rm 删除文件或目录

	# 删除main.py文件
	rm main.py
	# 删除pywork文件夹下所有的文件及文件夹
	rm -rf pywork/*
	# 删除pywork文件夹及其所有的文件和文件夹
	rm -rf pywork/

	-i	# 删除前会询问用户是否操作(默认)
	-r	# 递归删除
	-f	# 删除前不询问用户是否操作

2.9 T系

  top 实时显示系统中各个进程的资源占用状况

	# 查看系统各个进程的运行情况
	top

  大致说一下如何查看各个进程的信息:

	# 系统时间, 系统已运行时间, 登陆人数, 系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)
	top - 19:59:39 up 9:20,  1 user,  load average: 0.07, 0.03, 0.01
	
	# 进程总数, 运行中的进程数, 睡眠中的进程数, 停止的进程数, 僵死的进程数
	Tasks: 308 total,   3 running, 305 sleeping,   0 stopped,   0 zombie
	
	# 用户(user)占用CPU的百分比, 系统内核(system)占用CPU的百分比, 改变过优先级的进程占用CPU的百分比, 空闲CPU的百分比, IO等待占用CPU的百分比, 硬中断占用CPU的百分比, 软中断占用CPU的百分比
	%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
	
	# 物理内存总量, 空闲内存量, 内存使用量, 内核缓存的内存量
	# 可用内存 = free + buff/cache
	MiB Mem :   1966.1 total,    102.7 free,   1254.0 used,    609.3 buff/cache
	
	# 虚拟内存总量, 虚拟内存空闲量, 虚拟内存使用量, 已被提前加载的内存量
	MiB Swap:   2048.0 total,   2047.7 free,      0.3 used.    538.9 avail Mem 

	# 按F键可查看具体含义
	PID		# Process Id 进程ID
	USER	# Effective Use 进程所有者
	PR		# Priority 进程优先级
	NI		# Nice Value, 负值表示高优先级, 正值表示低优先级
	VIRT	# Virtual Memory Usage 进程使用的虚拟内存总量, 单位kb. VIRT = SWAP + RES
	RES		# Resident Memory Usage 进程使用的、未被换出的物理内存大小(常驻内存), 单位kb. RES = CODE + DATA
	SHR		# Shared Memory 共享内存, 单位kb
	S		# 进程状态, D: 不可中断的睡眠状态 R: 运行 S: 睡眠 T: 跟踪/停止 Z: 僵尸进程
	%CPU	# 进程使用的CPU百分比
	%MEM	# 进程使用的物理内存百分比
	TIME+ 	# 进程使用的CPU时间, 单位1/100s
	COMMAND	# 进程名称(进程运行的指令)
	# 查看指定user(xiayouran)的进程信息
	top -u xiayouran

2.10 W系

  wget 从网络上下载文件

	# 从GitHub上下载代码
	wget https://github.com/xiayouran/Musicer.git
	# 下载代码到指定目录
	wget -P /home/xiayouran/pywork/ https://github.com/xiayouran/Musicer.git

	-b	# 后台下载模式
	-P	# 下载到指定目录
	-t	# 最大尝试次数
	-c	# 断点续传
	-p	# 下载页面内所有资源,包括图片、视频等
	-r	# 递归下载

3. 文件与文档

  scp linux系统与linux系统间的文件复制

	# 将本地的main.py文件复制到xiayouran@192.168.3.100主机上的
	scp main.py xiayouran@192.168.3.100:/home/xiayouran/pywork
	# 将xiayouran@192.168.3.101主机上的pywork文件夹复制到本地
	scp -r xiayouran@192.168.3.101:/home/xiayouran/pywork/ .

  wc 统计并显示指定文件中的行数、字数、字节数

	# 统计main.py文件中的行数、字数、字节数
	wc main.py
	# 统计main.py文件中的行数
	wc -l main.py
	# 统计main.py文件中的字数
	wc -w mian.py
	# 统计main.py文件中的字节数
	wc -c mian.py

  du 显示目录或文件的大小

	# 显示pywork文件夹大小
	du pywork/
	# 以易读方式显示文件大小(所谓易读, 就是自动以KB/MB/GB的形式显示)
	du -h pywork/
	# 显示pywork文件夹及所有文件的大小
	du -a pywork/
	
	-k	# 以KB为单位显示文件大小
	-m	# 以MB为单位显示文件大小
	-g	# 以GB为单位显示文件大小
	-s	# 显示目录总大小, 默认

4. 压缩与解压

  zip.zip格式压缩文件

	# 把当前目录下的data文件夹打包成data.zip
	zip -r data.zip data
	
	-q	# 不显示指令执行过程
	-r	# 递归处理,将指定目录下的所有文件和子目录一并处理
	-z	# 替压缩文件加上注释
	-v	# 显示执行命令时详细的信息

  unzip 解压.zip格式的压缩文件

	# 在当前文件夹下解压data.zip
	unzip data.zip
	# 将data.zip解压到当前目录下的data文件夹中
	unzip data.zip -d data
	# 检查data.zip是否完整
	unzip -t data.zip
	
	-l	# 显示压缩文件内所包含的文件
	-v	# 显示执行命令时详细的信息
	-n	# 解压缩时不要覆盖原有的文件
	-t	# 校验

  tar 压缩/解压.tar.tar.gz格式的文件

	# 解压data.tar到当前目录下
	tar -xvf data.tar
	# 解压data.tar到当前目录下的data文件夹
	tar -xvf data.tar -C data
	# 解压data.tar.gz到当前目录下的data文件夹
	tar -zxvf data.tar.gz -C data
	# 将data文件夹中的所有.txt文件打包到data.tar
	tar -cvf data.tar data/*.txt

	-x	# 从压缩包中提取文件
	-z	# 压缩/解压缩.tar.gz格式的文件
	-v	# 显示操作过程
	-r	# 添加文件到已经压缩的文件
	-c	# 建立新的备份文件
	-t	# 查看压缩包里面的文件
	-C	# 切换工作目录
	--remove-files	# 压缩之后删除源文件

5. 系统设置与管理

  export 设置环境变量,用于将shell变量输出为环境变量,或者将shell函数输出为环境变量

	# 列出当前所有的环境变量
	export -p
	# 或者直接不加参数
	export

	# 设置python的环境变量(在后面追加)
	export PYTHONPATH=$PYTHONPATH:/home/xiayouran/python/

	# 设置python的环境变量(在前面追加)
	export PYTHONPATH=/home/xiayouran/python/:$PYTHONPATH

	# 设置python的环境变量(覆盖掉以前的)
	export PYTHONPATH=/home/xiayouran/python/

	# 取消环境变量PYWORK
	unset PYWORK

  但上述的配置操作在关闭终端之后会自动失效,下面有两种方式来进行永久配置,可根据不同的工作环境进行选择使用:

	# method 1: 用户级添加环境变量(只影响当前user)
	# 打开.bashrc文件(在当前用户的根目录下, 直接cd就是了)
	vim .bashrc
	# 在最末尾添加
	export PYTHONPATH=$PYTHONPATH:/home/xiayouran/python/
	# 保存文件并退出, 再进行source使其生效
	source .bashrc
	
	# method 2: 系统级添加环境变量
	# 打开bash.bashrc文件(不同的系统可能不大一样)
	vim /etc/bash.bashrc
	# 在最末尾添加
	export PYTHONPATH=$PYTHONPATH:/home/xiayouran/python/
	# 保存文件并退出, 再进行source使其生效
	source /etc/bash.bashrc

  环境变量的值以 : 进行分割

  ln 为文件或目录创建链接

	# -s 创建软连接(符号链接)
	ln -s /home/xiayouran/pywork/data/imagenet/val /home/xiayouran/data
	# 软连接就相当于是一个快捷方式, 此时的data就相当于是imagenet下的val

	# 删除软连接
	rm -rf /home/xiayouran/data
	# 注意!!!
	# 不是rm -rf /home/xiayouran/data/哦, 没有最后面的 / , 否则数据就没了哦(链接文件的同步性)

  date 显示系统的时间与日期

	# 查看当前系统的时间与日期
	date
	# 格式化显示系统的时间与日期
	date "+%Y-%m-%d %H:%M:%S"
	# 将系统时间设置为2021-09-03 17:30:00
	date -s "2021-09-03 17:30:00"
参数功能
%Y年份
%m月份(1~12)
%d本月的第几天
%H时钟(00~23)
%I时钟(01~12)
%M分钟(00~59)
%S秒钟(00~59)
%A完整的工作日名称
%a缩写的工作日名称
%B完整的月份名称
%b缩写的月份名称
%p显示AM和PM
%q季度(1~4)
%j今年的第几天

  timedatectl 设置系统的时间

	# 查看当前时区的时间状态
	timedatectl status
	# 列出所有时区
	timedatectl list-timezones
	# 设置时区
	timedatectl set-timezone Asia/Shanghai
	# 设置系统日期
	timedatectl set-time 2021-09-03
	# 设置系统时间
	timedatectl set-time 17:30:00 

  ps 查看系统中的进程状态

	# 查看系统中的进程状态
	ps -aux

  pstree 以树状图的形式展示进程之间的关系

	# 以树状图的形式展示进程之间的关系
	pstree

  pidof 查询某个服务进程的pid

	# 查询sshd进程的pid
	pidof sshd

  nice 用于调整进程的优先级

	# 数字越低(-20~19), 优先级越高
	nice -n -20 bash

  ifconfig 查看网卡配置与网络状态等信息

	# 查看网卡信息
	ifconfig

  uname 查看系统内核版本与系统架构等信息

	# 查看系统所有相关信息
	uname -a

	-m	# 显示计算机硬件架构
	-n	# 显示主机名称
	-r	# 显示内核发行版本号
	-s	# 显示内核名称
	-v	# 显示内核版本
	-p	# 显示主机处理器类型
	-o	# 显示操作系统名称
	-i	# 显示硬件平台

  uptime 查看系统的负载信息

	# 查看系统的负载信息
	uptime

  free 显示系统中内存的使用信息

	# 查看看=系统的内存信息
	free

  who 查看当前主机的用户终端信息

	# 查看当前主机的用户终端信息
	who

  which 在变量PATH指定的路径中,搜索某个系统命令的位置

	# 搜索python的位置·
	which python

  last 查看主机被访的记录

	# 查看主机被访的记录
	last

  有关更多更详细的指令信息可以参阅 Linux命令大全(手册)

结束语

以上是关于Linux常用命令汇总的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令汇总

Linux运维最常用命令汇总

linux 常用命令汇总(面向面试)

Linux 常用命令汇总

Linux最常用150个命令汇总

Linux运维最常用命令汇总