当前位置:   article > 正文

linux命令手册

linux命令手册

linux命令手册

shell的基本应用

常见shell命令

ls:列出文件和目录

  • -l:以长格式列出文件和目录
  • -a:列出所有文件和目录,包括隐藏文件和目录
  • -t:按修改时间排序列出文件和目录
  • -r:按相反顺序列出文件和目录
  • -d:如果参数时目录,则只显示目录的信息,而不显示其中所包含的文件的信息

pwd:显示当前目录的绝对路径

cd:改变当前工作目录

  • cd:返回主目录
  • cd /path/to/directory:切换到指定目录
  • cd ..:返回上一级目录

mkdir:创建新目录

  • mkdir directory_name:创建一个名为 directory_name 的新目录
  • -p:递归创建多层目录,即使父目录不存在也不报错
  • -m:创建目录的同时设置目录的访问权限

rmdir:删除目录

  • p:递归删除多层目录,当子目录删除后其父目录为空时,也一同被删除

cp:复制文件和目录

  • cp source_file destination_file:将源文件 source_file 复制到目标文件 destination_file
  • -r:递归复制目录及其内容
  • -p:保留文件权限和时间戳信息
  • -b:若存在同名文件,覆盖前备份原来的文件
  • -f:强制覆盖同名文件

mv:移动文件和目录(重命名)

  • mv source_file destination_file:将源文件 source_file 移动到目标文件 destination_file
  • -i:提示确认操作
  • -f:强制移动,不提示确认操作
  • -b:若存在同名文件,覆盖前备份原来的文件

rm删除文件和目录

  • rm filename:删除名为 filename 的文件
  • -r:递归删除目录及其内容,不会提示确认操作
  • -f:强制删除,不提示确认操作

cat:显示文件内容

  • cat filename:显示名为 filename 的文件内容
  • -n:显示行号

more:分屏显示文件

  • -p:显示下一屏之前先清屏
  • -s:文件中连续的空白行压缩成一个空白行显示

less:分屏显示文件

  • 与more的区别在于只能查看ASCII码文件而more可以查看二进制文件

head:显示头几行

  • -n:指定显示文件的前n行,默认值为10

tail:查看文件尾部

  • +n:从第n行以后开始显示
  • -n:从距文件尾部n行处开始显示,默认值为10

grep:搜索文件内容

  • grep "pattern" filename:在文件 filename 中搜索匹配 pattern 的行
  • -i:忽略大小写
  • -v:反向匹配,即不匹配的行
  • -c:只显示匹配行的数量
  • -h:在查找多个文件时,不显示文件名

find:文件查找

  • -name:按照文件名搜索,可以使用通配符来模糊匹配文件名
  • -type:按照文件类型搜索,常用的类型有 f 表示文件、d 表示目录等
  • -group:查找属主用户组名为所给字串的所有文件
  • -user:查找属主用户名为所给字串的所有文件
  • -size:按照文件大小搜索,可以指定文件大小的范围
  • -mtime:按照文件修改时间搜索,可以指定时间范围
  • -exec:对搜索结果执行指定的命令
  • -print:将搜索结果打印出来

ps:显示进程状态

  • ps:显示当前 shell 下所有进程状态
  • ps aux:显示系统所有进程状态
  • -u:指定用户的进程状态

top:实时显示系统进程状态

  • top:实时显示系统进程状态信息
  • q:退出 top 命令

wc:文件内容统计

  • -l:统计文件中的行数
  • -c:统计文件中的字符数
  • -w:统计文件中的单词数

man:查看手册命令

clear:清屏

通配符

当在Linux系统中使用命令行时,通配符是一个非常有用的工具,它允许用户通过模式匹配来匹配多个文件或目录,下面是常用的通配符及用法:

  1. *:匹配任意数量的字符(包括零个字符),例如:

    bashCopy code
    ls *.txt
    
    • 1
    • 2

    这个命令会列出当前目录下所有扩展名为 .txt 的文件。

  2. ?:匹配任意单个字符,例如:

    bashCopy code
    ls ?.txt
    
    • 1
    • 2

    这个命令会列出当前目录下所有以单个字符开始并且扩展名为 .txt 的文件。

  3. []:匹配指定范围内的字符,例如:

    bashCopy code
    ls [abc]*.txt
    
    • 1
    • 2

    这个命令会列出当前目录下所有以 abc 开头并且扩展名为 .txt 的文件。

  4. {} :用于构建多个组合模式,例如:

    bashCopy code
    cp file{1,2,3}.txt destination/
    
    • 1
    • 2

    这个命令会将 file1.txtfile2.txtfile3.txt 复制到 destination/ 目录下。

  5. !:用于排除指定模式,例如:

    bashCopy code
    ls !(*.txt)
    
    • 1
    • 2

    这个命令会列出当前目录下所有不以 .txt 结尾的文件。

管道与重定向

