文章目录
前言
前面我们学习了 Linux 的基本操作和 Linux 的用户的权限,那么今天我将为大家分享关于 Linux 的众多实用操作。
1.Linux常用快捷键
1.1 CTRL + c 强制停止
- 使用 CTRL + c 可以强制停止某些程序的运行
- 使用 CTRL + c 可以退出当前输入,重新输入
使用
tail
命令会使终端处于等待状态,CTRL + c 可以结束等待状态。
如果我们输入错误或者不想执行输入的命令,可以直接 CTRL+ c 退出当前输入,重新输入。
1.2 CTRL + d 退出
- 使用 CTRL + d 可以退出当前的账户登录,回到上一个登陆的用户
- 使用 CTRL + d 可以退出某些特定的界面
退出当前的 root 登录用户,回到上次登录的 handsome 用户。
退出当前的 python 界面。
1.3 历史命令搜索
历史命令搜索有多种方式:
- history 查看历史命令
- !命令前缀,自动执行上一次匹配前缀的命令
- CTRL + r 输入内容匹配历史命令
使用
history
可以查看历史输入的命令。
也可以搭配管道符进行过滤使用。
!命令前缀,自动执行上一次最近的匹配前缀的命令。
CTRL + r,输入内容进行历史命令的搜索
如果搜索到的内容是你想要的:
- 回车键可以直接执行该命令
- 键盘左右键可以得到该命令但不执行
CTRL + r
->
ls
-> enter
1.4 光标移动
- ctrl + a ,跳到命令开头
- ctrl + e ,跳到命令结尾
- ctrl + 键盘左键,向左跳一个单词
- ctrl + 键盘右键,向右跳一个单词
1.5 清屏
- CTRL + l 快捷键清屏
- clear 命令清屏
2.软件安装
- Linux CentOs 版本中使用
yum
进行软件的安装 - Linux Ubantu 版本中使用
apt
进行软件的安装
yum [-y] [install | remove | search] 软件名称
apt [-y] [install | remove | search] 软件名称
- 选项:-y,表示无需手动确认安装或者是删除软件
- install:安装
- remove:卸载
- search:查找
使用
yum
或者
apt
命令需要
root
权限,可以切换到 root 用户或者使用
sudo
提权,并且需要联网。
sudo yum -y remove wget
删除
wget
sudo yum -y install wget
下载
wget
sudo yum -y search wget
查看
wget
3.systemctl 命令
Linux 很多内置和第三方软件都支持使用
systemctl
命令控制启动、停止、开机自启。这种能过够被
systemctl
控制的软件,一般也被称为服务。
systemctl start | stop | enable | disable 服务名
- start 启动
- stop 停止
- enable 开启开机自启
- disable 关闭停止开机自启
4.软链接
4.1 什么叫做软链接
Linux软链接,也称为符号链接,是Linux系统中的一种特殊文件类型。它是一个指向另一个文件或目录的文件,类似于Windows系统中的快捷方式。
软链接可以跨越文件系统,可以指向任何类型的文件或目录,包括硬链接、设备文件等。它们是通过路径名来引用的,并且可以在不同的目录下创建。
4.2 如何创建软链接
ln -s 参数1 参数2
- 选项:-s,表示创建软链接
- 参数1,表示被链接的文件或文件夹
- 参数2,表示要链接去的目的地
我们在这里创建一个要链接去的文件,并写入内容。
touch /home/handsome/test.txt
vim /home/handsome/test.txt
ln -s test.txt test1.txt
cat test1.txt
这里需要保证被链接去的文件不存在,当你执行完这个命令的时候,它会自己创建
5.日期、时区
5.1 显示时间
在 Linux 中,可以使用
data [-d] [+格式化字符串]
来查看时间。
- 选项:-d,按照给定的字符串显示日期,通常用作日期的计算
- 格式化字符串:通过特定的字符串标记,来控制日期的显示格式
- %Y 年
- %y 年份后两位数字 (00…99)
- %m 月份 (01…12)
- %d 日 (01…31)
- %H 小时 (00…23)
- %M 分钟 (00…59)
- %S 秒 (00…60)
- %s 自 1970-01-01 00:00:00 UTC 到现在的秒数
date
不加任何选项。
date
添加格式化字符串选项。
注意:如果格式化字符串的中间有空格的话,需要使用双引号将格式化字符串包裹起来
日期计算:今年的前一年
date -d"-1 year" "+%Y-%m-%d %H:%M:%S"
- year 年
- month 月
- day 天
- hour 小时
- minute 分钟
- second 秒
5.2 修改时区
①
虽然可以显示出来时间了,但是我们可以发现,显示出来的时间跟我们现实中的时间是有差别的。这是因为时区的问题,我们使用的时区应该是东八区,Linux 默认的时区是 UTC(协调世界时),所以我们需要更改时区。
使用
root
用户执行下面的命令。
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
这里显示的就是东八区的时间了。
②
**我们还可以使用
ntp
程序自动校准系统时间**
使用
ntp
需要安装
ntp
yum -y install ntp
启动
ntp
并设置开机自启
systemctl start ntp
systemctl enable ntp
这里我就不给大家演示了,大家可以自己去试试。这个操作需要我们在 root 用户下使用。
③
手动校准。通过阿里云提供的服务网址,搭配
ntp
手动校准时间。同样这个操作也需要在 root 用户下使用。
ntpdate -u ntp.aliyun.com
6.IP 地址、主机名
6.1 什么是IP地址
IP地址(Internet Protocol Address)是用于在网络通信中标识和定位设备的数字标识符。它是网络通信中数据包传输的基本单位,类似于每个设备在网络中的住所。IP地址用于识别设备(如计算机、手机、路由器等)以及设备之间的通信。
IP地址通常由32位(IPv4)或128位(IPv6)的二进制数字组成。为了方便使用和理解,IP地址通常被表示为由四个数字组成的十进制格式(IPv4),每个数字范围从0到255,以点分隔(例如:192.168.0.1),或者以16位的十六进制表示(IPv6)。
IP地址中的每个设备都具有唯一的地址,这使得数据包能够在网络中正确地发送到目标设备。IP地址分为两个主要部分:网络部分和主机部分。网络部分标识网络的身份,而主机部分标识网络中的具体设备。
IPv4是目前广泛使用的 IP 地址版本,但由于互联网的发展和设备增加,IPv6逐渐得到推广,以获得更多的可用IP地址。IPv6提供了更大的地址空间,以满足未来互联网的需求。
我们可以通过
ifconfig
来查看自己电脑的 IP 地址。
我们还需要记住几个特殊的 IP 地址。
- 123.0.0.1 这个 IP 地址指代本机
- 0.0.0.0
- 可以指代本机
- 可以在端口绑定中确定绑定关系
- 在一些 IP 地址限制中,表示所有 IP 的意思,允许任意 IP 访问
6.2 什么是主机名
主机名(Hostname)是用于标识网络中的设备(主机)的名称。它是一个易于识别和记忆的字符串,用于代表设备在网络中的身份。
主机名通常用于局域网环境中或特定网络中,用于区分和识别连接到网络的各个设备。每个设备都应该有一个唯一的主机名,这样其他设备和网络服务可以准确地识别和寻址它们。
主机名可以是人为指定的,也可以是通过系统自动分配或生成的。通常,主机名由人为指定,并且可以基于设备的特征、位置或用途来命名。
6.3 如何修改 Linux 的主机名
在 Linux 中,可以使用
hostname
来查看主机名。
修改主机名,需使用
hostnamectl set-hostname 主机名
,并且这个命令需要 root 权限。
6.4 什么是域名
域名(Domain Name)是用于在互联网上标识和定位网站、服务器或其他网络资源的字符串。它提供了一个人类可识别的方式来访问网站和网络服务,将网络资源的 IP 地址映射到易记的名称。
域名通常由多个部分(标签)组成,这些部分之间由点号分隔。最右侧的部分被称为顶级域(Top-Level Domain,TLD),例如.com、.org、.net等。顶级域名称指示域名的分类或特定类型,例如商业网站(.com)、非营利组织(.org)等。
顶级域之前的部分称为二级域名(Second-Level Domain),例如example,以及在其之前的部分称为三级域名(Third-Level Domain),例如www。域名的层次结构可以根据需求和目的进行更深的扩展。
域名的作用是提供一个方便且易于记忆的方式来访问网络资源,避免人们直接使用 IP 地址来访问。它在用户体验、品牌建设和网站推广方面起到重要作用。
6.5 什么是域名解析
域名解析(Domain Name Resolution)是将域名(例如www.example.com)转换为相应的IP地址的过程。当用户在浏览器中输入一个域名时,操作系统会通过域名解析来确定该域名对应的服务器的IP地址,以建立与服务器的连接并获取所需的网页内容或其他网络资源。
域名解析是通过域名系统(Domain Name System,DNS)来完成的。DNS是一个分布式数据库系统,它存储了大量的域名与IP地址的映射关系。当用户输入一个域名时,操作系统会向本地DNS解析器发送一个DNS查询请求。本地DNS解析器首先会查看自己的缓存,如果之前已经解析过该域名,则直接返回缓存的IP地址。如果缓存中没有该域名的记录,本地DNS解析器将向根DNS服务器发送请求。
根DNS服务器会指示本地DNS解析器去查询顶级域名服务器(TLD DNS服务器),例如.com、.org等。顶级域名服务器记录着二级域名服务器(Authoritative DNS服务器)的地址。本地DNS解析器随后向相应的二级域名服务器发送查询请求,获得与域名对应的IP地址。最后,本地DNS解析器将结果返回给操作系统,使其能够建立与目标服务器的连接。
6.6 如何配置主机名映射
在 Windows 系统中,我们需要在
C:\Windows\System32\drivers\etc\host
中配置主机名映射,这样我们就可以通过主机名来访问本机的 IP 地址了。
6.7 如何在 VMware Workstation 中配置固定 IP
使用 vim 编辑
/etc/sysconfig/network-scripts/ifcfg-ens33
文件
7.网络传输
7.1 ping 命令
使用
ping [-c num] ip或主机名
检查指定的网络服务是否是可联通状态
- 选项:-c,表示检查的次数,如果不指定次数,将会无限次数检查下去
查看
baidu.com
是否是可联通状态。
7.2 wget 命令
wget
是非交互式的文件下载器,可以在命令行内下载网络文件。
wget [-b] url
- 选项:-b,表示是否是后台下载,会将日志写入到当前工作目录的 wget-log 文件
- 参数:url,下载链接
如果你选择后台下载,可以使用
tail -f wget-log
来监控下载进度。
注意:无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。
7.3 curl 命令
curl 命令可以发送 http 网络请求,可用于:下载文件和获取信息等。
curl [-O] url
- 选项:-O,用于下载文件,当 url 是下载链接时,可以使用此选项保存文件
向
jetbrains.com
发送请求
下载 IDEA 的 zip 包。
curl -O https://download.jetbrains.com.cn/idea/ideaIU-2023.2.win.zip
7.4 什么是端口
在计算机网络中,端口(Port)是用于标识特定应用程序或服务的数字标识符。它在网络通信中扮演着重要的角色,帮助确定数据包应该被发送到哪个应用程序或服务上。
在传输层协议(如TCP和UDP)中,端口号是一个16位的数字,范围从0到65535。其中,0到1023之间的端口号被称为"Well-Known Ports",用于一些广泛应用的标准服务,例如HTTP(端口80)、FTP(端口21)、SSH(端口22)等。
端口号通过网络协议栈中的传输层协议来进行使用。当设备接收到网络数据包时,传输层会根据目标端口号将数据包传递给相应的应用程序或服务。类似于门牌号码,端口号帮助网络设备在同一台主机上的多个应用程序之间区分和定位数据包。
例如,当您在浏览器中访问一个网站时,浏览器使用HTTP的默认端口号80来与目标服务器进行通信。而当您通过SSH远程登录到一台服务器时,SSH协议使用默认的端口号22来与服务器进行通信。
- 公认端口: 1 ~ 1023 ,通常用于一些系统内置或知名程序的预留使用,如 SSH 服务的 22 端口, HTTPS 服务的443 端口非特殊需要,不要占用这个范围的端口
- 注册端口: 1024 ~ 49151 ,通常可以随意使用,用于松散的绑定一些程序 \ 服务
- 动态端口: 49152~65535 ,当程序对外进行网络链接时,用于临时使用。
7.5 查看端口占用
使用
nmap 被查看的 IP 地址
查看端口的占用情况。
nmap 需要下载,
sudo yum -y install nmap
nmap 127.0.0.1
查看本机端口的占用情况
**使用
netstat
查看端口的占用情况**
netstat -anp
,使用 netstat 也需要下载
sudo yum -y install net-tools
当我们使用
netstat -anp
之后,我们会发现出现了很多的内容,所以需要使用管道符来过滤内容。
8.进程管理
8.1 什么是进程
进程(Process)是计算机中正在运行的程序实例。它是操作系统进行任务管理和资源分配的基本单位。每个进程都有自己的内存空间和执行上下文,包括指令、数据、堆栈、文件描述符等。
在操作系统中,进程可以同时运行多个程序,并且每个程序都以独立的进程存在。每个进程都被分配一个唯一的进程标识符(Process Identifier,PID),用于在进程间进行识别和管理。
如果大家想要深入了解进程,大家可以看看我的这两篇文章进程、多线程。
8.2 查看进程
ps [-e -f]
来查看 Linux 的进程信息。
- 选项:-e,显示出全部的信息
- 选项:-f,以完全格式化的形式展现信息
ps -ef
- UID :进程所属的用户 ID
- PID :进程的进程号 ID
- PPID :进程的父 ID (启动此进程的其它进程)
- C :此进程的 CPU 占用率(百分比)
- STIME :进程的启动时间
- TTY :启动此进程的终端序号,如显示 ? ,表示非终端启动
- TIME :进程占用 CPU 的时间
- CMD :进程对应的名称或启动路径或启动命令
如果我们直接使用
ps -ef
的话,会出来很多的信息,所以我们需要使用管道符过滤一下。
8.3 关闭进程
Linux 中,可以使用
kill
关闭进程。
kill [-9] 进程ID
- 选项:-9,表示强制关闭,如果不使用强制关闭的话,进程可能不会关闭。
如果结束进程失败的话,可能需要使用更高的权限,也就是
root
用户。
9.主机状态
9.1 查看系统资源调用
可以通过
top
命令查看 CPU 、内存使用情况,类似 Windows 的任务管理器。默认每五秒刷新一次,可以使用
q
或者
CTRL + c
退出。
- top:命令名称, 20:11:27:当前系统时间, up 2:39:启动了 2分29秒, 3 users:3 个用户登录, load:1 、 5 、15 分钟负载
- Tasks : 201 个进程, 3 running : 3 个进程子在运行, 198 sleeping : 198 个进程睡眠, 0 个停止进程, 0 个僵尸进程
- %Cpu(s) : CPU 使用率, us :用户 CPU 使用率, sy :系统 CPU 使用率, ni :高优先级进程占用 CPU 时间百分比, id :空闲 CPU 率, wa : IO 等待CPU 占用率, hi : CPU 硬件中断率, si : CPU 软件中断率, st :强制等待占用 CPU 率
- Kib Mem :物理内存, total :总量, free :空闲, used :使用, buff/cache : buff 和 cache 占用
- KibSwap :虚拟内存(交换空间), total :总量, free :空闲, used :使用, buff/cache : buff 和 cache 占用
- PID :进程 id
- USER :进程所属用户
- PR :进程优先级,越小越高
- NI :负值表示高优先级,正表示低优先级
- VIRT :进程使用虚拟内存,单位 KB
- RES :进程使用物理内存,单位 KB
- SHR :进程使用共享内存,单位 KB
- S :进程状态( S 休眠, R 运行, Z 僵尸状态, N 负数优先级, I 空闲状态)
- %CPU :进程占用 CPU 率
- %MEM :进程占用内存率
- TIME+ :进程使用 CPU 时间总计,单位 10 毫秒
- COMMAND :进程的命令或名称或程序文件路径
top命令也可使用选项
- -p:只显示某个进程的信息
- -d:设置刷新时间,默认是5s
- -c:显示产生进程的完整命令,默认是进程名
- -n:指定刷新次数,比如 top -n 3,刷新输出3次后退出
- -b:以非交互非全屏模式运行,以批次的方式执行top,一般配合 -n 指定输出几次统计信息,将输出重定向到指 定文件,比如top -b -n 3 > /tmp/top.tmp
- -i:不显示任何闲置(idle)或无用(zombie)的进程
- -u:查找特定用户启动的进程
top命令也可实现交互式
- h 键:按下h键,会显示帮助画面
- c 键:按下c键,会显示产生进程的完整命令,等同于-c参数,再次按下c键,变为默认显示
- f 键:按下f键,可以选择需要展示的项目
- M 键:按下M键,根据驻留内存大小(RES)排序
- P 键:按下P键,根据CPU使用百分比大小进行排序
- T 键:按下T键,根据时间/累计时间进行排序
- E 键:按下E键,切换顶部内存显示单位
- e 键:按下e键,切换进程内存显示单位
- l 键:按下l键, 切换显示平均负载和启动时间信息。
- i 键:按下i键, 不显示闲置或无用的进程,等同于一工参数, 再次按下,变为默认显示
- t 键:按下t键,切换显示CPU状态信息
- m 键:按下m键, 切换显示内存信息
9.2 磁盘信息监控
使用
df
命令,可以查看硬盘的使用情况
df [-h]
- 选项:-h,显示单位
**也可以使用
iostat
查看 CPU、磁盘的相关信息**
iostat [-x] [num1] [num2]
- 选项:-x,显示更多信息
- num1,刷新间隔
- num2,刷新次数
iostat -x 3 3
每三秒刷新一次,共刷新三次
- rrqm/s : 每秒这个设备相关的读取请求有多少被 Merge 了(当系统调用需要读取数据的时候, VFS 将请求发到各个 FS ,如果 FS 发现不同的读取请求读取的是相同 Block 的数据,FS 会将这个请求合并 Merge, 提高 IO 利用率 , 避免重复调用);
- wrqm/s : 每秒这个设备相关的写入请求有多少被 Merge 了。
- rsec/s : 每秒读取的扇区数;
- sectorswsec/ : 每秒写入的扇区数。
- rKB/s : 每秒发送到设备的读取请求数
- wKB/s : 每秒发送到设备的写入请求数
- avgrq-sz:平均请求扇区的大小
- avgqu-sz:平均请求队列的长度。毫无疑问,队列长度越短越好。
- await : 每一个 IO 请求的处理的平均时间(单位是微秒毫秒)。
- svctm 表示平均每次设备 I/O 操作的服务时间(以毫秒为单位)
- %util : 磁盘利用率
10.环境变量
10.1 什么是环境变量
在讲解 which 命令的时候,我们知道使用的一系列命令其实本质上就是一个个的可执行程序。
环境变量(Environment Variable)是操作系统或应用程序运行时可用的一组动态值。它们存储了有关系统环境和运行程序的重要信息,例如路径、配置参数、临时文件位置等。
环境变量的主要作用是为操作系统和应用程序提供灵活性和可配置性。通过使用环境变量,您可以动态地设置和调整各种参数,而无需修改或重新编译代码。这使得程序能够在不同的环境中灵活地运行,而无需对代码进行修改。
10.2 如何查看环境变量
在 Linux 中,可以使用
env
命令查看环境变量。
环境变量是以 key-value 型结构
在 Linux 中,无论在哪个工作目录下我们都能使用
cd
命令来切换工作目录,这归功于
PATH
项目中的值做到的。
路径之间以 : 隔开,当执行命令的时候,都会按照顺序,从上述路径中搜索要执行的程序的本体。
cd
命令就在
/usr/bin
路径下,所以当我们执行
cd
命令的时候。搜索到第二个路径就停止了。
10.3 $ 符号——取出变量的值
echo $PATH
当要取出的变量和其他内容混合在一起的时候,可以使用
{ }
来标注变量是谁。
echo ${PATH}ABC123
10.4 自行设置环境变量
在 Linux 中,可以使用
export
命令自行设置环境变量。
export 变量名 = 变量值
,并且这个设置分为临时设置和永久设置。
- 临时设置,语法: export 变量名 = 变量值
- 永久生效
- 针对当前用户生效,配置在当前用户的: ~/.bashrc 文件中
- 针对所有用户生效,配置在系统的: /etc/profile 文件中
- 并通过语法: source 配置文件,进行立刻生效
先创建一个文件夹,然后使用
vim
编辑器编辑文件内容。
临时设置环境变量
expot PATH=$PATH:/home/handsome/test
记住了我们要先执行文件程序,该文件程序的执行权限必须可读和可执行。
那么这里永久生效的环境变量,我就不给大家展示了,大家下去了可以自己去试试。
11.上传和下载
11.1 使用 FianlShell 下面的窗体直接进行数据的上传和下载
我们可以直接使用 FinallShell 与虚拟机之间进行资源的交换。
在 FinalShell 下面的文件中找到我们需要下载的文件,右键下载就可以了。
上传文件的时候,我们可以直接从我们本地电脑的桌面将文件给拖进来,它自己就会实现文件的上传。
11.2 使用rz、sz命令实现数据的上传和下载
除了使用下面的窗口之外,我们也可以使用命令来实现数据的上传和下载。
rz
命令,实现数据的上传。
sz 要下载的文件
命令实现数据的下载
sz /bin/abrt-action-analyze-backtrace
12.压缩和解压
现在有很多形式的压缩包形式,但是我们的 Linux 常用 tar 、 gzip 、 zip 这三种压缩格式。
12.1 tar 命令
12.1.1 tar 命令压缩
tar [-c -v -x -f -z -C] 参数1 参数2...参数N
- -c ,创建压缩文件,用于压缩模式
- -v ,显示压缩、解压过程,用于查看进度
- -x ,解压模式
- -f ,要创建的文件,或要解压的文件, -f 选项必须在所有选项中位置处于最后一个
- -z , gzip 模式,不使用 -z 就是普通的 tarball 格式
- -C ,选择解压的目的地,用于解压模式
虽然
tar
命令有这么多的参数,但是只需要记住几个组合就好了。
tar -cvf test.tar 1.txt 2.txt 3.txt
- 将1.txt 2.txt 3.txt 压缩到 test.tar 文件内
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
- 将1.txt 2.txt 3.txt 压缩到test.tar.gz 文件内,使用 gzip 模式
同时需要注意的是:
- -z 选项如果使用的话,一般处于选项位第一个
- -f 选项,必须在选项位最后一个,因为 -f 后面要接文件位置
tar -cvf test.tar 1.txt 2.txt 3.txt
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
通过比较,我们可以看出
gzip
压缩包要比
zip
压缩包大很多。
12.1.2 tar 命令解压
常用的 tar 解压组合有
- tar -xvf test.tar 解压 test.tar ,将文件解压至当前目录
- tar -xvf test.tar -C /home/handsome 解压 test.tar ,将文件解压至指定目录( /home/handsome)
- tar -zxvf test.tar.gz -C /home/handsome 以 Gzip 模式解压 test.tar.gz ,将文件解压至指定目录( /home/handsome)
注意:
- -f 选项,必须在选项组合体的最后一位
- -z 选项,建议在开头位置
- -C 选项单独使用,和解压所需的其它参数分开
这里解压我就不为大家演示了,大家有兴趣可以自己去试试。
12.2 zip 压缩和解压
12.2.1 zip 压缩
使用
zip [-r] 擦参数1 参数2...参数N
将文件压缩为 zip 压缩包
- 选项:-r,被压缩的包含文件夹的时候,需要使用 -r 选项
这里操作跟上面的 tar 效果类似,我就不过多展示了。
12.2.2 unzip 解压
unzip [-d] 参数
- 选项:-d,指定要解压去的位置,跟 tar 命令的 -C 选项类似、
unzip test.zip -d /home/handsome,将 test.zip 解压到指定文件夹内( /home/handsome)
赠书活动
本期为大家赠送的是《python之光》
- 参与方式:点赞+关注+评论:人生苦短,我爱python!!!每人最多评论三条
- 周四晚八点会为大家公布结果
- 500 - 1000 赠书两本
- 1000 - 1500 赠书三本
- 1500 - 2000 赠书四本
- 2000+ 赠书五本
版权归原作者 不能再留遗憾了 所有, 如有侵权,请联系我们删除。