Linux常用命令合集

一、终端命令

1、常用快捷键

快捷键用途
ctrl+A把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。
ctrl+E把光标移动到命令行结尾。
ctrl+C强制终止当前的命令。
ctrl+L清屏,相当于clear命令。
ctrl+U删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便
ctrl+K删除或剪切光标之后的内容。
ctrl+Y粘贴ctrl+U或ctul+K剪切的内容。
ctrl+R在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。
ctrl+D结束输入或退出shell
ctrl+Z暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。
ctrl+S暂停屏幕输出。
ctrl+Q恢复屏幕输出
ctrl+→光标向右移动一个单词
ctrl+←光标向左移动一个单词

2、终端指令

  • clear 清屏
clear
  • reset 清屏(初始化终端)
reset
  • history 显示终端输入的命令历史
history
history N # 显示最近的n条命令
history -w fileName.txt  # 将历史记录保存到文本fileName.txt中
  • 帮助
--help
# 显示rm命令相关帮助 
rm --help
  • 退出
exit

一、文本文件

linux文件系统介绍

目录作用
/us应用程序存放目录,/usr/bin 存放应用程序
/usr/share存放共享数据
/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
/usr/local存放软件升级包
/usr/share/doc系统说明文件存放目录
/usr/share/man: 程序说明文件存放目录。
/var放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message
/var/spool/mail邮件存放的目录
/var/run程序或服务启动后,其PID存放在该目录下
/bin、 /usr/bin可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。
/dev存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt
/etc系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d
/home系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu 表示用户 edu 的家目录
/lib、 /usr/lib、 /usr/local/lib系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
/lost+fount系统异常产生错误时,会将一些遗失的片段放置于此目录下
/mnt: /media光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
/opt给主机额外安装软件所摆放的目录。

linux 文件颜色含义

文件颜色含义
蓝色目录
绿色可执行文件
红色压缩文件
浅蓝色链接文件
灰色其他文件

1 创建

(1)touch

创建文件

touch index.html	# 创建index.html文件(文件内容为空)
(2)mkdir

创建文件夹

mkdir newFolder		# 创建newFolder文件夹

2 删除

rm
rm index.html		# 删除index.html文件
rm -r newFolder		# -r 表示递归删除文件夹中的内容
rm -rf newFolder	# 强制删除,忽略提示信息

3 复制

(1)mv
mv 源文件路径 新路径		# 将源文件移动/剪切到目标路径下
mv /home/ahua/index.html  /home/ahua/ryan
# 将/home/ahua目录下的index.html文件移动到/home/ahua/ryan目录下
(2)cp
cp -r 源文件路径 新路径	# 将源文件复制到目标路径下
cp /home/ahua/index.html  /home/ahua/ryan
# 将/home/ahua目录下的index.html文件复制到/home/ahua/ryan目录下
# -r 表示递归拷贝/home/ahua中所有内容(包括ahua文件夹)
(3)scp

scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令,方便多台服务器之间互传数据,需要知道对应服务器的用户名和密码

scp [-r] file_source file_target

scp -r /home/ryan test_node@192.168.1.1:/opt/copy/
# 将/home/ryan 目录以及目录下所有内容复制到用户名为test_node ip地址为192.168.1.1设备上的/opt/copy目录下
# -r 表示递归拷贝/home/ryan中所有内容(包括ryan文件夹)

# 高级用法
scp -r FileName test_node@192.168.1.1:`PWD`
scp -r FileName test_node@192.168.1.1:$PWD
# 将FileName文件复制到test_node服务器上的同名路径下

4 查看

(1)cat
cat filename					
# 在Terminal中显示filename文件的内容
cat -n filename	
# 显示文件的全部内容,并附带行号
(2)more
more filename
# 以分页方式显示文件内容,可以使用回车键翻页,输入"q"退出
(3)less
less filename
# 以分页方式显示文件内容,可以使用空格键翻页,输入"q"退出

less和more的区别

  1. less可以按键盘上下方向键显示上下内容,more不能回退上一页展示的内容
  2. less不必读整个文件,加载速度会比more更快
  3. less退出后shell 终端上不会留下刚显示的内容,more退出后会在shell 终端上留下刚显示的内容
(4)head
head -n N filename
# 显示文件的前N行内容(例如,head -n 10 filename 显示文件的前10行)
(5)tail