当在Linux系统中使用命令行时,管道和重定向是两个非常有用的工具,它们允许用户对命令行进行更复杂的操作。下面是常用的管道和重定向的用法:

  1. 管道(|):将一个命令的输出传递给另一个命令的输入,例如:

    bashCopy code
    ls -l | grep 'file'
    
    
    • 1
    • 2
    • 3

    这个命令会列出当前目录下所有文件,并将其中包含 file 字符串的文件筛选出来。

  2. 输出重定向(>):将命令的输出重定向到指定的文件中,例如:

    bashCopy code
    ls -l > file.txt
    
    
    • 1
    • 2
    • 3

    这个命令会列出当前目录下所有文件,并将结果输出到 file.txt 文件中。

    创建文本文件:cat >文件名

    合并文本文件:cat 文件列表>文件名

  3. 输入重定向(<):将指定文件的内容作为命令的输入,例如:

    bashCopy code
    sort < file.txt
    
    
    • 1
    • 2
    • 3

    这个命令会将 file.txt 文件的内容作为输入,并将其排序后输出到终端。

  4. 追加重定向(>>):将命令的输出追加到指定的文件中,例如:

    bashCopy code
    echo 'hello' >> file.txt
    
    
    • 1
    • 2
    • 3

    这个命令会将 hello 追加到 file.txt 文件中。

  5. 文件描述符重定向:可以通过重定向文件描述符来控制命令的输入、输出和错误输出。例如:

    luaCopy code
    command < input.txt > output.txt 2> error.txt
    
    
    • 1
    • 2
    • 3

    这个命令将 input.txt 文件作为输入,将输出重定向到 output.txt 文件中,将错误输出重定向到 error.txt 文件中。

  6. 错误信息重定向(2>):程序的执行结果显示在屏幕上,而错误信息重定向到指定文件

用户和组管理

1、用户账号文件/etc/passwd

是系统识别用户的一个文件,用来保存用户的账号数据等信息,又被称为密码文件或口令文件。

2、用户影子文件/etc/shadow

影子文件是将用户的加密口令从/etc/passwd中移出,保存在只有超级用户root才有权限读取的/etc/shadow中,/etc/passwd中的口令域显示一个"x"

3、组帐号文件/etc/group

Linux系统下的 /etc/group 文件是一个包含组信息的文本文件,它保存了所有组的名称、组ID(GID)、组成员等信息。

具体来说,/etc/group 文件的作用如下:

  1. 记录系统中的所有组名和组ID,这些信息可以被系统上的所有用户和程序共享。
  2. 每个组的信息都以一行记录形式保存在该文件中。每行包含四个字段,分别是组名、组密码、组ID和组成员。
  3. 组名是一个文本字符串,通常是几个字母或单词的组合,用于标识一个组。组密码字段被弃用,现在通常为空字符串。
  4. 组ID是一个数字,它是每个组的唯一标识符,可以在系统中唯一地识别每个组。默认情况下,Linux系统上的组ID从1000开始递增。
  5. 组成员是一组用户名,这些用户是该组的成员。这些用户名以逗号分隔,如果一行没有成员,这个字段将为空。

通过 /etc/group 文件,管理员可以方便地管理组和用户,比如添加、删除和修改组成员。用户可以使用 groups 命令查看自己所属的组,或使用 newgrp 命令切换到其他组。

需要注意的是,/etc/group 文件只能由超级用户或具有管理员权限的用户进行编辑和修改。

4、用户组影子文件/etc/gshadow

Linux系统下的 /etc/gshadow 文件是一个包含组密码信息的文件,它保存了与 /etc/group 文件中的每个组相关联的密码信息。这些密码信息被加密并保存在 /etc/gshadow 文件中,只有具有足够权限的用户才能访问它们。

具体来说,/etc/gshadow 文件的作用如下:

  1. 存储每个组的密码。与 /etc/passwd 文件中的用户密码一样,/etc/gshadow 文件中的组密码也是经过加密的,以确保安全性。
  2. 控制用户对组的访问权限。只有在 /etc/gshadow 文件中列出的用户才能访问该组。其他用户不允许加入组或从组中删除。
  3. 限制用户对密码的访问权限。只有具有适当权限的用户才能访问 /etc/gshadow 文件中的密码。这有助于保护密码信息不被未授权的用户访问。
  4. 允许管理用户组的密码策略。通过 /etc/gshadow 文件,管理员可以更改组密码策略,例如设置密码过期时间或最小密码长度。

需要注意的是,只有具有管理员权限的用户才能访问 /etc/gshadow 文件。一般来说,用户不需要手动编辑或更改此文件,因为大多数组密码设置都可以通过命令行工具进行配置和管理。例如,使用 gpasswd 命令可以添加或删除组成员,并设置组密码。

用户管理

添加用户
  1. useradd 命令:用于创建新用户账号。
  • -m 选项:创建用户主目录。
  • -s 选项:指定用户的默认shell。默认为bin/bash
  • -g 选项:定义用户默认的组名或组号码。
  • -n 选项:用于禁止系统建立与用户名同名的用户组
  • -u UID 选项:指定用户的UID
  • -G 选项:指定用户所属的附加组。
  • -d 路径 选项:用于取代默认的/home/username主目录
  • -e 日期 选项:禁用账号的日期,格式为YYYY-MM-DD
  • -f 天数 选项:口令过期后,账号禁用前的天数

例如,创建一个名为“test”的新用户账号,并将其所属的附加组设置为“group1”:

useradd -m -s /bin/bash -G group1 test
  • 1

2.passwd 命令:用于更改用户密码。

  • -l 选项:锁定用户的密码。

当使用 -l 选项时,passwd 命令将锁定用户的密码,使其无法登录系统。例如,锁定名为“test”的用户的密码:

passwd -l tes
  • 1
  • -u 选项:解锁用户的密码。

当使用 -u 选项时,passwd 命令将解锁用户的密码,使其可以登录系统。例如,解锁名为“test”的用户的密码:

passwd -u test
  • 1
  • -d 选项:删除用户的密码。

当使用 -d 选项时,passwd 命令将删除用户的密码,使其在下一次登录时需要重新设置密码。例如,删除名为“test”的用户的密码:

