本文摘自:《Linux入门教程(非常详细)从零基础入门到精通,看完这一篇就够了》、《文本编辑器vi/vim》
Liunx 一直是自己的短板,而且是相当短的版,但当看完以上文档后发觉似乎 Window 只是 Liunx 的去画面版,一切操作可以用 Window 的思维直接替换为代码语言实现
在此暂记所学,以便后期查阅!!!
目录介绍
/bin
是 binary 的缩写,目录存放着最经常使用的命令,该目录指向/usr/bin
/sbin
s 就是 super User 的意思,这里存放的是系统管理员使用的系统管理程序/home
存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一版该目录名是以用户的账号命名的/root
该目录为系统管理员,也称为超级权限者的用户主目录/lib
系统开机所需要最基本的动态连接共享库,其作用类似于 windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库/etc
所有的系统管理所需要的配置文件和子目录/usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program fies 目录/boot
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里/proc
这个目录是一个虚拟目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息/srv
service 缩写,该目录存放一些服务启动之后需要提取的数据/sys
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs/tmp
这个目录是用来存放一些临时文件的/dev
类似于 windows 的设备管理器,把所有的硬件用文件的形式存储。管理着所有设备,例如CPU、硬盘等等/media
Linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下,centos7 迁移到 /run/media/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在 /mnt 上,然后进入该目录就可以查看里面的内容了。和 media 差不多/opt
这是给主机额外安装软件所摆放的目录。比如你安装一个 mysql 数据库则就可以放在这个目录下。默认是空的/var
这个目录中存放着在不断扩充的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件/www
目录可以用于存储 Web 应用程序或网站文件,/www 目录没有特别的用途,它只是一个常规目录,可以根据需要进行使用和管理
vi / vim 编辑器
vim 是 vi 的升级版,几乎所有的 Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在
文本编辑器的作用
- 创建或修改文本文件
- 维护 Linux 系统中的各种配置文件
Linux 中最常用的文本编辑器
- vi:类UNIX操作系统的默认文本编辑器
- vim:vim是vi文本编辑器(一般简称为vi编辑器)的增强版本
vi 与 vim 的区别
- 多级撤销:在 vi 里,按 u 只可以撤销上次命令,但是在vim里面可以无限制撤销;
- 易用性:vi 只能运行于 Unix 中,而 vim 不仅可以运用于 Unix ,还可以运行于 Linux 、Windows 、mac 等多个操作平台;
- 语法加亮:vim 可以用不同的颜色来加亮你的代码;
- 可视化操作:vim 不仅可以在终端运行,还可以运行于 Windows 、Mac os 、Windows;
- 对vi完全兼容:某种情况下,你可以将 vim 当作 vi 来使用;
vi 编译器的工作模式
命令模式:
命令模式是启动 vi 后进入的工作模式,并可转换为输入模式和末行模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。如果输入的字符是合法的 vi 命令,则vi就会完成相应的动作;否则 vi 会响铃警告
输入模式:
文本编辑模式用于字符编辑。在命令模式下输入
i
(插入命令)、a
(附加命令)等命令后进入输入模式,此时输入的任何字符都被 vi 当作文件内容显示在屏幕上。按 Esc 键可从输入模式返回到命令模式末行模式:
在命令模式下,按
:
键进入末行模式,此时 vi 会在屏幕的底部显示:
符号年作为末行模式的提示符,等待用户输入相关命令。命令执行完毕后,vi 自动回到命令模式
[root@localhose ~]# // 用户 + @ + 主机名
// ~ 代表当前目录位置;
// # 代表管理员用户(普通用户是 `$` 符号);
命令模式 ——> a、i、o 等键 ——> 输入模式 ——> Esc 键 ——> 命令模式
命令模式 ——> : 等键 ——> 末行 ——> Esc 键 ——> 命令模式
命令模式基本操作:
操作类型 | 操作键 | 功能 |
---|---|---|
翻页移动 | Page Down 键或 Ctrl+F | 向下翻动一整页内容 |
Page Up 键或 Ctrl+B | 向上翻动一整页内容 | |
移动 | shift+6(^) | 移动到行头 |
shift+4($) | 移动到行尾 | |
1+shift+g | 移动到页尾 | |
#+shift+g | 移动到目标行 | |
行内快速跳转 | Home 键或 ^ 键、数字 0 键 | 跳转到本行的行首 |
End 键或 $ 键 | 跳转到本行的行尾 | |
行间快速跳转 | 1G 或 gg | 转到文件内容的第 1 行 |
G | 跳转到文件的最后一行 | |
#G | 跳转到文件中的第#行(其中 “#” 号用具体数字替换) | |
M | 跳转至当前页的中间位置 | |
L | 跳转至当前页的行尾位置 | |
H | 跳转至当前页的行首位置 | |
显示行号 | : set nu | 在编辑器中显示行号 |
: set nonu | 取消行号显示 | |
删除 | x 或 Delete 键 | 删除光标处的单个字符 |
dd | 删除当前光标所在行(有剪切功能) | |
#dd | 删除从光标处开始的 # 行内容 | |
d^ | 删除当前光标之前到行首的所有字符 | |
d$ | 删除当前光标处到行尾的所有字符 | |
dw | 删除光标处的整个单词 | |
替换字符 | R 或 Shift+r | 替换当前光标处字符 |
复制 | yy | 复制当前行整行的内容到剪贴板 |
#yy | 复制从光标处开始的 # 行内容 | |
yw | 复制光标处的整个单词 | |
粘贴 | P | 粘贴到光标所在行之下 |
p | 粘贴到光标所在行之上 | |
查找 | /word | 从当前光标处开始向后进行查找字符串 “word” |
?word | 从当前光标处开始向前进行查找 | |
n | 定位下一个匹配的被查找字符串 | |
N | 定位上一个匹配的被查找字符串 | |
撤销 | u(小写) | 按一次取消最近的一次操作;重复 u 键,恢复多步操作 |
U(大写) | 用于取消最后一次操作所在行所做的所有编辑 | |
Ctrl+R | 恢复撤销的操作 | |
保存退出 | :w | 保存修改的内容 |
:w 新文件名 | 另存为其它文件 | |
:q | 退出 | |
:q! | 放弃对文件内容的修改并退出 | |
ZZ 或 :wq、:x | 保存当前的文件内容并退出vi编辑器 | |
打开新文件 | :e 其它文件名 | 打开新的文件进行编辑 |
读入文件内容 | :r 其它文件名 | 在当前文件中读入其他文件内容 |
文件内容替换 | :s /old/new | 将当前行中查找到的第一个字符串 “old” 替换为 “new” |
:s /old/new/g | 将当前行中查找到的所有字符串 “old” 替换为 “new” | |
:#,# s/old/new/g | 在行号 “#,#” 范围内替换所有的字符串 “old” 为 “new” | |
:% s/old/new/g | 在整个文件范围内替换所有的字符串 “old” 为 “new” | |
:s /old/new/c | 在替换命令末尾加入 c 命令,将对每个替换动作提示用户进行确认 | |
快速复制 | :8,11 m 4 | 将 8-11 行的内容剪切到第 4 行下面 |
:8,11 co 4 | 将 8-11 行的内容复制到第 4 行下面 |
SHIFT+3组合键:可在脚本文件中高亮所有的相关字符串
输入模式基本操作:
输入 | 作用 |
---|---|
a | 在当前光标位置之后插入内容 |
i | 在当前光标位置之前插入内容 |
o | 在光标所在行之下插入一个新行内容 |
O | 在光标所在行之上插入一个新行内容 |
A | 在所在行的行尾插入内容 |
I | 在所在行的行首插入内容 |
网络配置
系统配置
service 服务管理
Linux 中的进程和服务
计算机中,一个正在执行的程序或命令,被叫做“进程”(process)
启动之后一只存在、常驻内存的进程,一般被称作“服务”(service)
service 服务名 start | stop |· restart | status
查看服务的方法:
/etc/init.d/
chkconfig 设置后台服务的自启配置:
基本语法
语法 功能描述 chkconfig 查看所有服务器自启配置 chkconfig 服务名 off 关掉指定服务的自动启动 chkconfig 服务名 on 开启指定服务的自动启动 chkconfig 服务名 --list 查看服务开机启动状态 开启 / 关闭 network (网络)服务的自动启动
chkconfig network on chkconfig network off
开启 / 关闭 network 服务指定级别的自动启动
chkconfig --level 指定级别 network on
systemctl
基本语法
systemctl start | stop | restart | status 服务名
查看服务的方法:/usr/lib/systemd/system
cd /usr/lib/systemd/system
设置后台服务的自启配置
查看所有服务开机启动状态
systemctl list-unit-files
关掉指定服务的自动启动
systemctl disable service_name
开启指定服务的自动启动
systemctl enable service_name
防火墙
查看、更改防火墙状态
systemctl status firewalld // 查看防火墙状态
systemctl stop firewalld // 关闭防火墙
systemctl start firewalld // 开启防火墙
systemctl enable firewalld.service // 开机自启动防火墙
systemctl disable firewalld.service // 开机不自启动防火墙
防火墙开放、删除端口
firewall-cmd --list-ports // 查询所有开放的端口
firewall-cmd --query-port=8080/tcp // 查询端口是否开放
firewall-cmd --add-port=8080/tcp --permanent // 永久添加 8080 端口
firewall-cmd --add-port=65001-65010/tcp --permanent // 永久增加 65001 - 65010 端口
firewall-cmd --remove-port=8800/tcp --permanent // 永久删除 8080 端口
开放、删除某个 ip 端口
firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“192.168.142.166” port port=“5432” protocol=“tcp” accept” // 对某个ip开放某个端口
firewall-cmd --permanent --remove-rich-rule=“rule family=“ipv4” source address=“192.168.142.166” port port=“5432” protocol=“tcp” accept” // 删除对某个ip开放某个端口
firwall-cmd:是 Linux 提供的操作 firewall 的一个工具(服务)命令;
--zone:作用域;
--add-port=8080/tcp :添加端口,格式为:端口/通讯协议 ;add 表示添加,remove 则对应移除;
--permanent:永久生效,没有此参数重启后失效;
更新防火墙规则,更改配置后要执行重载配置
firewall-cmd --reload
关机重启命令
将数据由内存同步到硬盘
sync
重启
reboot
# 两者作用一样
shutdown -r now
关机
shutdown -h now // 立马关机
shutdown -h 1 ‘This server will shut down after 1 mins‘ // 计算机将在1分钟后关机,并且会显示在登录用户的当前屏幕中
shutdown 15:28 // 指定时间关机
shutdown -c // 取消关机操作
查看系统内核与版本
文件目录类
ls 列出目录的内容
ls
列出当前目录中的文件和子目录ls -l
以长格式列出当前目录中的文件和子目录,包括文件权限、所有者、文件大小、修改日期等详细信息ls -a
列出当前目录中的所有文件和子目录,包括隐藏文件和目录ls -h
以人类可读的格式列出文件大小,例如,使用 KB、MB、GB 等单位ls -t
按修改时间排序列出文件和子目录,最新修改的文件和目录将显示在最上面ls -r
反向排序列出文件和子目录,即从最后一个文件或目录开始列出ls -R
递归列出当前目录及其子目录中的所有文件和子目录ls -i
显示每个文件和目录的 inode 号码
可以多个参数组合如:ls -al
每行列出的信息依次是: 文件类型与权限,链接数,文件属主,文件属组,文件大小用byte来表示,建立或最近修改的时间,名字
cd 切换目录
参数 | 功能 |
---|---|
cd 绝对路径 | 切换路径 |
cd 相对路径 | 切换路径 |
cd ~ 或者 cd | 回到自己的家目录 |
cd - | 回到上一次所在目录 |
cd .. | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
history 查看已经执行过历史命令
查看已经执行过的历史命令
history
清空历史记录
history -c
mkdir 创建一个新的目录
mkdir xiyou
mkdir -p xiyou/dssz/meihouwang # -p 创建多层目录
rmdir 删除一个空的目录
rmdir xiyou/dssz/meihouwang
touch 创建空文件
touch xiyou/dssz/sunwukong.txt
cp 复制文件或目录
cp 源文件 目标文件
复制文件
cp xiyou/dssz/suwukong.txt xiyou/mingjie/
递归复制整改文件夹
cp -r xiyou/dssz/ ./ // -r 递归复制整个文件夹
rm 删除文件或目录
rm [选项] deleteFile (功能描述:递归删除目录中所有内容)
选项 | 功能 |
---|---|
-r | 递归删除目录中所有内容 |
-f | 强制执行删除操作,而不提示用于进行确定 |
-v | 显示指令的详细执行过程 |
rm sunwukong.txt // 删除文件
rm -rf dssz/ // 递归删除目录中所有内容
mv 移动文件与目录或重命名
# 重命名
mv xiyou/dssz/suwukong.txt xiyou/dssz/houge.txt
# 移动文件
mv xiyou/dssz/houge.txt ./
cat 查看文件内容
cat -n houge.txt // -n参数显示行号
查看文件内容,从第一行开始显示(一般查看比较小的文件,一屏幕能显示全的)
more 文件内容分屏查看器
操作 | 功能说明 |
---|---|
空白键(space) | 向下翻一页 |
Enter | 向下翻一行 |
q | 立刻离开 more,不再显示该文件内容 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
more nginx.conf
less 分屏显示文件内容
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端
less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
操作 | 功能说明 |
---|---|
空白键(space) | 向下翻一页 |
[pagedown] | 向下翻一页 |
[pageup] | 向上翻一页 |
/字串 | 向下搜寻【字符】的功能:n 向下查找;N 向上查找; |
?字串 | 向下搜寻【字符】的功能:n 向下查找;N 向上查找; |
q | 离开 less 这个程序 |
less nginx.conf
echo 输出内容到控制台
echo [选项] [输出内容]
可以用在写脚本的时候输出日志
控制字符 | 作用 |
---|---|
\\ | 输出 \ 本身 |
\n | 换行符 |
\t | 制表符,也是 Tab 键 |
echo “hello\tworld”
echo -e “hello\tworld” // -e 支持反斜线控制的字符转换
tail 输出文件尾部内容
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容
tail -n 1 smartd.conf // 查看文件尾 1 行内容
tail -f houge.txt // 实时追踪该档的所有更新
按 ctrl + s
暂停;按 ctrl + q
继续
> 输出重定向 和 >> 追加
将 ls 查看信息写入到文件中
ls -l>houge.txt
将 ls 查看信息追加到文件中
ls -l>>houge.txt
采用 echo 将 hello 单词追加到文件中
echo hello>>houge.txt
ln 软链接
软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
创建软连接
ln -s /home/lnTest.txt ./lnTxt
删除软链接: rm -rf 软链接名
,而不是 rm -rf 软链接名/
如果使用 rm -rf 软链接名/
删除,会把软链接对应的真实目录下内容删掉
rm -rf lnTxt
查询:通过 ll 就可以查看,列表属性第 1 位是 l,尾部会有位置指向
时间日期类
显示当前时间信息
date
设置系统当前时间
date -s "2023-06-19 20:52:18"
用户管理命令
useradd 添加新用户
- useradd 用户名 (功能描述:添加新用户)
- useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
useradd hmb
passwd 设置用户密码
passwd hmb
id 查看用户是否存在
id hmb
cat /etc/passwd 查看创建了哪些用户
cat /etc/passwd
su 切换用户
- su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
- su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)
su hmb
su - hmb
userdel 删除用户
userdel 用户名 (功能描述:删除用户但保存用户主目录)
userdel -r 用户名 (功能描述:用户和用户主目录,都删除)
userdel hmb
userdel -r hmb
sudo 设置普通用户具有 root 权限
sudo mkdir module
usermod 修改用户
格式:usermod -g 用户组 用户名
usermod -g root zhubajie
groupadd 新增组
格式:groupadd 组名
groupadd xitianqujing
groupdel 删除组
格式:groupdel 组名
groupdel xitianqujing
groupmod 修改组
格式:groupmod -n 新组名 老组名
groupmod -n xitian xitianqujing
cat /etc/group 查看创建了哪些组
cat /etc/group
文件权限类
ll / ls 查看权限
使用 ll
或 ls -lh
命令
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
0 | 123 | 456 | 789 |
d | r、w、x | r、-、x | r、-、x |
目录文件 | 读、写、执行 | 读、写、执行 | 读、写、执行 |
d 表示为目录、- 表示为普通文件、l 表示为软连接 | 表示属主拥有的权限 | 组用户所拥有的权限 | 其它用户拥有的权限 |
- 如果没有权限,就会出现减号 [ - ] 而已。从左至右用 [ 0-9 ] 这些数字来表示
- 作用到文件:
- [ r ] 代表可读(read):可以读取,查看
- [ w ] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前
- [ x ] 代表可执行(execute):可以被系统执行
- 作用到目录:
- [ r ]代表可读(read):可以读取,ls查看目录内容
- [ w ]代表可写(write):可以修改,目录内创建+删除+重命名目录
- [ x ]代表可执行(execute):可以进入该目录
举以下例子来理解
-rw-r--r--. 1 root root 286170958 Oct 11 2022 apache-hive-2.3.9-bin.tar.gz
文件类型与权限 | 连接数 | 文件属主 | 文件属组 | 文件大小 | 建立时间或最近修改时间 | 文件名 |
---|---|---|---|---|---|---|
-rw-r--r--. | 1 | root | root | 286170958 | Oct 11 2022 | apache-hive-2.3.9-bin.tar.gz |
- 如果查看到是文件:链接数指的是硬链接个数
- 如果查看的是文件夹:链接数指的是子文件夹个数
改变权限
第一种
chmod
方式变更权限chmod [{ugoa}{+ - =}{rwx}] 文件或目录
- (u)所有者 - user、(g)所有组 - group、(o)其他人 - other、(a)所有人 - u、g、o 的总和
- (+)号代表增加、 (-)号代表取消、(=)号代表直接赋予
chmod u+x houge.txt // 修改文件使其所属主用户具有执行权限 chmod g+x houge.txt // 修改文件使其所属组用户具有执行权限 chmod u-x,o+x houge.txt // 修改文件所属主用户执行权限,并使其他用户具有执行权限
第二种
chmod
方式变更权限chmod [mode=421] [文件或目录]
数字表示法是将文件中(r)可读权限、(w)可写权限、(x)可执行权限,分别以数字 4、2、1 来表示,没有授予该权限的部分则表示为 0
举以下例子来理解
原始权限 转换为数字 数字表示法 rwxrwxr-x (421) (401) (401) 775 r-xr-xr– (401) (401) (400) 554 rw-r–r– (420) (400) (400) 644 chmod 777 houge.txt // 采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限 chmod -R 777 xiyou/ // 修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限
chown 改变所有者
chown
改变所有者chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
举以下例子来理解
chown hmb houge.txt // 修改文件所有者 chown -R hmb:hmb xiyou/ // 递归改变文件所有者和所有组
chgrp
改变所有者chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
举以下例子来理解
chgrp root houge.txt // 修改文件所有者
搜索查找类
find 查找文件或者目录
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名的所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件,单位为: b——块(512字节) c——字节 w——字(2字节) k——千字节 M——兆字节 G——吉字节 |
按文件名:
find -name "ln*.txt" // 根据名称查找 find xiyou/ -name "*.txt" // 目录下的 filename.txt 文件
按拥有者:查找 /opt 目录下,用户名称为 -user 的文件
find opt/ -user hmb
按文件大小:在 /home 目录下查找大于 200m 的文件(+n 大于 -n小于 n等于)
find /home -size +204800
locate 快速定位文件路径
locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库
// 格式:`locate 搜索文件`
updatedb
locate tmp
grep 过滤查找及 | 管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理,可以前面查出来的东西传给管道符后端的处理,例如 ls | grep -n test
grep 是 Linux 系统中常用的文本搜索工具,可以在文件中查找指定的字符串或者正则表达式,并将匹配的行输出到终端或者文件中
在文件中查找字符
grep "string" filename // 单个文件中查找 grep "string" file1 file2 file3 // 多个文件中查找字符 grep -i "string" filename // 忽略大小写查找指定字符串
在目录中递归查找指定字符串
grep -r "string" directory
显示匹配行的行号
grep -n "string" filename
反向查找不包含指定字符串的行
grep -v "string" filename
将匹配的行输出到文件中
grep "string" filename > output.txt
压缩和解压类
gzip / gunzip 压缩
只能压缩文件不能压缩目录,不保留原来的文件,同时多个文件会产生多个压缩包
gzip 压缩,格式:
gzip 文件
gzip lnTest.txt
gunzip 解压缩文件
gunzip lnTest.txt.gz
zip / unzip 压缩
zip 压缩命令在 windows / Linux 都通用,可以压缩目录且保留源文件
zip 压缩,格式:
zip 压缩文件名.zip 源文件
zip lnTest.zip lnTest.txt // 压缩文件 zip -r nginx1.zip nginx-1.21.6 // -r 压缩文件夹
unzip 解压
unzip lnTest.zip unzip lnTest.zip -d /opt // -d 指定解压后文件的存放目录
tar 打包
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
选项 | 功能 |
---|---|
-c | 产生 .tar 打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包 .tar 文件 |
-C | 解压到指定目录 |
压缩文件,格式:
tar -zcvf 打包的文件名.tar.gz [源文件]
tar -zcvf houma.tar.gz houge.txt bailongma.txt // 多个文件打包 tar -zcvf xiyou.tar.gz xiyou/ // 打包文件夹
解压
tar -zxvf houma.tar.gz // 解压到当前目录 tar -zxvf xiyou.tar.gz -C /opt // -C 解压到某个目录下
磁盘查看和分区类
进程管理类
pwd 显示当前工作目录的绝对路径
pwd
ps 查看当前系统进程状态
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户的进程 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完整格式的进程列表 |
举以下例子来理解
ps -ef // 列出所有进程的详细信息,包括进程的 PID、PPID、CPU 占用率、内存占用率等
ps aux // 与 ps -ef 类似,但是显示的是所有用户的进程信息
ps aux 显示信息说明:
- USER:该进程是由哪个用户产生的
- PID:进程的 ID 号
- %CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源
- %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ:该进程占用虚拟内存的大小,单位 KB - RSS:该进程占用实际物理内存的大小,单位 KB
- TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端、tty2-tty6 是本地的字符界面终端、pts/0-255 代表虚拟终端
- STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示
- START:该进程的启动时间
- TIME:该进程占用 CPU 的运算时间,注意不是系统时间
- COMMAND:产生此进程的命令名
ps -ef 显示信息说明:
- UID:用户 ID
- PID:进程 ID
- PPID:父进程 ID0
- C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU 时间
- CMD:启动进程所用的命令和参数
netstat 显示网络状态和端口占用信息
netstat -anp | grep // 进程号或端口号
netstat –nlp | grep // 端口号
使用 netstat 通常用来查看端口是否被占用
选项 | 功能 |
---|---|
-a | 显示所有正在监听(listen)和未监听的套接字(socket) |
-n | 拒绝显示别名,能显示数字的全部转化成数字 |
-i | 仅列出在监听的服务状态 |
-p | 标识显示哪个进程在调用 |
kill 终止进程
通过 pid 终止进程
kill -9 5102 // -9 表示强迫进程立即停止
通过进程名称杀死进程
killall firefox
pstree 查看进程树
pstree -p // 显示进程的 PID
pstree -u // 显示进程的所属用户
crontab 定时任务设置
crontab -e
选项 | 功能 |
---|---|
-u user | 用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行 |
-e | 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件 |
-l | 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容 |
-r | 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件 |
-i | 在删除用户的 crontab 文件时,给确认提示 |
重新启动 crond 服务
systemctl restart crond
这个文件中是通过 5 个 *
来确定命令或任务的执行时间的,这 5 个 *
的具体含义如表 2 所示
项目 | 含义 | 范围 |
---|---|---|
第一个 "*" | 一小时当中的第几分钟(minute) | 0~59 |
第二个 "*" | 一天当中的第几小时(hour) | 0~23 |
第三个 "*" | 一个月当中的第几天(day) | 1~31 |
第四个 "*" | 一年当中的第几个月(month) | 1~12 |
第五个 "*" | 一周当中的星期几(week) | 0~7(0和7都代表星期日) |
在时间表示中,还有一些特殊符号需要学习
特殊符号 | 含义 |
---|---|
*(星号) | 代表任何时间。比如第一个 "*" 就代表一小时种每分钟都执行一次的意思 |
,(逗号) | 代表不连续的时间。比如 "0 8,12,16***命令" 就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令 |
-(中杠) | 代表连续的时间范围。比如 "0 5 ** 1-6命令" ,代表在周一到周六的凌晨 5 点 0 分执行命令 |
/(正斜线) | 代表每隔多久执行一次。比如 "*/10****命令" ,代表每隔 10 分钟就执行一次命令 |
当 crontab -e
编辑完成之后,一旦保存退出,那么这个定时任务实际就会写入 /var/spool/cron/ 目录中,每个用户的定时任务用自己的用户名进行区分
而且 crontab 命令只要保存就会生效,只要 crond 服务是启动的。知道了这 5 个时间字段的含义
举以下例子来理解
*/1 * * * * /bin/echo ”11” >> /root/bailongma.txt // 每隔 1 分钟,向 /root/bailongma.txt 文件中添加一个 11 的数字
45 22 * * * // 在 22 点 45 分执行命令
0 17 * * 1 // 在每周一的 17 点 0 分执行命令
0 5 1,0 * * // 在每月 1 日和 15 日的凌晨 5 点 0 分执行命令
40 4 * * 1-5 // 在每周一到周五的凌晨 4 点 40 分执行命令
*/10 4 * * * // 在每天的凌晨 4 点,每隔 10 分钟执行一次命令
0 0 1,15 * 1 // 在每月 1 日和 15 日,每周一个 0 点 0 分都会执行命令,注意:星期几和几日最好不要同时出现,因为它们定义的都是天,非常容易让管理员混淆
软件包管理
RPM(RedHat Package Manager),RedHat 软件包管理工具,类似 windows 里面的 setup.exe 是 Linux 这系列操作系统里面的打包安装工具,它虽然是 RedHat 的标志,但理念是通用的。
// RPM 包的名称格式
Apache-1.3.23-11.i386.rpm
// “apache” 软件名称;
// “1.3.23-11” 软件的版本号,主版本和此版本;
// “i386” 是软件所运行的硬件平台,Intel 32 位处理器的统称;
// “rpm” 文件扩展名,代表RPM包;
RPM 安装命令(rpm -ivh)
选项 | 功能 |
---|---|
-i | install,安装 |
-v | --verbose,显示详细信息 |
-h | --hash,进度条 |
--nodeps | 安装前不检查依赖 |
rpm -ivh Apache-1.3.23-11.i386.rpm
RPM 查询命令(rpm -qa)
功能描述:查询所安装的所有 rpm 软件包
rpm -qa | grep firefox // 查询 firefox 软件安装情况
RPM 卸载命令(rpm -e)
rpm -e RPM软件包
# 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。
rpm -e --nodeps RPM软件包