Liunx 基础小记

本文摘自:《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在所在行的行首插入内容

网络配置

内容移步:《Linux入门教程(非常详细)从零基础入门到精通,看完这一篇就够了


系统配置

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 // 取消关机操作

查看系统内核与版本

内容移步:《Linux入门教程(非常详细)从零基础入门到精通,看完这一篇就够了


文件目录类

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 查看权限

使用 llls -lh 命令

文件类型属主权限属组权限其他用户权限
0123456789
dr、w、xr、-、xr、-、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--.1rootroot286170958Oct 11 2022apache-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 方式变更权限

    补充参考:《【Linux】使用数字表示法和文件表示法修改文件权限(超详细)

    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 解压到某个目录下

磁盘查看和分区类

内容移步:《Linux入门教程(非常详细)从零基础入门到精通,看完这一篇就够了


进程管理类

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 定时任务设置

补充参考:《Linux 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)

选项功能
-iinstall,安装
-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软件包

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注