passwd -d test
  • 1
  • -S 选项:显示用户密码状态。

当使用 -S 选项时,passwd 命令将显示用户密码状态,例如密码是否已设置、密码的最近更改日期等信息。例如,显示名为“test”的用户的密码状态:

passwd -S test
  • 1
  • -a 选项:修改所有用户的密码。

当使用 -a 选项时,passwd 命令将允许管理员修改系统中所有用户的密码。例如,修改所有用户的密码:

passwd -a
  • 1
  • -h 选项:显示命令的帮助信息。

当使用 -h 选项时,passwd 命令将显示命令的帮助信息。例如,显示 passwd 命令的帮助信息:

passwd -h
  • 1

需要注意的是,大多数用户管理命令都需要以 root 用户或其他具有管理员权限的用户身份运行。

删除用户

userdel 命令:用于删除用户账号。

  • -r 选项:删除用户主目录。

例如,删除名为“test”的用户账号及其主目录:

userdel -r test
  • 1
修改用户信息

usermod 命令是 Linux 系统下的用户管理命令,用于修改现有用户的帐号信息。以下是 usermod 命令的常用选项及用法:

-c 选项:修改用户的注释信息。

使用 -c 选项可以修改用户的注释信息。例如,修改用户名为“test”的用户的注释信息:

usermod -c "This is a test user" test
  • 1

-d 选项:修改用户的主目录。

使用 -d 选项可以修改用户的主目录。例如,将用户名为“test”的用户的主目录更改为 /home/test2

usermod -d /home/test2 test
  • 1

-e 选项:修改用户的帐号有效期限。

使用 -e 选项可以修改用户的帐号有效期限。例如,将用户名为“test”的用户的帐号有效期限设置为 2022 年 12 月 31 日:

usermod -e 2022-12-31 test
  • 1

-g 选项:修改用户的主组。

使用 -g 选项可以修改用户的主组。例如,将用户名为“test”的用户的主组修改为 testgroup

usermod -g testgroup test
  • 1

-aG 选项:将用户添加到其他组。

使用 -aG 选项可以将用户添加到其他组。例如,将用户名为“test”的用户添加到 testgroup1testgroup2 组中:

usermod -aG testgroup1,testgroup2 test
  • 1

-l 选项:修改用户名。

使用 -l 选项可以修改用户的用户名。例如,将用户名为“test”的用户的用户名修改为 testuser

usermod -l testuser test
  • 1

-p 选项:设置用户密码。

使用 -p 选项可以设置用户的密码。例如,将用户名为“test”的用户的密码设置为 test123

usermod -p test123 test
  • 1

需要注意的是,大多数用户管理命令都需要以 root 用户或其他具有管理员权限的用户身份运行。

组管理

创建用户组

groupadd 命令:添加新的用户组

用法:groupadd [选项] 组名

常用选项:

  • -g GID:指定用户组的组 ID。
  • -o:配合-g使用,可设置不唯一的组ID值。
  • -r:创建系统组(组 ID 从 500 开始分配)。
  • -f:创新增一个已经存在的组账号时,系统会出现错误信息然后结束命令。如果新增的组的GID已经存在,可以结合使用-o选项成功创建

例如,创建一个名为 testgroup 的新用户组:

groupadd testgroup
  • 1
删除用户组
  1. groupdel 命令:删除用户组

用法:groupdel 组名

例如,删除 testgroup 组:

groupdel testgroup
  • 1
修改用户组信息
  1. groupmod 命令:修改已有用户组

用法:groupmod [选项] 组名

常用选项:

  • -g GID:修改用户组的组 ID。
  • -n 新组名:修改用户组的组名。
  • -o:配合-g使用,可设置不唯一的组ID值。

例如,将组 testgroup 的组 ID 修改为 1001:

groupmod -g 1001 testgroup
  • 1

磁盘与文件系统管理

Linux系统的磁盘分区指将硬盘分成一个或多个区域,每个区域都可以被格式化并用来存储文件系统和数据。在Linux系统中,磁盘分区使用的是固定的设备节点名,比如/dev/sda或/dev/hda等。

在Linux系统中,通常会使用两种不同类型的分区:主分区和扩展分区。

主分区是硬盘上最基本的分区类型,可以包含一个文件系统,也可以被进一步分割成逻辑分区。硬盘上最多可以有4个主分区。

扩展分区是主分区的一种扩展,它可以被划分成多个逻辑分区。一个硬盘上只能有一个扩展分区,但它可以包含多个逻辑分区。

逻辑分区是在扩展分区中创建的分区,它们的数量没有限制。每个逻辑分区都可以被格式化并用来存储文件系统和数据。

在Linux系统中,使用fdisk、parted、gdisk等工具来进行磁盘分区操作。可以使用fdisk命令创建主分区和扩展分区,并在扩展分区中创建逻辑分区。例如:

bashCopy code
sudo fdisk /dev/sda

  • 1
  • 2
  • 3

然后,可以使用命令m来查看可用的命令列表,使用n来创建新的分区,使用w来保存分区表并退出。

总之,磁盘分区是Linux系统中的一个重要概念,允许用户有效地管理硬盘上的数据。

管理分区

(管理GPT分区是gdisk)

fdisk是一种文本模式下的磁盘分区工具,它可以创建、编辑和删除MBR(Master Boot Record)分区表。以下是fdisk指令以及其相关选项的用法:

格式:fdisk [参数] 文件名

功能:分区工具

