一、目录文件管理
ls 列出文件
ls
ls -l /
ls -a /
ls -lh /
-l表示使用列表形式展现文件
-a表示展现所有文件,包括隐藏文件
-h表示展示文件的大小,h参数需要与l一起使用,比如-lh
另外: 使用 -l 输出的列表文件目录,其最前面是 -(横杠)表示文件,是 d 表示目录
ll
是命令ls -l
的快捷输入
cd 切换工作目录
cd [linux路径]
cd
change directory
cd 切换到参数中的工作目录, 只有cd则回到home/user目录。
Linux是大小写敏感的系统
绝对路径:从根目录开始书写工作目录
eg: cd /home/user
相对路径:从当前工作目录继续书写工作 目录
eg: cd test
特殊路径符
- 特殊路径符. (一个点)表示当前目录, 比如`cd ./桌面
- 特殊路径符 … (两个点)表示上一级目录, 比如: cd … 切换到上一级目录,cd …/…切换到上二级的目录
- 特殊路径福~ (一个波浪号)表示HOME目录, 比如: cd~ 可以切换到/home/user目录
pwd 查看当前目录
pwd
pdw打印当前工作目录
print work directory
mkdir 创建目录
语法: mkdir [-p] Linux路径
mkdir
mkdir test # 在当前工作目录下创建test目录
mkdir -p test/test1/666 # 一次性构建多个层级目录,需要添加选项-p
另外,创建目录通常在 /home/user/目录下,其他原始系统工作目录下是不够权限进行目录创建的
touch 创建文件
语法: touch Linux路径
touch test.txt
cat 查看文件内容
cat 命令使文件所有内容显示出来, 当文件内容较少时可以使用,文件内容建议使用more翻页查看
more 查看文件内容(翻页)
more Linux文件
more /etc/services #通过敲击空格实现翻页, 敲击enter实现换行, 敲击 q 退出显示
cp 复制文件或目录
cp
命令是 Linux 中一个常用的文件复制命令。它的基本语法如下:
cp [选项] 源文件 目标文件
其中,源文件
是要复制的文件或目录的路径,目标文件
是复制后的文件或目录的路径。
以下是一些常用的 cp
命令选项:
-r
或--recursive
:递归复制目录及其内容。-i
或--interactive
:交互式模式,覆盖确认提示。-v
或--verbose
:显示详细的复制过程。-u
或--update
:仅在源文件较新时才复制。-p
或--preserve
:保留源文件的权限和属性。-f
或--force
:覆盖目标文件,不提示。
以下是几个例子:
- 复制文件:
cp file1.txt file2.txt
- 复制目录及其内容:
cp -r dir1 dir2 # 不加上-r会显示 cp: 略过目录"david"
- 复制并保留权限及属性:
cp -p file1.txt file2.txt
rm 删除文件或目录
rm命令的简介、作用和注意点: rm
命令用于永久删除文件和目录。它的作用是删除指定的文件或目录,但需要注意的是删除后无法恢复,因此使用时要谨慎。要注意的几点是:1. 使用前确认具有足够的权限;2. 删除操作是不可逆的;3. 删除目录时需使用 -r
选项。
rm命令的语法和参数选项:
rm [选项] 文件或目录
常用的选项包括:
-f
:强制删除,无需确认提示;-i
:交互式删除,删除前进行确认提示;-r
:递归删除目录及其内容;-v
:显示详细删除过程。
rm命令的例子:
- 删除文件:
rm file1.txt
- 删除目录及其内容:
rm -r dir/
rm命令的补充:
- 若要在删除文件前得到确认提示,可使用
-i
或--interactive
选项; - 使用
-f
或--force
选项可以强制删除,但需要谨慎使用; - 使用
-s
选项可删除符号链接; - 对于以
-
开头的文件名,需使用--
选项来明确指定其为文件名而非选项。 - 删除多个文件
rm -r test1.txt test2.txt
中间使用空格隔开 rm
命令支持通配符*, 用来模糊匹配
通配符匹配:
rm
命令支持使用通配符*
来进行模糊匹配。通配符*
可以匹配任意长度的字符序列,可用于删除符合特定模式的文件。
举例:
- 删除所有以
.txt
为扩展名的文件:rm *.txt
- 这将删除所有以.txt
结尾的文件。 - 删除所有以
test
开头的文件:rm test*
- 这将删除所有以test
开头的文件。 - 删除所有包含
test
的文件:rm *test*
- 这将删除所有以test
开头的文件。
mv 移动或重命名文件或目录
mv
用于移动文件或者重命名文件的命令。它的基本语法如下:
mv [选项] 源文件 目标文件
其中,源文件
是要移动或重命名的文件或目录的路径,目标文件
是移动或重命名后的文件或目录的路径。
以下是一些常用的 mv
命令选项:
-i
或--interactive
:交互式模式,覆盖确认提示。-v
或--verbose
:显示详细的移动过程。-u
或--update
:仅在源文件较新时才移动。-f
或--force
:强制移动,覆盖目标文件。root用户才可以用
以下是几个例子:
- 移动文件:
mv file1.txt dir/
将 file1.txt
移动到 dir/
目录下。
- 重命名文件:
mv file1.txt file2.txt #保持file1.txt 与file2.txt在同一个文件夹下,其中file2.txt是不存在的,从而实现重命名
将 file1.txt
重命名为 file2.txt
。
- 移动目录:
mv dir1/ dir2/
将整个 dir1/
目录移动到 dir2/
目录下。
which
which
命令用于查找并显示指定命令的可执行文件路径。它可以帮助你确定系统中特定命令的位置。
使用 which
命令的语法如下:
which [选项] 命令名称
选项:
-a
:显示所有匹配的可执行文件路径,而不仅仅是第一个匹配项。
示例:
- 查找
ls
命令的可执行文件路径:which ls
,输出结果可能为/bin/ls
。 - 显示所有匹配
gcc
命令的可执行文件路径:which -a gcc
,输出结果可能为/usr/bin/gcc
和/usr/local/bin/gcc
。
which
命令对于确认命令是否存在、确定命令路径以及解决命令冲突等方面非常有用。
find 按文件名查找文件
find
命令用于在指定路径下递归查找符合条件的文件和目录。它可以根据文件名、文件类型、文件大小、修改时间等多个条件进行高级搜索。
使用 find
命令的语法如下:
find [路径] [选项] [操作]
常用选项:
-name
:按照文件名进行匹配,支持通配符。-type
:按照文件类型进行匹配,如f
表示普通文件,d
表示目录。-size
:按照文件大小进行匹配,单位为块,支持+
和-
符号。-mtime
:按照文件修改时间进行匹配,单位为天,支持+
和-
符号。-exec
:针对搜索到的文件执行特定操作。
示例:
-
在当前目录下搜索文件名为
example.txt
的文件:find . -name "example.txt"
。 -
在
/home/user
目录下搜索修改时间在7天以内的普通文件:find /home/user -type f -mtime -7
。 -
在整个系统中搜索大小大于100MB的目录:
sudo find / -type d -size +100M
。 -
find
也可以使用通配符进行匹配搜索 -
要按照文件大小使用
find
命令来查找文件,你可以使用-size
选项。
命令语法:
find Linux路径 -size +|- nKMG 以下是使用
-size` 选项的一些示例: -
查找文件大小大于10MB的文件:
find /path/to/search -size +10M
-
查找文件大小小于1KB的文件:
find /path/to/search -size -1k
-
查找文件大小等于100MB的文件:
find /path/to/search -size 100M
-size
选项用于指定文件大小,可以使用以下单位:
c
:字节k
:KB(千字节)M
:MB(兆字节)G
:GB(千兆字节)
此外,你还可以使用 +
和 -
前缀来表示相对文件大小。+
表示大于,-
表示小于。
find
命令非常强大且灵活,可用于各种文件查找和操作的需求。
grep 在文件中搜索特定的模式
grep
命令是一个非常强大的文本搜索工具,用于在文件或输入流中查找匹配某个模式的行。
使用 grep
命令的基本语法如下:
grep [选项] 模式 [文件]
常用选项:
-i
:忽略大小写。-r
:递归搜索子目录。-v
:显示不匹配模式的行。-l
:仅显示包含匹配模式的文件名。-n
:显示匹配模式的行及其行号。-e
:指定多个模式。
示例:
- 在文件中搜索包含关键字 “example” 的行:
grep "example" file.txt
。 - 在文件夹及其子目录下递归搜索包含关键字 “search” 的文件内容:
grep -r "search" /path/to/directory
。 - 忽略大小写,在多个文件中搜索包含关键字 “apple” 或 “orange” 的行:
grep -i -e "apple" -e "orange" file1.txt file2.txt
。
grep
命令还支持使用正则表达式进行高级模式匹配,可以根据需求来深入学习更多的用法。
wc 统计内容数量
wc
是一个常用的命令行工具,用于计算文件或输入流中的行数、字数和字节数。
使用 wc
命令的基本语法如下:
wc [选项] [文件]
常用选项:
-l
:仅计算行数。-w
:仅计算字数。-c
:仅计算字节数。-m
:仅计算字符数(仅适用于多字节字符的语言)。-L
:计算最长行的长度。
示例:
- 统计文件中的行数、字数和字节数:
wc file.txt
。 - 仅计算文件中的行数:
wc -l file.txt
。 - 统计输入流中的行数:
cat file.txt | wc -l
。 - 计算最长行的长度并显示:
wc -L file.txt
。
wc
命令非常有用,在文本分析和统计中经常被使用。它可以帮助你了解文件的基本属性和内容信息。
默认返回的结果: 行数, 字符数, 字节数, 文件名
ln 命令创建软连接
在系统中创建软链接,可以将文件、文件夹链接到其他位置,类似Windows系统中的快捷方式
语法:
ln -s 参数1 参数2
-s
选项,创建软链接- 参数1:被链接的文件或文件夹
- 参数2:要链接去的目的地文件夹
示例
ln -s /etc/yum.conf ~/yum.conf
ln -s /etc/yum ~/yum
cd
直接cd
将默认回到/home/user
文件夹中
| 管道符
shift + 右边enter上面的键
管道符 |
是一个在命令行中使用的特殊符号,用于将一个命令的输出传递给另一个命令作为输入。将左边的结果作为右边的输入
通过使用管道符 |
,可以将一个命令的输出直接传递给下一个命令进行处理,从而实现多个命令的组合操作。
以下是一些示例:
-
在文件中搜索包含关键字 “example” 的行,并把结果传递给
grep
进行进一步过滤:cat file.txt | grep "example"
-
列出当前目录下的所有文件,并按名称进行排序:
ls | sort
-
统计文件中的行数:
cat file.txt | wc -l
-
统计文件夹中的文件数:
ls -la Linux文件夹 | wc - l
通过使用管道符 |
,可以将多个命令链接在一起,以达到更复杂的操作目的。这种方式在命令行中非常有用,并且让命令的组合更加灵活和高效。
只要有输出的命令就可以与|
搭配使用, 同时多个管道符可以嵌套使用
cat test.txt | grep haha | wc - l
>, >> 重定向操作符
>
和 >>
是重定向操作符,用于将命令的输出重定向到文件中。
-
>
用于将命令的输出覆盖到指定的文件中。如果文件不存在,则会创建一个新文件;如果文件已经存在,则会先清空文件内容,然后再写入命令的输出。示例:
command > file.txt
-
>>
用于将命令的输出追加到指定的文件中。如果文件不存在,则会创建一个新文件;如果文件已经存在,则会在文件末尾追加命令的输出。示例:
command >> file.txt
注意:
- 重定向符号
>
和>>
只会将命令的标准输出重定向到文件,不会重定向标准错误输出。要将标准错误重定向到文件,可以使用2>
或2>>
。 - 重定向符号可以用于任何产生输出的命令,例如
echo
、cat
、grep
等。
希望以上解释对你有帮助!如果还有其他问题,请随时提问。
echo命令
echo
是一个常用的命令行工具,在终端中用于打印文本或变量的值。
基本的语法格式是:
echo [选项] [字符串或变量]
echo
命令会将给定的字符串或变量的值打印到标准输出(终端)。
示例:
-
打印一段文本:
echo "Hello, World!"
-
打印变量的值:
name="Alice" echo $name
-
嵌入换行符:
echo -e "Line 1\nLine 2"
echo
命令还支持一些选项,常用的选项包括:
-e
:启用特殊字符的解析,例如换行符\n
。-n
:禁止在输出末尾添加换行符。
请注意,echo
命令输出的内容通常会直接显示在终端上或者传递给其他命令进行进一步处理。
echo还能进行命令结果打印, 需要在后面的命令中加上反引号command
echo `pwd`
会执行pwd并返回其结果
tail 查看文件末尾内容
tail
是一个常用的命令行工具,用于显示文件的末尾内容。
tail
命令的基本语法如下:
tail [选项] [文件]
常用选项:
-n NUM
:显示文件末尾的最后 NUM 行内容。-f
:实时监视文件的末尾,当文件有新内容时会自动更新显示。输入 Ctrl + C 退出该命令
示例:
-
显示文件末尾的最后几行内容(默认为 10 行):
tail file.txt
-
显示文件末尾的指定行数内容:
tail -n 20 file.txt
-
实时监视文件的末尾,并自动更新显示新内容:
tail -f file.txt
tail
命令对于查看日志文件、监视文件变化或者只关注文件的后部分内容很有用。
文件压缩与解压
tar 打包和解包文件和目录
Linux常用压缩格式:zip、tar、gzip
.tar
称之为tarball,归档文件,是简答的文件组装,体积并未多大减少.gz
常见为.tar.gz
格式压缩文件,使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
以上两种格式,均可以使用tar
命令进行压缩
语法
tar [-c -v -x -f -z -C] 参数1 餐数
参数
-c
创建压缩文件,用于压缩模式-x
解压模式, 用于解压文件-v
现实压缩、解压过程,用于查看进度-f
要创建的文件,或要解压的文件,-f
选项必须在所有选项中位置处于最后一个-z
进入gzip模式,不使用该参数,则默认是普通的tarball格式-C
选择解压的目的地,用于解压模式
示例
tar -cvf test.tar 1.txt 2.txt 3.txt
将文件 1.txt 2.txt 3.txt压缩到test.tar文件中
tar -zcvf test.gz 1.txt
将文件 1.txt 压缩到tset.gz文件中
tar -xvf test.tar
解压test.tar,将文件解压至当前目录
tar -xvf test.tar -C /home/david
解压test.tar, 将文件解压到/home/david目录
tar -zxvf test.tar.gz -C /home/david
以gzip模式解压test.tar.gz, 将文件解压至指定目录
zip 命令压缩文件
可以使用zip
命令压缩文件为zip压缩包
语法
zip [-r] 参数1 参数2
参数
-r
被压缩的包含文件夹的时候,需要使用-r
选项,和rm
,cp
等命令的-r
效果一致
示例
zip test.zip a.txt b.txt c.txt
将a.txt b.txt c.txt 压缩到test.zip文件内
zip -r test.zip test
将test 文件夹压缩到test.zip文件内
unzip 解压文件
使用unzip
命令,可以方便的解压zip压缩包
语法
unzip [-d] 参数
参数
-d
指定要解压去的位置,同tar
的-C
选项- 参数, 被解压的zip压缩包文件
unzip test.zip
将test.zip解压到当前目录文件夹
unzip test.zip -d /home/david
将test.zip解压到指定目录
二、用户管理与权限
切换、退出用户
su root 切换成root用户
su
命令可以用于切换用户身份,其中包括切换到 root
用户。若要切换为 root
用户,可以使用以下命令:
su root
执行此命令后,系统会提示输入 root
用户的密码。输入正确的密码后,即可切换到 root
用户,并获得 root
用户的权限。请确保只在必要时使用 root
用户的权限,以避免意外操作对系统造成不可预料的影响。
visudo 给普通用户设置sudo权限
按下 o 进入编辑,在最后一行加入
user_name ALL=(ALL) NOPASSWD:ALL
exit, :wq
保存,exit回到普通用户
sudo +其他命令 使用root权限执行命令
临时赋予root赋权,如果没有使用visudo进行配置,则需要密码
exit、Ctrl + d 退回普通用户
用户组
groupadd 创建用户组
需要在root用户权限,
groupadd group_name
groupdel 删除用户组
groupdel group_name
id 查看用户所属组
id [user_name]
参数:用户名,被查看的用户,如果不提供则查看自身
usermod 修改用户所属组
usermod -aG [user_group] [user_name]
将指定用户假如指定用户组
getent group 查看系统全部组信息
getent group
用户
useradd 创建用户
useradd user_name
useradd
是一个 Linux 系统中用于创建新用户的命令。当你运行 useradd
命令时,系统将创建一个新的用户账户,并相应地设置用户的主目录、用户 ID、用户组等信息。
下面是 useradd
命令的一般语法和一些常用选项:
useradd [选项] 用户名
常用选项包括:
-m
:创建用户时自动创建主目录。-d
:指定用户的主目录路径,不指定,HOME
目录默认在/home/user_name
-s
:指定用户的默认 shell。-u
:指定用户的用户 ID。-g
:指定用户的初始用户组, 不指定-g,会创建同名组并自动加入,指定-g
需要租已经存在,如已存在同名组,必须使用-g
-G
:指定用户的附加用户组。
例如,要创建一个名为 “testuser” 的新用户,可以运行以下命令:
useradd -m -s /bin/bash testuser
这将创建一个带有主目录 /home/testuser
,默认 shell 为 /bin/bash
的新用户 “testuser”。
请注意,创建用户通常需要以 root 身份或拥有适当的权限运行 useradd
命令。
userdel 删除用户
su user_name
切换账号
userdel user_name
删除用户, 注意删除用户后,对应的创建的/home/user_name
文件夹并不会被删除,需要使用rm -rf user_name
删除
或者使用userdel -r user_name
来完全删除用户以及文件夹
getent 查看当前系统中有哪些用户
getent passwd
返回结果包含7份信息:
用户名,密码(x) ,用户ID,组ID,描述信息(无用), HOME目录, 执行终端(默认bash)
getent passwd 查看系统全部用户信息
getent passwd
权限查看、修改
ls 查看权限控制信息
ls -l
在第一个红色方框中,我们可以了解到权限信息
drwx-xr-x
表示:
- 第一位的
d
表示文件夹,如果是软连接用l
表示 - 第2-4位的
rwx
表示对应的第二个红色方框中的用户拥有权限为:有r有w有x - 第5-7位的
r-x
表示对应的第三个红色方框中的用户组(david) 拥有的权限为:有r
无w
有x
(-
表示没有改权限) - 第8-10位的
r-x
表示其他用户的权限是:有r
无w
有x
r
,w
,x
的权限含义
r
针对文件表示可以查看文件内容,针对文件夹,可以查看文件夹内容,如ls
命令w
针对文件表示可以修改此文件,针对文件夹,可以在文件夹内:创建、删除、改名等操作x
针对文件表示可以将文件作为程序执行,针对文件夹,可以更改工作目录到此文件夹,即cd
进入
chmod 修改文件或目录的权限
语法:
chmod [-R] 权限 文件或文件夹
选项 -R, 对文件夹内的全部内容应用同样的操作
示例:
- 修改文件权限
chmod u=rwx, g=rx, o=x hello.txt
将hello.txt
的权限修改为 rwxr-x--x
- 修改文件夹权限
chmod -R u=rwx, g=rx, o=x test
将文件夹test
以及文件夹内全部内容权限设置为rwxr-x--x
u
,g
,o
对应的含义
u
表示用户g
表示用户组o
表示其他用户
当你在终端上使用 ls 命令时,如果结果以绿色的字体显示,通常表示这些文件是可执行文件。
权限的数字符号
在 Linux 和类 Unix 系统中,权限用三个数字(0-7)来表示,每个数字代表不同的权限级别。
三个数字分别对应于文件所有者(user)、文件所属组(group)和其他用户(other)的权限。
每个数字由三个位组成,这些位可以是以下四种权限之一:
- 读取权限(r):表示可以读取文件内容或查看目录中的文件列表。
- 写入权限(w):表示可以向文件中写入内容或创建、删除文件。
- 执行权限(x):对文件而言,表示可以执行该文件作为程序或脚本。对目录而言,表示可以进入并使用该目录。
- 没有权限(-):表示没有相应的权限。
以下是对应权限的数值表示:
r
(读取权限):4w
(写入权限):2x
(执行权限):1-
(没有权限):0
要计算权限数值,只需将对应权限的数值相加即可。例如,如果一个文件的权限为 -rw-r--r--
,则对应的权限数值为 644,即 4+2+0+4+0+4+0+4+0。
以下是在 Linux 和类 Unix 系统中,数字权限(0-7)和其对应权限含义的列表:
-
0
:没有权限(—) -
1
:执行权限(–x) -
2
:写入权限(-w-) -
3
:执行权限 + 写入权限(-wx) -
4
:读取权限(r–) -
5
:读取权限 + 执行权限(r-x) -
6
:读取权限 + 写入权限(rw-) -
7
:读取权限 + 执行权限 + 写入权限(rwx)
以上权限含义指的是文件的权限。在文件的权限中,第一个数字表示所有者的权限,第二个数字表示所属组的权限,第三个数字表示其他用户的权限。
例如,权限为 754 的文件的权限含义是:
- 所有者有读、写、执行权限(rwx)
- 所属组有读、执行权限(r-x)
- 其他用户有读权限(r–)
chmod 515 hello.txt
将hello.txt
文件的权限修改为u=xr, g=x,o=xr
chmod 326 hello.txt
将hello.txt
文件的权限修改为u=wr,g=w,o=rw
chown 修改文件或目录的所有者
chmod
只能修改当前的用户、用户组对应的权限,而不能修改用户和用户组,通过chown
可以实现该功能。
chown
是一个在 Linux 和类 Unix 系统上使用的命令,用于更改文件或目录的所有者和所属组。
chown
的基本语法如下:
chown [options] owner[:group] file(s)
其中:
owner
是新的所有者的用户名或用户 ID。group
是新的所属组的组名或组 ID。这是可选的,如果省略,则默认为文件的当前所属组。file(s)
是要更改所有者和所属组的文件或目录。可以指定一个或多个文件。
一些常用的 chown
选项包括:
-R
或--recursive
:递归地更改指定目录下的所有文件和子目录的所有者和所属组。-v
或--verbose
:显示详细操作信息。-c
或--changes
:只显示发生更改的文件。
以下是 chown
命令的一些示例:
- 更改文件的所有者为用户
user1
:
chown user1 file.txt
- 更改文件所属组为组
group
:
chown :group1 file.txt
- 同时更改文件的所有者为
user1
和所属组为group1
:
chown user1:group1 file.txt
- 递归地更改目录及其子目录下所有文件和目录的所有者和所属组:
chown -R user1:group1 directory/
注意:使用 chown
命令通常需要超级用户(root)权限或文件的所有者权限。请谨慎使用该命令,避免对系统文件和目录造成意外修改。
三、软件安装管理
yum 安装软件程序
yum
是一个在 Red Hat 系统(如 CentOS、Fedora)中用于管理软件包的包管理工具。它可以用于安装、更新、删除和搜索软件包,以及解决软件包之间的依赖性。在 CentOS 中,安装的文件通常以 RPM (Red Hat Package Manager) 格式存在。RPM 是一种基于包管理系统的软件打包和部署方式。
以下是一些常用的 yum
命令和其功能:
yum [-y] [install | remove | serach] 程序名
-
安装软件包:
yum install 软件包名称
例如,要安装名为 “nginx” 的软件包,可以运行
yum install nginx
命令。 -
更新软件包:
yum update
该命令将更新系统中所有已安装软件包的最新版本。
-
删除软件包:
yum remove 软件包名称
例如,要删除名为 “nginx” 的软件包,可以运行
yum remove nginx
命令。 -
搜索软件包:
yum search 关键词
该命令将在可用软件包的名称和描述中搜索匹配指定关键词的软件包。
-
列出已安装的软件包:
yum list installed
该命令将列出系统中已安装的所有软件包。
这些只是 yum
命令的一些常见用法,yum
还有其他一些选项和功能。请注意,在使用 yum
命令时,你需要有适当的权限(如 root 用户)。
yum -y
是 yum
命令的一个常用选项,用于在执行命令时自动回答 “yes”,以便在确认提示时自动接受操作。
通常,当你运行 yum install
、yum remove
或 yum update
等命令时,系统会显示一个确认提示,询问是否继续执行操作。使用 -y
选项可以避免手动输入 “yes” 确认,使命令自动接受并执行。
例如,要自动接受确认提示并安装一个软件包,可以运行以下命令:
yum -y install 软件包名称
自动接受确认提示,并删除一个软件包
yum -y remove 软件包名称
这将在执行安装命令时自动回答 “yes”,无需手动确认。
需要注意的是,使用 -y
选项时要谨慎,确保你明确了解将执行的操作,并确认它不会对系统产生不必要的影响。
systemctl 控制服务的启动、停止、开机自启
内置软件,和第三方软件安装后会自动集成到systemctl中,如果没有集成到systemcrl中,就需要手动添加。
能够被systemctl管理的软件,一般也称之为:服务
systemctl start | stop | status | enable | disable 服务名
- 查看防火墙状态
systemctl status firewalld
- 关闭防火墙服务
systemctl stop firewalld
- 启动防火墙服务
systemctl start firewalld
- 关闭防火墙开机自启
systemctl disable firewalld
- 开启防火墙开机自启
systemcrl enable firewalld
四、系统、网络信息查看与管理
ifconfig 显示网络接口
每一台联网的电脑都会有一个地址,用于和其他计算机进行通讯
IP地址主要有2个版本,V4版本和V6版本(V6很少用)
IPv4版本的地址格式是:a.b.c.d
, 其中abcd
表示0-255的数字,如192.168.88.104
就是一个标准的IP地址。
ifconfig
在返回的网络接口参数第一个类别中【一般为ens33,随着版本更新可能是其他参数,比如我的是enpos3】,找到inet参数后面的IP地址【下图中的红色部分】
如果无法使用ipconfig
命令,则需要安装
yum -y install net-tools
127.0.0.1
IP地址 示本地回环IP,也就是本机
0.0.0.0
IP地址也可以用于指代本机,也可以在一些白名单中表示任意IP
ping
ping
是一个常用的网络诊断工具,用于测试计算机与另一台计算机或网络设备之间的连通性。其工作原理是通过发送互联网控制消息协议(ICMP)的回显请求消息给目标主机,并等待回复来确认目标主机的可达性。如果目标主机响应了这些请求,那么可以认为两台计算机之间存在有效的网络连接。
使用ping
命令的基本格式很简单,直接在命令行中输入ping
后跟目标主机的IP地址或主机名即可。
测试与Google DNS服务器的连通性:
ping 8.8.8.8
测试与Google DNS服务器的连通性:
ping www.baidu.com
hostname 查看主机名
每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名
hostname
hostnamectl 修改主机名
主机名是可以修改的
hostnamectl set-hostname 修改的主机名字
重启finalshell后就可以看到hostname变化了
修改主机名
vi /etc/hostname
修改localhost.localdomain
为对应的主机名
修改主机ping名
vi /etc/hosts
域名解析
IP地址很难记忆,可以通过主机名或替代的字符地址去代替数字化的IP地址。
例如www.baidu.com
是百度的网址,称之为域名
DNS 服务器能够你发送域名,返回对应的IP地址参数
ping 检查制定网络服务器是否可联通
语法
ping [-c num] ip或主机名
-c
检查的次数,不适用-c
选项,将无限次检查ip或主机名
被检查的服务器的IP地址
示例
ping baidu.com
有类似的time
【红色框体】则表明,服务器连接正常,同时也可以从访问的主机名知道对应的IP地址。
上图这种返回结果表明该IP地址是不存在的,无法访问
wget 从网络上下载文件
wget
是非交互式的文件下载器,可以在命令行内下载网络文件
语法
wget [-b] url
-b
可选,后台下载,会将日志写入到当前工作目录的wget-log
文件中url
下载链接
示例
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
下载文件,可以使用ctrl + c
取消下载,下载无论完成不完成,均会产生对应的文件,如果是下载失败的文件,需要消除
wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
在后台下载文件,将下载日志写入得到wget-log
文件中, 可以使用一下命令来持续查看下载日志最新信息
tail -f weget-log
curl 发起网络请求
curl
命令可以发送http
网络请求,可用于下载文件、获取信息等
语法
curl [-O] url
-O
用于下载文件,当url是下载链接时,可以使用此选项保存文件url
要发起请求的网络地址
示例
curl cip.cc
能够返回主机的公网IP地址,结果如下图
curl python.itheima.com
访问网络请求,将打印出网页源码HTML
curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
curl 与 wget的区别
curl -O
和 wget
都是常见的用于从远程服务器下载文件的命令行工具。它们之间的区别在于以下几个方面:
-
语法和用法:
- 使用 “curl -O” 时,后面跟着要下载的文件的 URL。该命令会将远程文件下载到当前目录,并保持与远程文件相同的文件名。
- 使用 “wget” 时,后面跟着要下载的文件的 URL。该命令会将远程文件下载到当前目录,并保持与远程文件相同的文件名。
-
支持的协议:
- “curl” 支持多种协议,包括 HTTP、HTTPS、FTP、SCP、SFTP 等。
- “wget” 同样支持多种协议,包括 HTTP、HTTPS、FTP 等。
-
功能和选项:
- “curl” 可以更灵活地进行文件下载,并且支持更多的选项和参数,例如设置请求头、上传文件、支持多个 URL 并行下载等。
- “wget” 通常用于简单的文件下载,但其功能也相对简单,主要用于下载文件和递归下载整个目录。
综上所述,“curl -O” 和 “wget” 都是常用的命令行下载工具,功能上有一些差异。如果只需要基本的文件下载功能,两者的使用效果可能相似,但如果您需要更高级的选项和功能,则 “curl” 提供更多选择。
date 查看系统的时间
语法
date [-d] [+格式化字符串]
-d
表示按照给定的字符串显示日期,一般用于日期计算- 格式化字符串:通过特定得到的字符串标记,来控制显示的日期格式
-%Y
年
-%y
年份后两位数组 (00 - 99)
-%m
月份 (01 - 12)
-%d
日 (00 - 31)
-%H
小时 (01 - 24)
-%M
分钟 (00 - 59)
-%S
秒 (00 - 60)
-%s
自1970-01-01 00:00:00 UTC 到现在的秒数
示例
date +%Y-%m%d
显示当前的年-月-日
date "+%Y-%m-%d %H:%M:%S"
显示当前的年-月-日 时:分:秒
,此处因为格式化字符串有空格间隔,所以要求使用引号包括起来,单双引号无限
date -d '+1 day' +%Y-%m-%d
明天的日期
date -d '-1 day' +%Y-%m-%d
昨天的日期
date -d '-1 month' +%Y-%m-%d
上个月的日期
date -d '-1 year' +%Y-%m-%d
上一年的日期
端口
端口可以分为:物理端口和虚拟端口
物理接口又称为接口,如USB接口
虚拟端口是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
为什么需要端口:
IP地址只能帮助锁定计算机,但是无法锁定具体的程序,通过虚拟端口能够锁定计算机上具体的程序,确保程序之间进行信息交互。就好比IP地址能够帮我们定位一个小区,但是小区里面有很多住户,需要使用端口来具体到某一个住户。
Linux系统可以支持65535个端口,分为公认端口、注册端口、动态端口
- 公认端口:1 - 1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,非特殊需要,不会占用该端口
- 注册端口:1024 - 49151,通常可以随意使用,用于松散的绑定一些程序、服务
- 动态端口:49152 - 65535,通常不会固定绑定程序,而是当程序对外进行网络连接时,用于临时使用
nmap 查看端口的占用情况
nmap可用于查看制定IP暴露的端口情况,也就是其他非本机的IP暴露接口也可以进行嗅探
sudo yum -y install nmap
nmap
非系统自带,需要下载 nmap
语法
nmap 被查看的IP地址
嗅探IP地址的端口使用情况
nmap 127.0.0.1
查看本机的端口暴露情况
netstat 查看所有端口的占用情况
sudo yum -y install net-tools
netstat
命令也不是系统自带的,需要下载
语法
netstat -anp | grep 类似端口号
查看类似端口号的占用情况
netstat -anp | grep 222
查看类似222
端口号的占用情况
进程
ps 查看进程
使用ps
命令查看Linux系统的进程情况
语法
ps [-e -f]
选项
-e
显示出全部的进程-f
以完全格式化的形式展示信息
ps -ef
列出全部进程的全部信息
进程信息
UID
进程所属的用户IDPID
进程的进程号IDPPID
进程的父ID(启动此进程的其他进程)C
此进程的CPU占用率(百分比)STIME
进程的启动时间TTY
启动此进程的终端序号,如显示?
表示非终端启动TIME
进程占用CPU的时间CMD
进程的启动命令或启动路径
可以配合 grep
来进行进程过滤
ps -ef | grep tail
准确找到tail
命令的进程信息, grep
不仅可以过滤名称,还可以对进程号,用户ID等进行过滤
ps -ef | grep 30001
过滤带有30001
关键字的进程信息(一般指代过滤30001进程号)
kill 关闭进程
语法
kill [-9] 进程ID
选项
-9
表示强制关闭进程,不使用此选项会向进程发送信号要求其关闭,但是进程自身是否关闭需要看进程自身的处理机制
top 显示运行进程和资源使用情况
top
是一个常用的命令行工具,用于实时监视和管理 Linux 或 Unix 系统中的进程和系统资源。类似Windows的任务管理器,默认每5秒刷新一次,输入top
即可, 按q
或ctrl + c
退出
top
结果如下图
当在终端中运行 top
命令时,将显示一个交互式的实时进程监视器。它提供了以下有用的信息:
-
第一行系统总览:
上图对应的含义:top
命令名称,- 23:44:10 当前系统时间
up 1 day
主机启动了约1天4 users
4个用户登入load average: 0.59, 0.52, 0.40
对应1分钟、5分钟、15分钟的平均负载分别为 0.59、0.52、0.40, 可以理解为0.59颗CPU繁忙中
-
第二行进程总信息:
Tasks:213个进程,1 running: 1个进程正在进行, 212 sleeping:212个进程在睡眠中,0 zombie: 0 个僵尸进程 -
第三行CPU使用率信息:
Cpu(s)
CPU使用率,us
用户CPU使用率,SY
系统CPU使用率,ni
高优先级进程占用CPU时间百分比,id
空闲CPU率,wa
IO等待CPU 占用率,hi
CPU硬件中断率 -
第四五行
Kib Mem
物理内存,total
总量,free
空闲,used
使用,buff/cache
buff和cache占用
Kib Swap
虚拟内存,total
总量,free
空闲,used
使用,buff/cache
buff和cache占用 -
进程
PID
进程ID
USER
进程所属用户
NI
负值表示高优先级,正表示低优先级
VIRT
进程使用虚拟内存,单位KB
RES
进程使用物理内存,单位KB
SHR
进程使用共享内存,单位KB
S
进程状态(S休眠,R运行,Z僵尸状态,N负数优先级,I空闲状态
%CPU
进程占用CPU率
COMMAND
进程的命令或名称或程序文件路径
top命令支持选项
-p
只显示某个进程的信息,top -p 1
只显示进程1的信息-d
设置刷新时间,默认为5s,top -d 3
调整刷新时间为3s-c
显示产生进程的完整命令,默认是进程名-n
指定刷新次数,top -n 3
默认top命令会一直刷新,设置刷新次数后,刷新到该次数后,就会推出top命令-i
不显示任何闲置(idle)或无用进程top -i
-u
查找特定用户启动的进程top -u david
top命令交互式运行
M
根据驻留内存大小排序P
根据CPU使用百分比大小进行排序T
根据时间/累计时间进行排序m
切换显示内存信息
df 磁盘使用情况查看
df -h
查看磁盘使用情况
iostat 查看CPU、磁盘的相关信息
语法
iostat [-x] [num1] [num2]
参数
-x
显示更多信息num1
数字,刷新时间num2
数字,刷新次数
sar 查看网络相关信息
sar -n DEV
rxKB/s
网卡每秒钟接受的数据包大小,单位为KB
txKB/s
网卡每秒钟发送的数据包大小,单位为KB
cat /etc/redhat-release 查看centos版本信息
五、快捷键
shell 快捷键
Ctrl + c 强制停止
命令输入错误、程序运行需要强制停止,可以使用Ctrl + c退出当前命令
Ctrl + d 退出账户的登入
退出root
账户、某些特定程序的专属页面的退出比如python
ps: 不能用于退出vi/vim
history 查看历史命令
history
查看历史输入过的命令
history | grep [关键词]
搜索关键历史命令
!命令前缀 自动执行上一次匹配前缀的命令
比如说之前执行过
python
此时希望再次执行它
!p
会再次执行python
命令
Ctrl + r 输入内容去匹配历史命令
键入ctrl + r
后输入内容进行匹配,如果满意则按下enter
执行该命令
Ctrl + a 跳到命令开头
Ctrl + e 跳到命令结尾
Ctrl + 键盘左键 向左跳一个单词
Ctrl + 键盘右键 向右跳一个单词
Ctrl + l 可以清空终端内容
效果与clear
一样
clear
windows打开网络控制面板
win + r + ncpa.cpl 打开windows 网络连接控制面板
finalshell与虚拟机传输文件
finalshell下载文件
鼠标右键点击文件选择下载
上传文件到finalshell
打开需要存储文件的finalshell文件夹,将需要上传的文件拖入到finalshell对应的文件夹中,比使用rz
命令快。
需要注意的是,在shell窗口中,使用su
命令切换到root后,这里有root权限
但是下方的文件管理系统仍然是最开始的user
从上图中可以看到,即使在shell中是root,但是在文件中仍然无法访问root权限文件夹,现实加载中
sz 下载文件
sudo yum -y install lrzsz
安装命令
sz 文件名【可使用tab键补全】
rz 上传文件
rz
使用rz
命令没有直接使用finalshell上传的速度快
windows 快捷键
tab + win
按一次,可以使用左右键切换桌面程序和新建桌面
tab + alt
按一次,可以在本桌面中切换程序窗口
win + v
windows剪切板
win + e
打开资源管理器
win + l
锁屏
ctrl + shift +esc
任务管理器
win + r
打开运行对话框
alt + f4
关闭当前窗口或程序
ctrl + shift + n
创建新文件夹
vi/vim 编辑器
vim 是 vi的加强版本,兼容vi的所有指令,不仅能编辑文本,还能与shell进行交互
三种工作模式: 命令模式、输入模式、底线命令模式
- 命令模式 command mode : 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。
- 输入模式 insert mode: 与编辑模式、插入模式先沟通,此模式下,可以对文件内容进行自由编辑
- 底线命令模式 last line mode: 以:开始,通常用于文件的保存、退出
默认进入的是 命令模式,可由命令模式进入输入模式,命令模式进入底线命令模式。命令模式是核心中转。
如果文件路径表示的文件不存在, 则会创建该文件,想过等同于touch file
在 Vim
中,退出当前命令需要进行以下操作:
-
确保你处于正常模式(Normal Mode)。如果你当前处于插入模式(Insert Mode),请按下
Esc
键返回正常模式。 -
输入
:q
命令,表示退出当前文件。- 如果没有对文件进行任何修改,Vim 将立即退出。
- 如果对文件进行了修改,Vim 将显示一个错误消息,并且不允许退出。你可以使用
:q!
命令强制离开,但这将丢失所有对文件的更改。
如果你希望保存修改并退出文件,请使用以下命令代替 :q
:
【底线命令模式】
:wq
:保存并退出:q!
: 强制退出,会放弃保存更改:q
:退出当前文件, 仅退出:w
:仅保存,不退出当前vim:set nu
: 显示行号:set paste
:设置粘贴模式
这些命令可以将你的更改保存回文件并退出 Vim。
在编辑模式下,一些快捷键
在 Vim 编辑器的插入模式(Insert Mode)下,有一些常用的快捷键可以提高编辑效率。以下是一些常见的插入模式快捷键:
【命令模式】下
- 进入插入模式:
i
:在光标当前位置之前插入文本。a
:在光标当前位置之后插入文本。I
:在当前行的行首插入文本。A
:在当前行的行尾插入文本。o
:在当前行下方插入新的一行,并进入插入模式。O
:在当前行上方插入新的一行,并进入插入模式。/
:进入搜索模式, 在/后面输入需要搜索的字符串, 按n
转到下一个搜索结果dd
: 删除光标所在行的内容dG
: 从当前行开始,向下全部删除dgg
: 从当前行开始,向上全部删除u
: 撤销修改ctrl + r
:反向撤销修改
【插入模式】下
2. 退出插入模式:
Esc
:退出插入模式,返回到正常模式(Normal Mode)。
-
删除和修改:
Backspace
:删除光标前一个字符。Delete
:删除光标后一个字符。Ctrl-h
:删除光标前一个字符。Ctrl-w
:删除光标前一个单词。Ctrl-u
:删除当前行中的所有文本。
-
移动光标:
- 光标键:使用左、右、上、下方向键移动光标。
-
复制和粘贴:
Ctrl-r
:插入寄存器内容(可以用于复制粘贴)。
还有很多其他的插入模式快捷键,这里只列举了一些常见的。可以通过 :help insert-index
命令在 Vim 中查看更多的插入模式快捷键和相关信息。