1.基本命令
1.1 常用基本操作概述
1.ls:列出当前目录下的文件和文件夹。
ls -l: 列出当前目录下的文件和文件夹,以长格式显示
2.cd: 切换当前工作目录。
cd /home: 切换到 /home 目录。
cd … : 切换到当前目录的上级目录
3. pwd:显示当前所在的目录路径。
4. mkdir:创建一个新的目录。mkdir mydir: 创建名为 “mydir” 的新目录。
mkdir -p mydir/subdir: 创建名为 “mydir” 的新目录,并在其中创建名为 “subdir” 的子目录。
5. rm:删除文件或目录。
rm myfile.txt: 删除名为 “myfile.txt” 的文件。
rm -r mydir: 删除名为 “mydir” 的目录及其所有内容
6. cp:复制文件或目录。
cp myfile.txt /tmp: 将名为 “myfile.txt” 的文件复制到 /tmp 目录。
cp -r mydir /backup: 将名为 “mydir” 的目录及其内容复制到 /backup 目录。
7. mv:移动文件或目录。
mv myfile.txt newfile.txt: 将名为 “myfile.txt” 的文件重命名为 “newfile.txt”。
mv myfile.txt mydir/: 将名为 “myfile.txt” 的文件移动到名为 “mydir” 的目录下。
8. cat:显示文件内容。
cat myfile.txt: 显示 “myfile.txt” 文件的内容
9. grep:在文件中查找指定的字符串。
grep “pattern” file.txt: 在 “file.txt” 文件中搜索包含特定模式的行。
grep -i “pattern” file.txt: 在 “file.txt” 文件中搜索包含特定模式的行,忽略大小写。
10. find:在文件系统中搜索文件。
find / -name myfile.txt: 在文件系统中搜索名为 “myfile.txt” 的文件。
find /home -type d: 在 /home 目录下搜索并显示所有目录
11. tar:创建归档文件或解压归档文件。
tar -cvf archive.tar file1 file2: 创建一个名为 “archive.tar” 的归档文件,并将 “file1” 和 “file2” 添加到其中。
tar -xvf archive.tar: 解压名为 “archive.tar” 的归档文件
12. chmod:修改文件或目录的权限。
chmod 755 myfile.txt: 将名为 “myfile.txt” 的文件设置为所有者可读写执行,组和其他用户只可读和执行。
chmod +x script.sh: 添加可执行权限到名为 “script.sh” 的脚本文件。
13. chown:修改文件或目录的所有者。
chown user1 myfile.txt: 将 “myfile.txt” 文件的所有者更改为 “user1”。
chown user1:group1 myfile.txt: 将 “myfile.txt” 文件的所有者更改为 “user1”,并将所属组更改为 “group1”。
14. top:显示当前系统的进程信息。
top: 显示当前系统的进程列表和系统资源使用情况。
top -u username: 显示指定用户的进程列表和资源使用情况。
15. ps:显示当前正在运行的进程。
ps -ef: 显示所有运行中的进程。
ps -aux: 显示所有用户的进程。
16. ifconfig:显示和配置网络接口信息。
ifconfig: 显示所有网络接口的配置信息。
ifconfig eth0 up: 启用名为 “eth0” 的网络接口。
17. ping:测试网络连接。
ping google.com: 向 google.com 发送 ICMP 请求,测试网络连接。
ping 192.168.0.1: 向 IP 地址 192.168.0.1 发送 ICMP 请求,测试网络连接。
18. ssh:通过安全的远程连接协议登录到远程主机。
ssh user1@192.168.0.1: 使用 SSH 远程连接协议登录到主机 192.168.0.1,使用 “user1” 用户名。
ssh -p 2222 user1@192.168.0.1: 使用 SSH 远程连接协议登录到主机 192.168.0.1,使用 “user1” 用户名,并指定使用端口号 2222。
19. systemctl:管理系统服务。
systemctl start apache2: 启动 Apache Web 服务器服务。
systemctl stop ssh
systemctl status nginx: 查看 Nginx 服务的状态。
systemctl enable mysql: 将 MySQL 服务设置为开机自启动。
20. yum:包管理器,用于安装、更新和卸载软件包。
yum install package-name
: 安装指定名称的软件包
yum clean all
: 清除本地 YUM 缓存和元数据
1.2关开机相关命令
1.shutdown: 这个命令用于安排系统关机。您可以使用不同的选项来指定关机时间和执行关机的方式。
shutdown now
:立即关机。
shutdown -h now
:立即关机,并且关闭电源。
shutdown -r now
:立即重启系统。
shutdown -h +5
:在5分钟后关机
2.reboot
: 这个命令用于重启系统。执行reboot
命令后,系统将会立即重新启动。3.
poweroff
: 这个命令用于立即关机,并关闭电源。
4.init
: 这个命令用于切换系统的运行级别。例如init 0
可以执行关机操作,而init 6
可以执行系统重启操作。5.
systemctl
: 这个命令用于管理系统服务。
systemctl poweroff
:立即关机。
systemctl reboot
:立即重启系统。
2.文件相关管理命令
2.1 文件7大基本类型
普通文件(Regular file): 存储文本、二进制数据或其他类型数据的常规文件,可以通过文本或二进制编辑器编辑或修改。
目录(Directory): 包含其他文件和目录的特殊文件,能够在其中创建和删除文件和目录。
符号链接(Symbolic link): 又称软链接,是指向其他文件或目录的特殊文件,可以将其想象为快捷方式。
字符设备(Character device): 连接到计算机系统的设备文件,例如键盘、鼠标和终端等。
块设备(Block device): 连接到计算机系统的设备,例如硬盘和 U 盘等。
管道(Pipe): 连接两个程序,以便在它们之间传递数据,用于进程间通信。
套接字(Socket): 用于网络通信的特殊文件,允许不同主机上的进程进行通信。
2.2 文件基本操作
1.普通文件
创建文本文件:
touch zai.txt: 创建名为 zai.txt 的空白文本文件。查看文本文件内容:
cat zai.txt: 在终端中显示整个文本文件的内容。
head zai.txt: 显示文本文件的前几行(默认为前 10 行)。
tail zai.txt : 显示文本文件的后几行(默认为后 10 行)。编辑文本文件:
vi zai.txt: 使用 Vi 或 Vim 文本编辑器打开文本文件进行编辑。复制、移动和重命名文本文件:
cp zai.txt hua.txt: 将 zai.txt 复制为 hua.txt。
mv zai.txt hua.txt: 将 `zai.txt` 移动或重命名为 hua.txt。
删除文本文件:
rm zai.txt: 删除名为 zai.txt 的文本文件。搜索文本文件内容:
grep pattern zai.txt: 在文本文件中搜索与指定模式匹配的行。
例如 grep "hello" zai.txt 将在 zai.txt 中搜索包含 "hello" 的行。2.目录文件
查看目录内容:
ls -l: 以长格式显示目录中的文件和子目录,包括文件权限、所有者、大小等详细信息。
ls -a: 显示目录中的所有文件和子目录,包括隐藏文件和目录。创建和删除目录:
mkdir nan: 创建名为 nan 的目录。
rmdir nan: 删除名为 nan 的空目录。
rm -r nan: 递归删除目录 nan 及其包含的所有文件和子目录。切换目录:
cd nan : 将当前工作目录切换到 nan目录。复制、移动和重命名目录:
cp -r nan zai: 递归复制目录 nan 及其所有内容到目标目录 zai 。
mv nan zai 将目录 nan 移动或重命名为 zai。查找目录:
find path -name filename: 在指定路径(包括子目录)中查找名为 `filename` 的文件或目录。管理目录权限:
chmod permissions dirname: 修改目录 dirname 的访问权限。
chown user:group dirname: 修改目录 dirname 的所有者和所属组。
chgrp group dirname: 修改目录 dirname的所属组。3.符号链接
创建符号链接:
ln -s target link: 创建指向目标文件或目录的符号链接。
例如:ln -s /path/to/target /path/to/link 将创建一个名为 `link` 的符号链接,指向 `/path/to/target`。查看符号链接信息:
ls -l link: 以长格式显示符号链接的详细信息,包括链接目标和权限等。
readlink link: 显示符号链接的目标路径。
删除符号链接:
rm link: 删除符号链接,而不会影响目标文件或目录。使用符号链接:
符号链接可以像普通文件或目录一样使用,通过它可以访问所链接的目标文件或目录。
例如,如果将符号链接链接到文件,则可以使用该链接打开、编辑和读取该文件。注意:符号链接是指向目标的路径,并不包含目标本身的数据。如果目标文件或目录被删除或移动,则符号链接可能会失效。
4.字符设备
stty -a
: 显示当前终端设备的所有参数设置。
/dev/null
: 一个特殊的字符设备,用于丢弃所有写入它的数据,常用于重定向输出或忽略输入。5.块设备
lsblk
: 列出系统中的块设备,包括硬盘、固态硬盘、磁盘分区等。
df -h
: 显示文件系统使用情况,包括挂载的块设备、可用空间等信息
mkfs
: 创建文件系统在块设备上。
示例:mkfs.ext4 /dev/sdb1
在/dev/sdb1
上创建 ext4 文件系统。
partprobe
: 扫描并更新内核的分区表。
udevadm
: 更新设备管理器中的设备信息。示例:当添加新的磁盘后,可以使用以上命令来识别和使用新设备。
6.管道
使用管道:
使用
|
操作符可以将一个命令的输出传递给另一个命令作为输入示例:
command1 | command2
: 将command1
的输出传递给command2
处理。管道和文本处理:
grep
: 用于在文本中匹配指定的模式。
示例:cat file.txt | grep "keyword"
使用管道将文件的内容传递给grep
命令,以查 找包含关键词的行。
awk
: 强大的文本处理工具,用于以行为单位进行文本处理。
示例:cat file.txt | awk '{print $2}'
使用管道将文件内容传递给awk
命令,提取 每 行的第二个字段进行输出管道和文件操作:
cat
: 用于连接文件并输出它们的内容。示例:
cat file1.txt file2.txt | sort
使用管道将两个文件的内容连接起来,并将 结 果传递给sort
命令进行排序。管道和命令链
可以将管道与其他命令链接起来,构建更复杂的命令链。
示例:
find . -name "*.txt" | grep "keyword" | sort -r
在当前目录下查找所有 以.txt
结尾的文件,然后过滤包含指定关键词的行,并按倒序排序输出。7.套接字
于描述两个计算机之间进行通信的一组信息
socket
: 用于创建套接字。示例:
int sockfd = socket(domain, type, protocol)
创建一个新的套接字并返回其 文 件描述符。
3.用户相关管理命令
用户(User)是操作系统中的一种重要资源,管理用户可以用于限制和控制系统的访问。
创建用户:
useradd
: 用于创建新用户账号。- 示例:
useradd -m username
创建一个新用户并为其创建主目录。修改用户密码:
passwd
: 用于修改用户密码。- 示例:
passwd username
修改指定用户的密码。切换用户:
su
: 切换登录到另一个用户帐户。- 示例:
su - username
切换到指定用户的帐户。删除用户:
userdel
: 用于删除用户账号。- 示例:
userdel -r username
删除指定用户,并同时删除其主目录。- 查看系统用户列表:
cut
和cat
: 用于查看系统用户列表。- 示例:
cut -d: -f1 /etc/passwd | cat
查看系统中所有用户的列表。- cat /etc/group--->(查看组)
- cat /etc/shadow--->(查看密码)
修改密码
echo redhat(密码)| passwd -stdin 用户名
修改用户权限:
chmod
: 用于修改文件或目录的权限。可以用于更改用户的访问权限。- 示例:
chmod -R 700 /home/username
更改用户主目录的权限,以仅允许该用户读、写和执行自己的文件。更改用户所属用户所属组
chmod 所属用户 : 所属组 文件名
4.权限相关管命令
权限(Permissions)是操作系统中用于控制对文件和目录的访问权限的机制。
1. 查看文件或目录的权限:
ls -l:显示详细的文件或目录信息,包括权限信息。
示例:ls -l myfile.txt 显示文件 myfile.txt 的权限信息。2. 修改文件或目录的权限:
chmod:用于修改文件或目录的权限。
chmod +权限 权限文件:为文件或目录添加权限。
chmod -权限 权限文件:从文件或目录中删除权限。
chmod =权限 权限文件:将文件或目录的权限设置为指定的权限。3. 修改文件或目录的所有者:
chown:用于修改文件或目录的所有者。
chown 新所有者 权限文件 :将文件或目录的所有者修改为指定的用户。
chown 新所有者:新所属组 权限文件 :同时修改文件或目录的所有者和所属组。4. 修改文件或目录的所属组:
chgrp:用于修改文件或目录的所属组。
chgrp 新所属组 权限文件:将文件或目录的所属组修改为指定的组。5.递归地修改文件或目录的权限:
chmod -R:该选项是递归操作,会将指定目录下的所有文件和子目录的权限一起修改。所以请谨慎使用。
示例:chmod -R 700 /home/user/documents 将 /home/user/documents 目录及其下的所有文件和子目录的权限设置为只允许所有者读、写和执行。6. 给其他用户或组添加权限:
chmod o+rwx 权限文件:添加其他用户(non-owner)对文件或目录的读、写和执行权限。
chmod g+rwx 权限文件:添加所属组对文件或目录的读、写和执行权限。7. 查看系统中用户和组的信息:
cat /etc/passwd:查看所有系统用户的信息。
cat /etc/group:查看所有系统用户组的信息。
5.网络
5.1简述
在 Linux 操作系统中,有一些常用的网络操作参数和命令可用于配置和管理网络连接。
1. IP 地址配置和查询:
ifconfig 或 ip addr:显示和配置网络接口的 IP 地址、子网掩码和其他相关信息。
例如 ifconfig eth0 或 ip addr show eth0 可以查看接口 eth0 的 IP 配置信息。2. 网络连接状态和信息查询:
netstat:显示网络连接状态信息,包括已建立的连接、监听端口等。
5.2 nmcli
nmcli
是 NetworkManager 命令行工具的简称,它是在 Linux 系统中用于管理网络连接的强大工具。它可以帮助用户配置和监控网络连接、网络接口以及网络设备。
网络连接管理:
- 列出当前的网络连接和其属性:
nmcli connection show
- 创建新的网络连接配置文件:
nmcli connection add
- 编辑已有的网络连接配置文件:
nmcli connection edit
- 删除指定的网络连接配置文件:
nmcli connection delete
网络接口管理:
- 列出当前的网络接口和其状态:
nmcli device show
- 激活指定的网络接口:
nmcli device connect
- 禁用指定的网络接口:
nmcli device disconnect
- 设置网络接口自动连接:
nmcli device set <interface> connection.autoconnect yes
DNS 和 IP 配置:
- 设置 DNS 服务器地址:
nmcli connection modify <connection> ipv4.dns
- 设置静态 IP 地址:
nmcli connection modify <connection> ipv4.addresses
5.3 nmtui
nutui
是一款基于 Vue.js 的 UI 组件库,为移动端 Web 开发提供了大量的易用的 UI 组件和工具集nutui
适用于移动端 Web 开发,尤其适合基于 Vue.js 的开发项目,减少了 UI 开发成本,提高了开发效率。
6.磁盘管理
1. 查看磁盘使用情况:
df:显示文件系统的磁盘空间使用率
例如df -h 可以显示磁盘空间使用率,并以人类可读的方式显示大小。2. 磁盘分区相关命令:
fdisk:对磁盘进行分区或更改分区表。
例如 fdisk /dev/sda 可以打开 sda 硬盘的分区表。3. 格式化磁盘:
mkfs:创建文件系统。
例如mkfs.ext4 /dev/sda1 可以将 sda1 格式化为 ext4 文件系统。4. 挂载磁盘:
mount :将文件系统挂载到特定目录。
例如 mount /dev/sda1 /mnt 可以将 sda1 文件系统挂载到 /mnt 目录下。5. 卸载磁盘:
umount :卸载文件系统。
例如 umount /dev/sda1 可以卸载 sda1 分区。6. 查看磁盘空间占用情况:
du :显示指定目录或文件的磁盘空间占用情况。
例如 du -sh /var 可以显示 /var 目录的磁盘空间使用情况,并以人类可读的方式显示大小。当涉及磁盘管理时:
1. 查看磁盘分区信息:
lsblk:以树形结构显示磁盘和分区信息。
例如,lsblk 命令将显示所有磁盘和分区的列表。2. 创建逻辑卷管理(LVM):
pvcreate:创建物理卷。
例如pvcreate /dev/sdb 将创建一个物理卷,使用 /dev/sdb 磁盘作为存储设备。
vgcreate:创建卷组。
例如vgcreate myvg /dev/sdb将创建一个名为 "myvg" 的卷组,使用 /dev/sdb 磁盘。
lvcreate:创建逻辑卷。
例如,`lvcreate -L 10G -n mylv myvg` 将在 "myvg" 卷组中创建一个名为 "mylv" 的逻辑卷,大小为 10GB。3. 扩展逻辑卷管理(LVM):
pvresize:调整物理卷大小。
例如,`pvresize /dev/sdb` 可以调整 /dev/sdb 物理卷的大小。
lvextend:扩展逻辑卷的大小。
例如,`lvextend -L +5G /dev/myvg/mylv` 可以将逻辑卷 /dev/myvg/mylv 扩展 5GB。
resize2fs:调整文件系统大小。
例如,`resize2fs /dev/myvg/mylv` 可以调整 /dev/myvg/mylv 上的文件系统大小。
7.进程
7.1 进程的三态
在操作系统中,进程可以处于三个不同的状态,这被称为进程的三态。这些状态是:
1. 运行态(Running):进程正在执行或等待执行。当处理器分配时间片给进程时,进程会从就绪态转换为运行态,并在处理器上执行其指令。在运行态,进程正在使用处理器执行计算和执行操作。
2. 就绪态(Ready):进程已经准备好运行,但由于处理器资源被分配给其他进程,它当前无法执行。进程在就绪队列中等待分配处理器。当处理器空闲时,操作系统会从就绪队列中选择一个进程来执行。
3. 阻塞态(Blocked):进程由于某些原因无法继续执行,例如等待输入/输出完成、等待资源就绪等。进程进入阻塞状态时,操作系统会将其阻塞,并将其从处理器中移除,使处理器能够执行其他可运行进程。一旦阻塞的条件满足,进程将从阻塞态转换回就绪态。
进程的状态转换通常如下所示:就绪态 -> 运行态 -> 阻塞态 -> 就绪态。操作系统通过调度算法来决定哪个进程应该从就绪状态转换为运行状态以及何时将进程从运行状态转换为阻塞状态。
了解进程的三态对于理解操作系统如何进行进程管理和调度非常重要,以便最大限度地利用处理器资源,并确保进程能够按照预期顺利执行。
7.2 进程的5态
在一些操作系统中,进程可以被划分为五个不同的状态,被称为进程的五态。这些状态是:
1. 创建态(New):进程正在被创建,操作系统正在为其分配必要的资源和数据结构。在该状态下,进程还没有准备就绪,无法被调度执行。
2. 就绪态(Ready):进程已经准备好运行,但由于处理器资源被分配给其他进程,在就绪队列中等待分配处理器。在就绪态下,进程等待操作系统的调度来分配处理器执行。
3. 运行态(Running):就绪态的进程被调度并获得处理器资源,正在执行其指令。在运行态,进程在处理器上执行计算和操作,直到发生以下情况之一:时间片用完、主动让出处理器或阻塞等。
4. 阻塞态(Blocked):进程由于某些原因不能继续执行,例如等待输入/输出完成、等待资源就绪等。进程进入阻塞状态时,操作系统会将其阻塞,并将其从处理器中移除,使处理器能够执行其他进程。一旦阻塞的条件满足,进程将从阻塞态转换为就绪态。
5. 终止态(Terminated):进程已完成执行或被操作系统终止。在终止态下,进程的所有资源都会被释放,并被操作系统从进程表中删除。
进程的状态转换通常如下所示:创建态 -> 就绪态 -> 运行态 -> 阻塞态 -> 就绪态 -> 运行态 -> ... -> 终止态。操作系统通过调度算法来决定进程之间的状态转换和处理器分配。
了解进程的五态对于理解操作系统的进程管理和调度策略非常重要,以确保资源的最有效利用,并确保进程按照预期执行。不同的操作系统可能采用不同的进程状态,但五态模型是一种常见且广泛接受的描述方式。
7.3进程管理操作命令
1. 查看进程信息:
ps:显示当前进程的快照信息。
例如ps aux 可以列出当前所有进程的详细信息。
top:实时显示系统中运行的进程和资源占用情况。
例如top 命令会实时更新并显示 CPU 使用率、内存占用等信息。并且top命令操作成功后,会出现5行:
1主机运行时间 登陆个数 负载均衡
2统计进程信息
3统计cpu使用率
4内存使用情况
5系统交换空间的使用情况。空间交换是操作系统用于扩展物理内存的一种机制
2. 终止进程:
kill:向进程发送终止信号。
例如kill PID根据进程的 PID 终止指定进程。
killall :根据进程名终止所有匹配的进程。
例如killall nginx 终止所有名为 "nginx" 的进程。3. 后台执行进程:
nohup:在后台运行进程,即使会话断开,进程也会继续执行。
例如 nohup command & 在后台运行命令,并将输出重定向到 nohup.out 文件。通过与符号可以将前台信息放到后台运行
sleep 3000 &
加ctrl +c(放在后台挂起)
查看后台信息
jobs(显示所有后台信息)
4. 进程优先级:
nice:修改进程的执行优先级。
例如nice -n 10 command运行命令,并将其优先级设为较低的值(10)。5. 进程监控:
htop:类似于 top 命令,可以实时显示系统中的进程和资源占用情况,并提供交互式界面。
8.软件安装
8.1软件安装
配置本地yum源举例
1.mount /dev/sr0 /mnt(临时挂载点)
2.ll /mnt/Appstream/
packages(记录所有包) repodata(记录所有依赖关系)
3.编辑文件
vim /etc/yum.repos.d/base.repo
然后编辑文件
[1]
name=1
baseurl(统一资源定位符)=file:///mnt/AppStream
gpgcheck=0(密钥验证不做校验)
[2]
name=2
baseurl=file:///mnt/BaseOS
gpgcheck=0
已配置好本地yum源
8.2 rpm相关参数
以下是常用的 RPM 相关参数的总结:
1. 查询软件包信息:
-q:查询已安装软件包的信息,例如 `rpm -q package_name` 可以查看已安装软件包的版本、发布号等信息。
-queryformat:设置输出格式,例如 rpm -q package2. 安装软件包:
-i:安装软件包,例如 rpm -i package_name.rpm 可以安装名为 package_name.rpm的软件包。
-test:测试安装软件包,不进行实际的安装操作,例如 `rpm --test -i package_name.rpm。
-replacepkgs:即使已存在同名的软件包,也进行安装替换。3. 升级软件包:
-U:升级已安装的软件包,例如 rpm -U package_name.rpm 可以升级名为 package_name.rpm的软件包。
-oldpackage:即使已存在较旧版本的软件包,也进行升级。4. 删除软件包:
-e:删除已安装的软件包,例如 `rpm -e package_name` 可以删除名为 `package_name` 的软件包。
-nodeps:忽略软件包的依赖关系,强制删除软件包。5. 查询文件所属的软件包:
-qf:查询文件所属的软件包,例如 `rpm -qf /path/to/file` 可以查找包含 `/path/to/file` 的软件包。6. 显示软件包信息:
-qi:显示软件包的详细信息,例如 `rpm -qi package_name` 可以显示名为 `package_name` 的软件包的信息。
-ql:显示软件包安装的文件列表,例如 `rpm -ql package_name` 可以显示名为 `package_name` 的软件包安装的文件列表。7.rpm -ivh 通过使用
rpm -ivh package_name.rpm
,可以安装名为package_name.rpm
的 RPM 软件包,并在安装过程中显示详细信息和进度条,方便用户跟踪安装进程。8.rpm -evh 通过使用
rpm -evh package_name
,可以卸载名为package_name
的 RPM 软件包,并在卸载过程中显示详细信息和进度条,方便用户跟踪卸载进程。9.rpm -qa 举例: rpm -qa | grep package1 可以只显示包含
package1
字符串的软件包。
8.3 tree相关参数
tree
是一个常用的命令行工具,用于以树状结构展示目录和文件的层级关系。
-a
:显示所有文件和目录,包括隐藏文件。-d
:仅显示目录,不显示文件。-L level
:限制显示的层级深度,level 为一个整数值。-f
:显示完整的路径名。-i
:不显示树形结构图形线条。-P pattern
:只显示符合模式的文件和目录。-s
:按照文件和目录的大小进行排序。-t
:按照文件和目录的最后修改时间进行排序。tree -ql
快速浏览目录层级- tree -qf 当您想查看完整的路径名以及目录和文件的层级关系时,可以使用