常用选项说明:

  • -l:获得机器中所有磁盘的个数,也能列出所有磁盘分区的情况
  • -c:禁用旧的DOS兼容模式
  • -u:以扇区的格式显示输出

1.列出所有磁盘和分区

fdisk -l
  • 1

2.显示指定设备的分区表

fdisk -l /dev/sda
  • 1

3.创建新分区

sudo fdisk /dev/sda
n       # 新建分区
p       # 主分区
1       # 分区编号
ENTER   # 默认起始位置
ENTER   # 默认结束位置
w       # 保存并退出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
m  显示所有命令列表
p  列出硬盘分区表
a  设定硬盘启动区
n  添加一个新的硬盘分区
e  硬盘为扩展分区
P  硬盘为主分区
t  改变硬盘分区类型
d  删除硬盘分区
q  不保存退出
w  把分区表写入硬盘并退出
l  列出分区类型,供用户设置相应分区类型
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

4.修改分区类型

fdisk /dev/sda
t       # 修改分区类型
1       # 分区编号
83      # Linux文件系统类型
w       # 保存并退出
  • 1
  • 2
  • 3
  • 4
  • 5

5.修改分区大小

fdisk /dev/sda
d       # 删除分区
1       # 分区编号
n       # 新建分区
p       # 主分区
1       # 分区编号
ENTER   # 默认起始位置
+10G    # 分区大小增加10G
w       # 保存并退出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

6.删除分区

fdisk /dev/sda
d       # 删除分区
1       # 分区编号
w       # 保存并退出
  • 1
  • 2
  • 3
  • 4

建立和管理文件系统

文件系统的主要功能是存储文件的数据

RedhatLinux专属文件系统是ext,ext2,ext3ext4文件系统

常见的Linux专用文件系统有ext,ext2,ext3,ext4, xfs, swapfs, ReiseRfs

创建文件系统mkfs

格式:mkfs -t 文件系统类型[选项]文件系统名 分配给文件系统的块数

功能:分区创建后在新分区上创建一个文件系统

常用选项说明:

  • -V:具体显示模式
  • -t:给定档案系统的形势
  • -c:在制作档案系统前,检查该分区是否有环境
//在dev/sda5上建立一个ext4分区
mkfs -t ext4 /dev/sda5
  • 1
  • 2

文件系统结构

Redhat Linux的文件系统是一个树形结构,称为目录结构,它将所有文件和目录组织在一起。下面是Redhat Linux文件系统目录结构及其功能的简要介绍:

  1. /(根目录):是整个文件系统的根目录,包含所有其他目录和文件。
  2. /bin(二进制文件):包含系统启动和运行所需的基本二进制可执行文件,如ls、cp、mv等。
  3. /boot(引导程序文件):包含启动操作系统所需的所有文件,如内核、引导加载程序、引导配置文件等。
  4. /dev(设备文件):包含系统所使用的设备文件,如磁盘驱动器、串行端口、USB等。
  5. /etc(系统配置文件):包含系统配置文件和脚本,如网络配置、用户账户、软件包管理等。
  6. /home(用户主目录):包含系统用户的主目录,每个用户都有一个自己的子目录。
  7. /lib(库文件):包含系统运行所需的共享库文件。
  8. /media(可移动设备挂载点):包含可移动设备(如光盘、USB设备)的挂载点。
  9. /mnt(挂载点):包含临时挂载其他文件系统的目录。
  10. /opt(可选应用程序):包含可选的应用程序和软件包,如Oracle数据库。
  11. /proc(进程文件系统):包含系统内核和进程信息的虚拟文件系统。
  12. /root(root用户主目录):root用户的主目录。
  13. /sbin(系统可执行文件):包含系统管理和系统配置所需的二进制文件,如ifconfig、shutdown等。
  14. /tmp(临时文件):包含系统和应用程序的临时文件。
  15. /usr(用户软件资源):包含用户安装的软件资源、共享的库文件和其他数据。
  16. /var(可变文件):包含经常被修改的文件,如日志文件、邮件等。

这些目录都有其特定的功能,共同组成了Redhat Linux的完整文件系统,这种层次结构使得系统管理变得更加简单和有效。

文件系统操作命令

文件与目录操作命令

touch是一个常用的Linux命令,用于创建新的空文件或修改现有文件的访问和修改时间戳。下面是touch命令的选项说明:

  1. -a,–time=atime或–time=access:仅更改访问时间。
  2. -c,–no-create:不要创建任何新文件。
  3. -d,–date=时间日期:设置文件的时间和日期。
  4. -m,–time=mtime或–time=modify:仅更改修改时间。
  5. -r,–reference=参考文件或目录:使用参考文件或目录的时间戳更新指定文件的时间戳。
  6. -t,–time=时间戳:使用指定的时间戳更新文件时间戳。
  7. –help:显示帮助信息。
  8. –version:显示版本信息。
  • 创建新文件
touch file1.txt
  • 1
  • 同时创建多个文件
touch file1.txt file2.txt file3.txt
  • 1
  • 更改现有文件的时间戳
touch -m file1.txt
  • 1
  • 根据参考文件更新文件时间戳
touch -r file1.txt file2.txt
  • 1
  • 指定时间戳更新文件时间戳
touch -t 202201011200.00 file1.txt
  • 1
压缩和解压缩命令

tar 命令:该命令可以对文件和目录进行打包和压缩,常用选项如下:

  • -c:创建一个新的归档文件;
  • -x:从归档文件中提取文件;
  • -v:显示命令执行的详细信息;
  • -f:指定归档文件的名称;
  • -z:使用gzip进行压缩,与-x联用时调用gzip完成解压缩;
  • -j:使用bzip2进行压缩。