查看文件尾部的内容,跟随文件的最新更改

tail [-n -f] filename
# filename	必填		表示跟踪的文件路径
# -f		选填		是否持续跟踪
# -n		选填		写几就表示查看尾部多少行,不写默认10行

tail -n 10 ahua.txt 
# 显示ahua.txt文件的最后10行内容

(6)echo

echo命令可以用来在命令行输出指定内容

echo "hello ahua"
# hello ahua
echo `pwd`
# ``中包裹的内容将会被作为命令去执行,所以echo `pwd` 结果会返回当前路径

5 重命名

mv
mv [选项] 原文件名 新文件名
mv oldname.txt newname.txt  
# 将oldname.txt 重命名为newname.txt   目录也是如此
# 如果目标名称已存在,mv会覆盖它
mv -i oldname.txt newname.txt
# 当路径下有重名文件时-i选项可以交互式询问是否需要覆盖原文件

6 编辑

vi/vim

模式
vim、vi共有三种常用模式:命令模式输入模式底行模式

在这里插入图片描述

命令模式(Command mode)
用户启动vim时,首先进入的便是命令模式。命令模式可认为是vim的入口,此模式下敲击键盘的字符都会被当做命令,而非在文本中插入字符

  • 移动
# 方位移动
h:光标左移一格
j:光标下移一格
k:光标上移一格
l:光标右移一格
# 行内移动
0:光标移至行首
$:光标移至行尾
^:光标移到当前行的第一个非空字符
g_:光标移到当前行的最后一个非空字符
b:光标到上一个字的开头
w:光标到下一个字的开头
e:光标移到下一个字的结尾
ge:光标移到上一个字的结尾
fa:移到下一个a出现的位置('F’与之相反)
ta:移到下一个a出现位置的前一个位置(‘T’与之相反)
# 行间移动
G:光标移至文末
gg:光标移至开头
Ngg或NG:光标移至N行开头
# 语义移动
(:光标移至上一句首
):光标移至下一句首
{:光标移至段首
}:光标移至段尾
# 屏幕移动
H:将光标移到屏幕的最顶行
M:将光标移到屏幕中间
L:将光标移到屏幕最底行
Ctrl+b:向上翻页
Ctrl+f:向下翻页
  • 复制
y:复制(可与移动命令搭配使用,如yw可复制光标至词尾的内容)
yy:复制一行
Nyy:复制从光标处起的N行内容
yw:复制光标处至词尾的内容
yaw:复制光标所在单词
ya":yank around ",复制整个字符串包括引号
yi":yank inside ",复制引号之间的内容,不包括引号(类似还有yi(、yi[)
  • 粘贴
p(小写):在光标后粘贴复制或剪切的内容
P(大写):在光标前粘贴复制或剪切的内容
  • 删除
x:删除光标所在字符(cut)
d:删除(可与移动命令搭配使用)
dd:删除光标所在行
D:从光标处删至行尾(与d0等同)
dw:删除光标至词尾的内容
daw:删除光标所在单词
  • 撤销
u:撤销上次命令(undo)
  • 恢复
Ctrl+r:恢复撤销的命令(redo)
  • 查找
/str:查找字符串str第一次出现的位置
n:当查找到指定内容后,继续查找下一个
N:查找上一个
*:向后查找当前光标所在单词
#:向前查找当前光标所在单词
fa:向后查找第一个a出现的位置
;重复上一次f查找命令
  • 替换
r:替换光标所在字符
R:此时将进入替换模式,每输入一个字符就会替换光标所在字符,并使光标后移一格,以便继续替换。
s:删除当前字符并插入
cw: 替换从光标所在位置到当前单词结尾的字符
caw:删除光标所在单词并插入
ci":删除“…”之间的内容并插入(类似还有ci(、ci[等)
.:重复上一次修改命令
".:跳转到上次修改所在行
  • 查看历史
q::查看历史命令
q/:查看搜索历史

插入模式(Insert mode)
此模式下可以正常地编辑文字,与平时使用习惯差别不大

底行模式(Last line mode)
此模式下可以执行保存、退出以及其他的一些功能,按下Shift+:即可进入底行模式

可视模式(visual)
命令模式下输入v即可进入可视模式,此时搭配移动的相关指令即可实现选中功能
在这里插入图片描述

可视块模式(visual block)
命令模式下ctrl+v即可进入可视块模式,此时搭配移动相关指令可实现垂直方向的文本选择
在这里插入图片描述

7 输入输出

一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:

标准输入文件(stdin): stdin的文件描述符为0,Unix程序默认从stdin读取数据。
标准输出文件(stdout): stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
标准错误文件(stderr): stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

(1)< 、>

默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file

>
# 将stdout的内容重定向到文件,如果文件已存在则覆盖
>>
# 将stdout的内容重定向到文件,如果文件已存在则追加
2>
# 将stderr的内容重定向到文件,如果文件已存在则覆盖
# 2 和 > 之间不可以有空格,2> 是一体的时候才表示错误输出
2>>
# 将stderr的内容重定向到文件,如果文件已存在则追加
echo "Hello, World!" > output.txt  # 覆盖文件
echo "Another line" >> output.txt  # 追加到文件

command > file 2>&1
command >> file 2>&1
# 将 stdout 和 stderr 合并后重定向到 file

command < file1 >file2
# command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2

(2)/dev/null

/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

command > /dev/null 2>&1
# 屏蔽 stdout 和 stderr的输出
(3) read

用于从标准输入(键盘)或其他输入流中读取用户的输入。它允许用户与脚本或命令行界面进行交互,从而使脚本更加灵活和用户友好。

read命令的基本作用是等待用户输入,并将输入的内容赋值给一个或多个变量。这使得脚本能够根据用户的实时输入采取不同的行为,增加了交互性和动态性。

1、基本命令格式

read命令格式为read [参数][变量名]

#! /bin/bash
read -p "input a number:" num
echo "number is:${num}"

执行结果
在这里插入图片描述

2、read变量名使用规则

  1. 变量名可以自定义,如果不指定变量名,会把输入保存入默认变量REPLY.
  2. 如果只提供了一个变量名,则整个输入行赋予该变量
  3. 如果提供了一个以上的变量名,则输入行分为若干字,一个接一个地赋予各个变量,而命令行上的最后一个变量取得剩余的所有字

3、read 参数说明

参数说明
-a后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
-p后跟 “提示信息”,等待read输入时,输出提示信息
-t后接秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
-n后接数字:read命令只接受指定的字符数,就会执行
-s隐藏输入的数据,适用于机密信息的输入
-d后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
-e在输入的时候可以使用命令补全功能。

8 linux用户和权限

linux中对权限的划分主要分为两个级别
1、针对用户的权限控制
2、针对用户组的权限控制

文件的权限分为3种,读(r),写(w),执行(x),三个为一组,且均为 rwx 的三个参数的组合,如果没有对应权限就以 - 代替。

下面是Desktop文件夹的权限信息

drwxr-xr-x  2 ahua ahuagroup 4096 Mar 23 03:53 Desktop/
# d表示文件夹
# 第一个rwx 表示文件所属用户具有读写执行的权限
# 第二个r-x表示文件所属用户组的其他用户具有读和执行的权限
# 第三个r-x表示其他用户具有读和执行的权限
# 2 表示硬链接个数,类似于window中的快捷方式
# 4096表示文件大小
# Mar 23 03:53 表示最后一个的更改时间

# 所以这个结果表示ahua用户对Desktop文件夹有读写执行权限,ahuagroup这个用户组里面的用户对Desktop文件夹有读和执行权限,其他的的用户对Desktop文件夹有读和执行权限

第一个字符表示文件类型,linux下文件类型有

文件类型释义
d目录
-文件
l链接文档(link file)
b装置文件里面的可供储存的接口设备(可随机存取装置)
c表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

linux中拥有最大权限的用户是root,正常登录的都是普通用户,普通用户除了自身的home目录外其他路径下大部分都只有只读和执行权限

系统不仅可以包含不同的用户,还可以包含不同的用户组

创建用户组

groupadd 用户组名

删除用户组

groupdel 用户组名

创建用户

useradd [-g -d] 用户名
# -g	可选	指定用户的组,不指定会默认创建一个和用户同名的用户组
# -d	可选	指定用户HOME路径,不指定HOME路径默认在:/home/用户名

删除用户

userdel	[-r] 用户名
# -r	可选	删除用户的HOME路径,不指定默认保留

查看用户所属组

id	[用户名]
# 用户名表示要查看的用户,不指定默认查看当前用户所属的用户组

修改用户组

usedmod -aG 用户组 用户名
# 指定用户加入用户组

查看系统所有用户信息

getent passwd
# root:x:0:0:root:/root:/bin/bash
# 结果会展示7种信息,分别是
# 用户名:密码(不会明文展示所以用x代替):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)

查看系统所有用户组信息

getent group
# ahua:x:1000:
# 结果会展示3种信息,分别是
# 用户组名:组认证:用户组ID
(1)su

su命令用于系统用户切换

su -用户名
# -		可选		有-表示在切换用户之后加载环境变量
# 用户名	可选		表示要切换到的用户,不填默认切换到root用户
# 使用root用户切换到任何用户都不需要密码,普通用户切换到其他用户,如root用户,需要输入密码
exit 
# 回退到上一个用户
(2)sudo

sudo 可以为普通命令赋权,临时以root用户身份执行,如通过sudo su可以切换到root用户,而不需要输入密码

但并不是所有用户都可以使用sudo,普通用户使用sudo需要为其配置sudo认证

# 为普通用户配置sudo认证

# 1、切换到root用户
su -root
# 2、执行visudo(会打开/etc/sudoes)
visudo
# 3、给用户ahua添加sudo权限,同时不需要输入密码
ahua	ALL= (ALL)	NOPASSWD:ALL
(3)chmod

更改文件权限

sudo chmod [-R] mode 路径(文件夹或文件)
# -R 可选 表示对目前目录下的所有文件和子目录以递归的方式逐个变更权限
# mode 必选用于设置该文件拥有的权限

sudo chmod u=rwx,g=rx,o=x index.html
# 将index.html文件权限设置为所属用户可以读写执行,所属用户组用户可以读和执行,其他用户可以执行 

sudo chmod -R 751 index.html
# 八进制写法
# 将index.html文件权限设置为所属用户可以读写执行,所属用户组用户可以读和执行,其他用户可以执行 

具体用户和权限信息可以看这里有详细介绍 https://www.runoob.com/linux/linux-comm-chmod.html

(4)chown

更改文件所有者和所属用户组

chown [-R] [用户]:[用户组] 文件路径
# -R 可选 是否对文件夹中所以文件执行该操作
# :	用户分隔用户和用户组
chown root:root /tmp/tmp1
# 把tmp1的所有者改为root,用户组改成

9 查找

(1)find

用于在指定目录下搜索文件,并返回满足条件的文件列表

find+[路径]+[参数] 

find /home/ahua -name index.txt	# 在/home/ahua 目录下查找文件名为index.txt的文件
find /home -user root			# 在/home目录下查找用户为root的文件	
find /home -group nvidia		# 在/home目录下查找用户组为nvidia的文件	
find /home -user root -a -group nvidia	# 在/home目录下查找用户组为nvidia用户为root的文件
find /home -name ’ahua’ -o -name ryan	# 在home目录下查找名称为ahua或者名称为ryan的文件
find /home -not -name ahua		# 在/home目录下查找名称不为ahua的文件
find /home -size 20k			# 在/home目录下查找大小为20k的文件
find /home -type f				# 在/home目录下查找所有普通文件
find /hmoe -perm	777			# 在home目录下查找文件权限为777的文件
find /ahua -type f -name "*.txt" -delete	#删除home目录下所有后缀为.txt的普通文件
find / -name *xxx*.c 			# 模糊查找下这个文件	

-name           #文件名
-not            #非,取反
-a              #并且关系
-o              #或者关系
-group          #文件所有组
-user           #文件所有人
-size		#文件大小
    b —— 块(512字节)
    c —— 字节
    w —— 字(2字节)
    k —— 千字节
    M —— 兆字节
    G —— 吉字节
-type		#文件类型
     f        #普通文件
     d        #目录
     b        #块设备
     s        #套接字
     c        #字符设备
     l        #链接
     p        #管道
-perm		#文件权限
	-perm  444       #查找文件权限
	-perm  -444      # -表示并且;查找文件权限中u位有r权限,并且g位有r权限,并且o位有r权限的文件
	-perm  /444      # /表示或者;查找文件权限中u位有r权限,或者g位有r权限,或者o位有r权限的文件
	-perm  /777      # 777=rwx rwx rwx 即9个条件中满足任意一个即可
(2)which

which 命令用于定位可执行文件的位置。它会搜索系统的路径环境变量中是否存在指定的可执行文件,并返回该文件所在的完整路径。

which python	# 在系统的路径环境变量中搜索python可执行文件,并返回其完整路径
which -a python	# 如果系统中存在多个同名的可执行文件,which命令会返回第一个搜索到的文件路径。-a参数会返回所有匹配的可执行文件路径
(3)whereis

用于查找二进制、源代码和帮助文档等文件,它会在特定的目录中进行搜索,并返回相应文件的位置

whereis python	# 上述命令会在默认的二进制文件搜索路径中查找python,并返回该文件所在的位置
(4)which、whereis、find区别

which 命令用于定位可执行文件,适合查找系统中某个特定命令的位置。命令简单易用,但只能定位可执行文件
whereis 命令用于查找二进制、源代码和帮助文档等文件,可用于查找特定文件类型所在的位置。命令功能更丰富,能够查找多种类型的文件,但搜索范围有限
find 命令用于在指定目录下搜索文件,适用于查找满足条件的文件。命令灵活强大,可以根据多种条件进行搜索,但速度较慢

10 过滤、统计

(1)grep

grep命令可以通过关键字进行查找

grep [-n] 关键字  路径

-n	 	可选 	显示结果中匹配的行号
关键字	必填		表示过滤的关键字,带有空格或者特殊符号需要用""
文件路径	必填		表示需要过滤的路径
(2)wc

wc命令可以统计文件的行数,单词数量等

wc [-c -m -l -w] 文件路径
-c	可选		统计bytes数量
-m	可选		统计字符数量
-l	可选		统计行数
-w	可选		统计单词数量
文件路径	必选		被统计的文件
(3)管道符 |

管道符的作用是将左边命令的结果作为右边的输入

# 现在有个文件名为ahua.txt  内容如下
name:ryan
age:18

grep name ahua.txt
# name:ahua
cat ahua.txt |grep name
# name:ahua
# 将左边cat ahua.txt的结果作为grep的输入 相当于 grep name ahua.txt 

# 管道符左边的命令没有任何限制 ls、cat、wc等都可以作为管道符的左边的输入
cat ahua.txt |grep wc -l
# 2 

11 打包压缩

目前主流的压缩包格式主要有以下几种
zip:Windows、MacOS、Liinux常用
7zip:Windows常用
rar:Linux常用
tar:Linux、MacOS常用
gzip:Linux、MacOS常用

(1)tar

tar可以将Linux下多个文件或者文件夹打包成一个文件,并没有太大文件体积的变化,只是简单的封装,打包后的文件支持多种压缩格式

# 独立命令,tar命令时必须使用一个
-c: 压缩模式,用于创建压缩文件
-x:解压模式,用于解开压缩文件
-t:查看内容 
-r:向tar包末尾追加文件 
-u:更新原tar包中的文件
# 根据压缩或者解压等过程的需要使用
-z:使用gzip进行压缩或者解压,不使用就是普通的tar包
-j:通过 xz压缩或解压。
-Z:有compress属性的 
-v:显示所有过程 
-C:选择解压后的目的地
-O:将文件解开到标准输出 
# 必选命令
-f: 这是最后一个参数,指定打包后的文件名

示例

tar -xvf FileName.tar         # 解包
tar -cvf FileName.tar DirName # 将DirName打包成FileName.tar
tar -cvf fileName.tar *.txt	  # 将当前目录下所有.txt文件打包成fileName.tar文件
tar -rf fileName.tar  file.txt # 向fileName.tar包中添加file.txt
tar -tf fileName.tar		# 列出fileName包中的所有文件
tar -uf fileName.tar file.txt # 更新包中的file.txt文件
(2)gzip

使用gzip算法将文件压缩到一个文件内,可以极大的减小压缩后的体积
gzip格式压缩

gzip -d FileName.gz	# 压缩
gunzip FileName.gz	# 解压

tar打包后压缩

tar -czvf FileName.tar.gz *.jpg				# 将所有 .jpg 的文件打成一个 tar 包,并用 gzip 压缩,包名为 FileName.tar.gz
tar -zxvf FileName.tar.gz               # 将上面产生的包解开
(3)bzip2

bz2格式压缩

bzip2 -d FileName.bz2 	# 压缩
bunzip2 FileName.bz2	# 解压

tar打包后压缩

tar -cjvf FileName.tar.bz2 *.jpg		# 将所有 .jpg 的文件打成一个 tar 包,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,包名为 FileName.tar.bz2
tar -jxvf FileName.tar.bz2              # 将上面产生的包解开
(4)zip
unzip FileName.zip          # 解压缩
zip FileName.zip DirName    # 将DirName压缩成FileName.zip
zip -r FolderName.zip FolderName	# 将FolderNmae目录下所有文件打包压缩成FolderName.zip
(5)rar
rar a fileName *.jpg 	# 将所有 .jpg 的文件压缩成一个 rar 包,名为 all.rar  .rar 扩展名将自动附加到包名后
rar x FileName.rar      # 将 FileName.rar 中的所有文件解压出来

三、系统管理

1 网络配置

(1)ifconfig

ip配置
在这里插入图片描述
上图表示该设备主网卡名字叫ens33,inet表示设备的ip地址;lo表示本地回环的网卡;

(2)netstat

端口是设备与外界通讯的出入口,端口可以分为物理端口和虚拟端口
物理端口: 常见的有USB接口,RJ45网口,HDMI端口等
虚拟端口: 指计算机内部的端口,通常是不可见的,操作系统用来和外部交互使用

虽然计算机之间的通信是通过ip地址来进行识别的,但是计算机内可能运行了很多多程序,如果两个计算机之间的程序通信,除了需要需要IP地址来找到对方主机,还需要一个端口来识别具体的程序

Linux中共支持65536个端口,他们分为3类
公共端口: 1~1023,通常为系统内置程序使用,如ssh的22端口,https服务的443端口
注册端口: 1024~49151,一般随意使用,用来绑定一些程序和服务
动态端口: 49152~65535,通常不会和程序绑定,当程序访问外部网络时临时使用

netstat -ltunp

-a:查看所有连接
-c:持续列出网络状态
-e:显示网络其他相关信息
-g:显示多重广播功能群组组员名单。
-i:显示网络界面信息表单
-l:显示监控中的服务器的SOCKET
-n:直接打印连接的IP地址与端口信息
-p:显示正在使用SOCKET的程序识别码和程序名称
-r:显示路由信息
-s:显示网络工作信息统计表
-t:显示TCP传输协议的连线状况
-u:显示UDP传输协议的连线状况
-v:显示指令执行过程
-w:显示RAW传输协议的连线状况
-F:显示FIB
-C:显示路由器配置的快取信息
-A:列出该网络类型连线中的相关地址
-N:显示网络硬件外围设备的符号连接名称
-M:显示伪装的网络连线

2 网络传输

(1)ping

检查主机到指定的网络服务器是否联通

ping [-c num] ip/主机名
# -c 可选 后跟数字表示指定命令的执行次数,不选默认无限次数执行
ping www.baidu.com
# 虽然ping命令中写的是百度的域名但是实际ping的是ip地址
(2)wget

非交互式的文件下载工具,联网后可以在命令行中进行下载文件

wget [-b] url
# -b 可选 后台下载,不会在终端展示下载过程,会将下载日志记录到当前工作目录的wget-log文件中	
# url 必选 下载链接

tail -f wget-log
# 查看下载进度
(3)curl

可以用来发送http网络请求,用于下载文件,获取信息等

通过curl向某个网站发送请求类似通过浏览器打开一个网页,都是发送请求,只不过浏览器会将收到的请求渲染成可视化的页面,而curl之后请求到源码,不进行展示

curl cip.cc
# 向cip.cc发起网络请求 
# cip.cc网站会返回主机的ip地址


curl [-O] url
# -O 可选 用于下载文件,当url是下载链接是使用-O来保存文件

3 磁盘

(1)df

磁盘空间占用

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
df [参数] [目录或文件名]
df -h	 # 将系统内所有的文件系统容量结果以易读的容量格式显示出来
df / 找出系统中根目录所在磁盘和该硬盘内的相关信息
(2)du

文件和目录的磁盘空间占用

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
du	# 列出当前目录下的所有文件夹容量
(3)fdisk、mkfs

磁盘分区、格式化

fdisk [-l] [装置名称]
# fdisk -l 表示把整个系统内能够搜寻到的装置的分区均列出来。

mkfs [-t 文件系统格式] 装置文件名
mkfs -t ext3 /dev/hdc6		# 将分区 /dev/hdc6格式化为 ext3 文件系统
(4)mount

磁盘挂载、卸除

mount /mnt/hdc6  /ahua # 将/ahua 挂载到 /mnt/hdc6 上面

umount /dev/hdc6   

4 进程管理

程序在运行中是被操作系统管理的,每个程序运行时操作系统会将其注册为一个进程,并为其分配一个独有的进程id(进程号)

(1)systemctl

服务管理
Linux中很多内置或者一些第三方软件均支持使用systemctl命令来进行启动、暂停或者开机自启的控制,被systemctl管理的软件一般被称为服务

# 1、启动服务
systemctl start 服务名
# 2、关闭服务
systemctl stop 服务名
# 3、查看服务状态
systemctl status 服务名
# 4、设置服务在系统启动时自动运行
systemctl enable 服务名
# 5、设置服务在系统启动时不会运行
systemctl disable 服务名
(2)ps

查看进程信息

ps 
# -e选项 显示系统所有进程,不仅仅是当前终端会话的进程
# -f选项 使用全格式显示进程信息,包括父进程ID(PPID)、进程状态、CPU使用率(%CPU)、内存使用率(%MEM)等
# -l选项 显示长格式的进程信息,例如进程命令行、进程状态(S)、进程的会话ID(SID)等
# -u选项 显示与指定用户相关的进程信息,可以通过指定用户名来限制显示的进程列表。
# -p选项 显示指定进程ID的进程信息
# -o选项 自定义输出格式,自定义显示的列和排序方式

常用ps命令

命令作用
ps -p 1234查看进程号为1234的进程信息
ps -u ahua查看用户ahua的所有进程信息
ps --sort=-%cpu按照cpu递减的顺序显示进程信息
ps -ef查看全格式的全部进程
ps -aux查看全部用户的进程
ps -ef --forest以树形结构显示进程和它们的父进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem显示进程ID、父进程ID、命令行、内存使用率和CPU使用率,并按内存使用率降序排序

在这里插入图片描述
结果解释:

名称含义
UID表示进程的所有者用户,表示这些进程都是以root用户身份运行
PID用于唯一标识每个正在运行的进程
PPID表示进程的父进程
C进程的CPU占用率,(百分比)
STIME这是进程的启动时间
TTY启动此进程的终端信息,?表示非终端启动
TIME进程的运行时间
CMD是进程的启动路径或者启动命令
(3)kill

关闭进程

kill 进程ip
# 会先向进程发送信号要求其关闭,具体关闭情况看进程的自身处理逻辑
kill -9 进程id
# 强制关闭进程
(4)ldd

查看可执行程序依赖的动态库

ldd 可执行程序
  • 删除进程锁
E: Could not get lock /var/lib/apt/lists/lock. It is held by process 4452 (apt-get)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to lock directory /var/lib/apt/lists/

sudo rm /var/lib/apt/lists/lock
(5)date

查看时间

date  [+格式化字符串]
# 格式化字符串 可选 通过特定的字符串标记来展示日期
date +%Y-%m-%d-%H-%M-%S
# 2024-06-16-10-31-03

主要的格式化字符串标记有

字符串标记含义示例
%Y2024
%y年份后两位数字00~99
%m月份01~12
%d01~31
%H小时00~23
%M分钟00~59
%S00~59
%s自1970-01-01 00::00:00 UTC至今的秒数1718559003
(6)ln

软连接类似windows中的快捷方式,在本体不变的情况下创建一个快捷方式,这个快捷方式指向原文件/原文件夹

ln -s target source

# 将路径/usr/local下的openssl链接到/usr/bin下
ln -s /usr/local/openssl  /usr/bin
(7) 环境变量

linux操作系统中的命令实际上就是一个个可执行程序,如cd命令的可执行程序就是/usr/bin/cd

定义:
环境变量是在操作系统运行的时候,记录一些关键信息用来辅助系统运行,

linux中通过env指令可以查看当前系统中记录的环境变量,环境变量是KeyValue形结构

设置环境变量

1、临时生效

# export 变量名=变量值
export PATHNAME=ahua

# 获取变量值
echo $PATHNAME
# ahua

2、永久生效

# 1、在/etc/profile文件中添加变量【对所有用户生效(永久的)】
vim /etc/profile
# source profile 文件后生效
source /etc/profile

# 2、在用户目录下的~/.bashrc文件中增加变量【对单一用户生效(永久的)】
~/.bash_profile
# source .bashrc 文件后生效
source ~/.bashrc

自定义PATH
环境变量PATH中记录了系统执行命令的搜索路径,用户也可以自己增添

export PATH=$PATH:/home/ahua/ryan/test_my_env
# 定义一个环境变量名叫PATH,他的值是之前的PATH结果后面加上/home/ahua/ryan/test_my_env目录

5 系统资源占用

(1)top命令详解

top命令可以查看系统资源的CPU、内存等资源占用情况,间隔5s刷新一次,类似Windows的任务管理器
在这里插入图片描述
第一行:

内容解释
top命令名称
05:21:12当前系统时间
up系统启动至今运行时间
1 user1个用户登录
load average1min内、5min内、15min内平均负载

第二行:

内容解释
Task当前系统中有282个进程
1 running有一个进程正在运行
281 sleeping有282个进程正在睡眠
0 stoped0个进程停止工作
0 zombie0个僵尸进程

第三行:

内容解释
%Cpu(s)CPU使用量率
us用户进程cpu使用率
sys系统进程CPU使用率
ni高优先级进程占用时间比
idCPU空闲率
waIO等待CPU占用率
hiCPU硬件中断率
siCPU软件中断率
st强制等待占用CPU率

第四、五行:

内容解释
Kib Mem物理内存
Total总量
free空闲
used使用
buffer/cachebuffer和cache占用
KibSwap虚拟内存(交换空间)
(2)top命令内容详解
内容含义
PID进程id
USER所属用户
PR进程优先级
NI负值表示优先级高,正值表示优先级低
VIRT进程使用的虚拟内存,单位KB
RES进程使用的物理内存,单位KB
S进程状态(S休眠、R运行、Z僵尸状态、N负数优先级、I空闲状态)
%CPU进程CPU占用率
%MEM进程内存占用率
TIME+进程使用CPU时间总计,单位10ms
(3)top命令参数

top命令支持多个参数可选

参数作用示例
-p只显示某个进程的信息top -p 39283
-d设置刷新时间,单位stop -d 1
-c展示进程产生的完整命令(默认展示进程名)top -c
-n指定刷新次数,刷新指定次数后退出top -n 3
-b以非交互式运行,一般配合-n来将指定几次的top刷新结果重定向到文件中top -b -n 10> top.log
-i不显示无用或者闲置的进程top -i
-u展示指定用户启动的进程top -u root
(4)top交互式选项
按键作用
h键显示帮助页面
c键展示进程产生的完整命令(默认展示进程名)
f键选择需要展示的项目,空格键切换选中/取消,q键退出
M键根据内存使用大小排序
m键切换进程显示内存信息
P键根据CPU占用大小排序
T键根据启动时长进行排序
E键切换顶部内存显示单位
e键切换进程信息内存显示单位
l键切换平均负载和启动时间信息
i键不显示闲置或者无用进程
t键切换显示cpu状态信息

四、应用程序安装、卸载

常见软件安装包类型
Windows:.exe
Mac:.pkg
Linux(CentOS):.rpm
Linux(Ubantu):.deb

(1)源码安装
 1. cd 程序源码文件夹
 2. sudo ./configure      # sudo ./configure --prefix=/usr  配置安装目录
 3. sudo make
 4. sudo make install 

2中的注释表示将该软件安装在 /usr 下面,其执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)

(2)卸载
 1. cd 程序源码目录
 2. sudo make uninstall
(3) apt-get 在线安装
1. 更新源安装包信息
sudo apt-get update

2. 升级软件包到最新版本
sudo apt-get upgrade

3. 安装、卸载、搜索软件
sudo apt-get [-y] install|remove|search [-purge] 软件名
# -y 可选 是否自动确认,选择后无需手动确认直接安装 
# -purge 可选 是否删除该软件遗留在系统中的配置文件
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值