例如,将目录 /home/user1 下的文件和子目录打包并使用gzip进行压缩:

tar -zcvf backup.tar.gz /home/user1
// -cvf  -jcvf
  • 1
  • 2

解压:

将usr/backup/home.tar.gz文件解压缩到/usr/local/src下

tar -zxvf /usr/backup/home.tar.gz
  • 1

查看usr/backup/home.tar.gz文件内有哪些内容

tar -ztvf /usr/backup/home.tar.gz
  • 1

gzip 命令:该命令可以对文件进行压缩,常用选项如下:

  • -c:将输出发送到标准输出;
  • -d:解压缩文件;
  • -v:显示命令执行的详细信息。

例如,压缩文件 file.txt 并使用gzip进行压缩:

gzip file.txt
  • 1

gunzip 命令:该命令可以对gzip压缩的文件进行解压缩,常用选项如下:

  • -c:将输出发送到标准输出;
  • -d:解压缩文件;
  • -v:显示命令执行的详细信息。

例如,解压缩文件 file.txt.gz 并使用gzip进行压缩:

gunzip file.txt.gz
  • 1
文件和目录权限管理命令

在 Redhat Linux 系统中,以下是一些常用的文件和目录权限管理命令及其相关选项的用法说明:

  1. chmod:用于修改文件或目录的访问权限。

    命令格式:chmod [选项][模式] 文件或目录名

    常用选项:

    -R:递归地修改指定目录及其子目录下的文件或目录权限。

    -f:去除大部分错误信息

    -v:显示详细的信息

    -c:类似于-v参数,但是只有在更改时才显示结果

    模式由以下三个数字组成,分别表示文件所有者权限、用户组权限和其他用户权限:

    0:无权限1:执行权限2:写权限4:读权限

    使用方法:

    • 例如,将文件 file1 的所有者权限设置为读写,用户组权限设置为读,其他用户权限设置为无:
    chmod 640 file1
    
    • 1
    • 设置本人对file可以进行读写执行的操作
    chmod u+rwx file
    
    • 1
    • 删除用户对file的可执行权限
    chmod u-x file1
    
    • 1
    • 设置同组用户对file文件增加权限为能读写,其他用户则只能读
    chmod g+rw,o+r file
    
    • 1
    • 取消同组用户对file文件的写入权限
    chmod g-w file
    
    • 1

    权限参数:

    • -:普通文件
    • d:目录文件
    • b:块文件
    • c:字符文件
    • u:用户本身
    • g:和用户同一个组的成员权限
    • o:其他用户
  2. chown:用于修改文件或目录的所有者或用户组。

    命令格式:chown [选项] 所有者[:用户组] 文件或目录名

    常用选项:

    -R:递归地修改指定目录及其子目录下的文件或目录权限。

    -f:去除大部分错误信息

    -v:显示详细的信息

    -c:类似于-v参数,但是只有在更改时才显示结果

    使用方法:

    • 例如,将文件 file1 的所有者修改为 user1,用户组修改为 group1:
    chown user1:group1 file1
    
    • 1
    • 将hello.sh文件的所有者由root更改为student
    chown student hello.sh
    
    • 1
    • 将hello.sh文件的所有者和所属组群改为student用户和student组群
    chown student: student hello.sh
    
    • 1

  3. chgrp:用于修改文件或目录的用户组。

    命令格式:chgrp [选项] 用户组 文件或目录名

    常用选项:

    -R:递归地修改指定目录及其子目录下的文件或目录用户组。

    使用方法:

    例如,将文件 file1 的用户组修改为 group1:

    chgrp group1 file1
    
    • 1

文件系统的挂载

使用命令行挂载文件系统

文件系统的挂载命令 mount

格式:mount -t 文件系统类型 -o[可选参数]文件系统 挂载点

常用选项: mount -t 文件系统类型 -o [可选参数]文件系统 挂载点

常用选项说明:

  1. -t:指定要挂载的文件系统类型,例如-t ext4表示挂载ext4类型的文件系统。
  2. -o:指定挂载选项,例如-o rw表示以读写模式挂载文件系统。
  3. -a:将/etc/fstab文件中列出的所有文件系统都挂载。
  4. -r:以只读模式挂载文件系统,不允许写入。
  5. -w:以读写模式挂载文件系统,允许写入。
  6. -n:不将挂载信息写入/etc/mtab文件。
  7. -f:强制执行操作,即使文件系统已经被挂载。
  8. -L:通过卷标挂载文件系统,例如-L data表示挂载名为"data"的文件系统。
  9. -U:通过UUID挂载文件系统,例如-U 12345678-1234-5678-abcd-1234567890ab表示挂载UUID为"12345678-1234-5678-abcd-1234567890ab"的文件系统。
  10. -o remount:重新挂载已经挂载的文件系统,例如-o remount,rw表示以读写模式重新挂载文件系统。
  11. -o bind:将一个目录挂载到另一个目录下,例如-o bind /mnt/data /home/user/data表示将/mnt/data目录挂载到/home/user/data目录下。
  12. -o loop:将一个文件挂载为一个块设备,例如-o loop /path/to/image.iso /mnt/iso表示将/path/to/image.iso文件挂载为一个块设备,并将其挂载到/mnt/iso目录下。

四种常见的文件系统的挂载方法:

  • 挂载软盘,软盘设备名为df0
mkdir /mnt/floppy
mount /dev/fd0 /mnt/floppy
  • 1
  • 2
  • 挂载光盘,光盘设备名为cdrom
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
  • 1
  • 2
  • 挂载硬盘。如果Windows XP装在sda1分区,要把它挂载到/mnt/winxp下,可执行:
mkdir /mnt/winxp
mount -t vfat /dev/sda1 /mnt/winxp
  • 1
  • 2
  • 挂载移动设备
//先查看移动设备所在分区
fdisk -l
mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb
  • 1
  • 2
  • 3
  • 4
永久挂载文件系统

/etc/fstab成为文件系统数据表,专门用于设置文件系统的配置

在 Red Hat Linux 中,/etc/fstab 文件是用来配置系统中硬盘分区的挂载点以及其他挂载选项的重要配置文件。下面是该文件的语法和字段说明:

# 文件系统           挂载点     文件系统类型  选项         是否备份  文件系统扫描顺序
UUID=xxxxxxx-xxxx   /          ext4        defaults     1         1

  • 1
  • 2
  • 3
  • 文件系统: 表示设备或者分区的唯一标识符,可以使用设备文件(例如/dev/sda1)或者 UUID。使用 UUID 作为标识符可以避免设备文件名称的变化带来的问题。
  • 挂载点: 表示该分区将会挂载到文件系统中的哪个目录下。
  • 文件系统类型: 表示该分区的文件系统类型,如 ext4, ntfs, xfs 等。
  • 选项: 表示对该分区的挂载选项,例如是否允许读写、是否允许执行文件、是否启用数据同步等。
  • 是否备份: 表示是否将该分区包含在系统备份中。1 表示需要备份,0 表示不需要。
  • 文件系统扫描顺序: 表示文件系统扫描顺序,一般使用 1,表示在系统引导时优先扫描该分区。
卸载文件系统

格式:umount [选项] 设备名称或挂载点

umount 命令的常用选项说明:

  • -f, --force:强制卸载文件系统,即使该文件系统处于忙状态。
  • -h, --help:显示帮助信息。
  • -l, --lazy:延迟卸载文件系统,直到文件系统不再使用为止。该选项可以让正在使用该文件系统的进程继续运行,直到它们结束为止。
  • -n, --no-preserve-root:禁止卸载根文件系统。该选项可以避免一些误操作,比如卸载了根文件系统。卸载后的信息不写入/etc/fstab
  • -r, --recursive:递归卸载文件系统及其所有子目录下的挂载点。如果挂载点下有其他挂载点,则该选项也会卸载这些子挂载点。
  • -t, --type <filesystem type>:指定要卸载的文件系统类型。可以使用 mount 命令查看已经挂载的文件系统类型。
  • -v, --verbose:显示详细的输出信息,包括卸载的文件系统和卸载过程中的详细信息。

管理交换空间

Linux系统交换内存(swap)是指将内存中的一些不常用或者空闲的数据移动到硬盘上,以释放出内存空间。当系统需要更多的内存时,会将一部分暂时不需要的内存数据移动到交换分区(swap partition)或者交换文件(swap file)中,以腾出更多的物理内存空间供系统使用。当这些数据需要时,系统会将其从交换分区或者交换文件中读取到内存中。

交换内存的使用可以提高系统的性能和稳定性,因为它可以避免内存溢出或者内存不足导致系统崩溃的情况。然而,过度交换内存也会影响系统的性能,因为硬盘的读写速度通常比内存慢很多,所以频繁的交换内存会导致系统变得很慢。

在Linux系统中,可以通过swapon命令来启用交换分区或者交换文件,通过swapoff命令来禁用交换分区或者交换文件。可以使用free命令查看当前系统的内存使用情况,包括交换内存的使用情况。可以通过调整交换分区或者交换文件的大小来优化系统的性能。

建立新的交换内存空间

fdisk /dev/sdb5
//重启生效
partx -a /dev/sdb5
//制作交换内存的文件系统
mkswap /dev/sdb5
//启用交换内存
swapon -a /dev/sdb5
//查看系统交换空间
swapon -s
//关闭交换内存
swapoff /dev/sdb5
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

磁盘配额

Linux系统磁盘配额(Disk Quota)是一种限制用户在磁盘上使用空间的机制。它的作用是确保系统管理员能够控制磁盘使用,避免某个用户或进程无限制地使用磁盘空间,从而导致系统崩溃或无法正常运行。

磁盘配额可以针对整个文件系统或者某个特定的目录进行设置。管理员可以为每个用户或组分配一个磁盘配额限制,当用户或组使用的磁盘空间达到或超过配额限制时,就不能再往磁盘中写入数据,或者只能读取已有的数据。

通过使用磁盘配额,管理员可以限制每个用户或组所占用的磁盘空间,确保系统中所有用户能够公平地共享资源,并且能够避免因为某个用户或进程无限制地使用磁盘空间而导致的系统崩溃。

创建磁盘配额

在Redhat Linux系统下,可以使用quota命令来管理磁盘配额。以下是一些常见的quota命令选项:

  1. quota -v:查看当前配额使用情况,包括每个用户或组的配额限制和已使用的磁盘空间。
  2. quotacheck [选项]:检查文件系统的配额限制,并可以创建配额管理文件

常用选项说明:

  • -a 检查/etc/fstab文件中需要进行配额管理的分期

  • -g 检查组群磁盘配额信息,并可以创建aquota.group文件

  • -u 检查用户磁盘配额信息,并可以创建aquota.user文件

  • -v 极爱奶茶配额过程中显示详细的状态信息

    3.edquota:编辑配额管理文件

常用选项说明:

  • -t 设置过渡期
  • -u 用户名 设置指定用户的配额
  • -g 组群名 设置指定组群的配额
  • -p 用户名1 用户名2 将用户1的配额设置复制给用户2
  1. quotaon:启动配额管理

格式: quotanon [选项]

磁盘配额建立步骤

//修改etc/fstab
/dev/sdb5     /home     /ext4    defaults,usrquota,grpquota   0   0
//更新装载文件系统,使更改生效
mount |grep sdb5
//扫描相应文件系统,用quotacheck命令生成基本配额我呢见
quotacheck -cmvug  /home
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

逻辑卷管理

建立LVM卷

创建分区

fdisk /dev/sdb
  • 1

创建物理卷

pvcreate /dev/sdb6
  • 1

创建卷组

vgcreate -s 8M vg0 /dev/sdb6
  • 1

创建逻辑卷

lvcreate -L 200m -n lv0 vg0
  • 1

创建文件系统

mkfs -t ext4 /dev/vg0/lv0
  • 1

挂载文件系统

mkdir /data
mount /dev/vg0/lv0 /data
  • 1
  • 2
管理LVM卷

卸载卷

卸载物理卷:pvremove PVDEVICE

卸载卷组:vgremove VGNAME

卸载逻辑卷:lvremove LVDEVICE

注意事项:1、卸载逻辑卷前先卸载逻辑卷所在的目录挂载点,并做好备份。

​ 2、卸载卷组前,必须先卸载该卷组逻辑卷,卸载物理卷前,必须确保没有任何卷子使用到该物理卷

umount /test
lvremove /dev/vg1/lv1
vgremove /dev/vg1
pvremove /dev/sdb6
  • 1
  • 2
  • 3
  • 4

查看卷信息

查看物理卷:pvdisplay PVDEVICE

查看卷组:vgdisplay VGNAME

查看逻辑卷:lvdisplay LVDEVICE

pvdisplay /dev/sdb6
vgdisplay /dev/vg1
lvdisplay /dev/vg1/lv1
  • 1
  • 2
  • 3
调整LVM卷

调整卷组

要放大卷组,需要准备额外的物理卷,使用vgextend命令把要增加的物理卷加入到既有的卷组中,如果要缩小卷组,则必须使用vgreduce把卷组中的物理卷卸载

用法:

vgextend VGNAME PVDEVICE

vgreduce VGNAME PVDEVICE

pvcreate /dev/sdb7
vgextend vg0 /dev/sdb7
vgdisplay /dev/vg0
vgreduce vg0 /dev/sdb7
  • 1
  • 2
  • 3
  • 4

调整逻辑卷

放大:先放大LV,再放大文件系统

缩小:先缩小文件系统,再缩小LV

lvextend -L SIZE LV_DEVICE

lvextend -L (±)SIZE LV_DEVICE

放大逻辑卷:

df -Th |grep /data
lvextend -L 300M /dev/vg0/lv0
resize2fs -p /dev/vg0/lv0
df -Th |grep /data
  • 1
  • 2
  • 3
  • 4

缩小逻辑卷:

umount /data
fsck -f /dev/vg0/lv0
resize2fs -p /dev/vg0/lv0 150M
lvreduce -L 150M /dev/vg0/lv0
mount -a
  • 1
  • 2
  • 3
  • 4
  • 5
LVM高级应用

产生逻辑卷快照

lvcreate -L SIZE -s -n LVNAME LVDEVICR

lvcreate -n lv0_snap -s -L 100M /dev/vg0/lv0
  • 1

读取逻辑卷快照

卸载逻辑卷快照

移动卷

  • 加入新的物理卷到卷组中
  • 移动物理卷的数据到新加入的物理卷上
  • 将旧的物理卷从卷组中卸载

1、加入新的物理卷

pvscan
pvcreate /dev/sda6
vgextend vg0 /dev/sda6
  • 1
  • 2
  • 3

2、移动物理卷

pvscan
pvmove /dev/sda5 /dev/sda6
  • 1
  • 2

3、卸载物理卷

pvscan
vgreduce vg0 /dev/sda5
pvscan
pvremove /dev/sda5
pvscan
  • 1
  • 2
  • 3
  • 4
  • 5

进程管理

管理进程

查看进程

ps命令:用于列出当前正在运行的进程。它的常用选项包括:

  • -e:列出所有进程,而不仅仅是当前用户的进程。
  • -f:以全格式显示进程信息,包括进程ID、父进程ID、CPU使用率、内存占用等。
  • -u:以用户为基础显示进程信息,包括进程所有者、CPU使用率、内存占用等。
  • -A:显示所有进程
  • -a:显示当前终端上所有进程,包括其他用户的进程信息
  • -l:以长格式显示进程的信息
  • -g:根据用户组的ID排列显示进程的信息
  • -r:显示正在运行的进程
  • -x:显示后台进程的信息
  • -aux:结合了以上三个选项,显示所有进程的完整信息。

例如,要显示所有进程的完整信息,可以使用命令:

ps aux
  • 1
切换进程

显示作业命令jobs

格式:jobs [选项]

常用选项说明:

  • -p:仅显示进程号
  • -l:同时显示进程号和作业号

进程的前后台转换

bg命令:

格式:bg [作业号]

功能:将前台作业切换到后台运行。

fg命令:

格式:fg [作业号]

功能:将后台作业切换到前台运行。若没有指定作业号,则将后台作业序列中的第一个作业切换到前台运行

设置进程优先级

nice命令

格式:nice [-优先级值] 命令

renice命令

格式:renice 优先级值 参数

常用选项:

  • -p:修改进程号所表示进程的优先级
  • -u:修改指定用户所启动进程的优先级
  • -g:修改指定组群中所有用户所启动进程的优先级
暂停进程命令sleep

格式:sleep 时间值

功能:使进程暂停执行一段时间,其中”时间值“参数以秒为单位

终止进程

在Linux系统下,kill命令是用于终止(或发送信号给)进程的命令,常用的选项包括:

  1. -s / --signal [信号名称或编号]:指定要发送的信号,可以使用信号名称或编号,例如:

    kill -s SIGKILL 1234   # 发送 SIGKILL 信号给进程号为 1234 的进程
    kill -s 9 1234        # 与上面的命令等价,9 表示 SIGKILL 信号编号
    
    • 1
    • 2
  2. -l / --list:列出所有可用的信号名称和编号,例如:

    kill -l    # 列出所有可用的信号名称和编号
    
    • 1
  3. -p / --pid:指定要终止的进程号,可以同时指定多个进程号,例如:

    kill -9 1234 5678    # 终止进程号为 1234 和 5678 的进程
    
    • 1
  4. -u / --user:指定要终止的用户名,可以同时指定多个用户名,例如:

    kill -9 -u user1,user2    # 终止用户名为 user1 和 user2 的进程
    
    • 1
  5. -a / --all:终止所有与当前用户相关的进程,例如:

    kill -9 -u $USER    # 终止当前用户的所有进程
    
    • 1
  6. -e / --exe:指定要终止的进程的可执行文件路径,例如:

    kill -9 -e /usr/bin/python3    # 终止所有使用 /usr/bin/python3 可执行文件的进程
    
    • 1
  7. -f / --force:强制终止进程,不等待进程终止,例如:

    kill -9 -f 1234    # 强制终止进程号为 1234 的进程,不等待进程终止
    
    • 1

注意:使用kill命令终止进程时,请谨慎操作,以免造成不必要的损失。

计划任务

一次性计划任务

在Linux系统下,at命令是用于在指定时间执行一次性任务的命令,常用的选项包括:

  1. -f / --file [执行脚本路径]:指定要执行的脚本路径,例如:

    at now + 1 hour -f /home/user/script.sh    # 在1小时后执行 /home/user/script.sh 脚本
    
    • 1
  2. -t / --time [执行时间]:指定任务的执行时间,可以使用 24 小时制时间表示,例如:

    at 23:00 tomorrow -f /home/user/script.sh    # 在明天晚上 23:00 执行 /home/user/script.sh 脚本
    
    • 1
  3. -d / --date [执行日期]:指定任务的执行日期,可以使用“月/日/年”格式表示,例如:

    at 11/11/2023 -f /home/user/script.sh    # 在 2023 年 11 月 11 日执行 /home/user/script.sh 脚本
    
    • 1
  4. -c / --command [执行命令]:指定要执行的命令,例如:

    at now + 1 hour -c "echo 'Hello World!'"    # 在1小时后执行 echo 'Hello World!' 命令
    
    • 1
  5. -l / --list:列出当前用户所有的 at 任务,例如:

    at -l    # 列出当前用户所有的 at 任务
    
    • 1
  6. -r / --remove [任务编号]:删除指定编号的 at 任务,例如:

    at -r 3    # 删除编号为 3 的 at 任务
    
    • 1
  7. -q / --queue [任务队列]:指定要执行的任务队列,可以是 a、b、c 或 d,例如:

    at now + 1 hour -f /home/user/script.sh -q b    # 在1小时后执行 /home/user/script.sh 脚本,并将任务放入 b 队列
    
    • 1

注意:使用 at 命令时,请确保任务执行的时间和日期正确,并注意脚本和命令的权限和路径设置。

周期性计划任务

user用户对应的crontab文件在/var/spool/cron/user目录下。

/etc/crontab文件为配置文件,文件字段为:

minute hour day-of-month month-of-year day-of-week [username] commands

在Linux系统下,crontab命令是用于创建、编辑和管理用户的crontab定时任务的命令,常用的选项包括:

  1. -e:编辑当前用户的crontab文件,例如:

    crontab -e    # 编辑当前用户的crontab文件
    
    • 1
  2. -l:列出当前用户的crontab文件内容,例如:

    crontab -l    # 列出当前用户的crontab文件内容
    
    • 1
  3. -r:删除当前用户的crontab文件,例如:

    crontab -r    # 删除当前用户的crontab文件
    
    • 1
  4. -u [用户名]:指定要编辑、列出或删除的用户的crontab文件,例如:

    crontab -u user -e    # 编辑user用户的crontab文件
    
    • 1
  5. -i:在删除当前用户的crontab文件之前进行确认,例如:

    crontab -ir    # 删除当前用户的crontab文件之前进行确认
    
    • 1
  6. -e [编辑器]:使用指定的编辑器编辑crontab文件,例如:

    crontab -e /usr/bin/vim    # 使用vim编辑器编辑crontab文件
    
    • 1

软件管理

程序:是一种存储CPU可以执行的机器码的特殊文件,二进制格式。

链接库:存储机器码的二进制文件,链接库没有存储执行进入点的信息。

脚本:以文本文件格式存储要CPU执行的命令

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/911273
推荐阅读
相关标签
  

闽ICP备14008679号