Linux 常见命令使用(超详细版)

基本

echo

作用:在终端上显示文本字符串或变量的值

格式:echo [选项] 字符串

选项:-n:不在输出的末尾添加换行符。

[root@localhost ~]# name=alice
[root@localhost ~]# echo hello,$name
hello,alice

关机、重启命令

【普通用户不允许关机和重启】

  • shutdown
shutdown [OPTIONS] [TIME] [MESSAGE]
shutdown –h now "close"    (-h=halt)  //立即关机,显示close
shutdown -r now            (r=reboot) //重启
  • init(改变系统的运行级别,从而实现关机或重启)
init 0  //关机
init 6  //重启
  • halt( 直接停止所有处理并关闭系统 )
halt -p
  • poweroff(类似halt)
poweroff -p
  • reboot(等同shutdown -r)
reboot

上传下载工具rz/sz

rz:receive——从windows上传文件到这个linux虚拟机

sz [文件路径]:send——从linux虚拟机下载文件到windows的rzsz文件夹

<、>、>>

<:输入重定向

把右边的输入作为左边的输入

cat < input.txt
结果:展示input.txt内容

>:输出重定向,把左边的结果输出到右边文件。

如果文件存在,则覆盖其内容;如果文件不存在,则创建该文件。

ls > filelist.txt
将ls的输出 写到filelist内

>>:追加

文件末尾添加

echo abc >> list.txt

ls /usr /abc 列出/usr/abc目录的内容

ls /usr /abc >ok.txt 将列出的目录内容输出到ok.txt

ls /usr /abc 1>ok.txt :1>和>等价,和上一条效果一样

ls /usr /abc 2>err.txt :2>将标准错误输出重定向到文件err.txt

ls /usr /abc 1>ok.txt 2>err.txt : 将 /usr/abc 目录的内容写入 ok.txt 文件,任何错误信息(如果有)会写入 err.txt 文件。

ls /usr /abc 2>/dev/null :/dev/null 是一个特殊文件,写入其中的数据会被丢弃。

ls /usr /abc 1>/dev/null 2>&1 :1> 将标准输出重定向到 /dev/null,所以 /usr/abc 目录的内容会被丢弃。

2>&1 表示将标准错误输出重定向到标准输出的目标,即 /dev/null

ls

作用:显示某个目录下的文件内容,可以显示文件和子目录的名称及其相关信息。

格式:ls [选项] [文件或目录]

选项:

-a:显示所有文件,包括以 . 开头的隐藏文件。(all)

-l:以长格式列出文件的详细信息。(list)

-h:与 -l 选项一起使用,以人类可读的格式显示文件大小(如 KB、MB)。(human)

-R:递归地列出子目录中的内容。 (recursive递归)

-t:根据修改时间排序,最近修改的文件排在最前面。

-r:逆序排列。(reverse)

-S:根据文件大小排序,最大的文件排在最前面。

-i:显示文件的 inode 号码。

-d:仅显示目录自身的信息,而不显示其内容。

-1:每行只显示一个文件名

[root@localhost ~]# ls -hl
total 4.0K
drwxr-xr-x 2 root root    6 May 24 16:18 disktmp
-rw-r--r-- 1 root root 1.1K May 26 17:27 exam8.txt
drwxr-xr-x 3 root root   53 May 26 17:12 nginx
drwxr-xr-x 2 root root   66 May  8 11:01 shell
drwxr-xr-x 2 root root   82 May 24 15:44 tmp

在这里插入图片描述

ls -ail:显示当前目录的所有文件(包括隐藏文件)及其详细信息和 inode 号。

ls -lR /etc:递归地列出 /etc 目录及其子目录中的所有文件和目录的详细信息。

ls -lS /var/log:列出 /var/log 目录中的文件和目录,并根据文件大小从大到小排序

管道

把前一个命令的输出作为下一个命令的输入,实现将多个命令连接起来

格式:命令1 | 命令2 | 命令3 …

例子:cat /etc/passwd | grep root | wc -l

效果:cat /etc/passwd:显示了该目录下的文件内容; grep root :读取前一个命令中的文件内容,搜索并输出包含“root”的所有行;wc -l:计算前一个命令传过来的包含root的所有行,计算出行数

综合效果:读取文件内容,计算包含root的行数,并最后输出行数

clear

清空屏幕

cd

作用:切换目录

cd ~ 进入主目录 或者cd 以root身份进入主目录就是root

cd .. 返回上一级目录

cd ../.. 返回上两级目录

cd - 进入上一个访问的目录

cd / 快速进入根目录

cd ~/projects/my_project

pwd

作用:显示当前路径 print work directory

[root@localhost disktmp]# pwd
/root/disktmp

文件处理类命令

mkdir

作用:创建新目录(文件夹)

格式:mkdir [选项] 目录名

mkdir dir1 dir2 :在当前目录下创建dir1和dir2

mkdir dir4/dir5 :创建dir4下的dir5目录,要求dir4必须已经存在,不然会报错

mkdir -p dir4/dir5 :递归创建目录,在当前目录下创建dir4然后在dir4下创建dir5,如果dir4已存在dir5不存在,创建dir5,不会报错

rmdir

作用:删除目录。只能删除空目录

格式:rmdir [选项] 目录名

rmdir -p dir1/dir2 :递归删除当前目录下的dir1和他的子目录dir2

touch

作用:创建空文件和更新文件的时间戳

格式:touch [选项] 文件名

选项:-a :改变档案的读取时间记录

-m :改变档案的修改时间记录

-r :使用参考档的时间记录

-d :设定时间与日期,可以使用各种不同的格式

touch file1.txt file2.txt file3.txt: 创建三个空文件,如果这些文件不存在

touch myfile.txt :更新文件的时间戳,如果文件不存在,则创建该文件

touch -t [[CC]YY]MMDDhhmm[.ss] file :自定义时间戳

touch -t 202405261230.00 myfile.txt: 将 myfile.txt文件的时间戳设置为 2024 年 5 月 26 日 12:30:00。如果文件不存在,则会创建一个新的空文件。

touch -r referencefile.txt newfile.txt: 将 后面文件的时间戳设置为与 前面文件相同

cp

作用:文件或目录的复制

格式:cp [选项] 源文件 目标文件cp [选项] 源文件... 目标目录

选项:-a :复制目录时,保留链接、文件属性,并复制目录下的所有内容

-f :覆盖已存在的目标文件而不进行提示

-p :除复制文件的内容外,还把修改时间和访问权限也复制到新文件中(保留文件属性)

-r :递归复制目录中的所有内容,包括子目录

cp file1.txt file2.txt: 将file1.txt复制一份并重命名为file2.txt,如果file2.txt已经存在,可以选择overwrite

cp file1.txt file2.txt /home/root/aaa:将当前目录下的file1file2复制到后面的路径文件夹中

cp -r source_directory target_directory 将原路径下所有内容复制到目标路径

cp -f file1.txt file2.txt file1复制到file2,如果file2有内容强制覆盖不提示

mv

作用:移动文件或目录(重命名)

格式:mv [选项] 源文件 目标文件mv [选项] 源文件... 目标目录

选项:-i 目标路径如果同名,先询问是否覆盖

-f 覆盖已经存在的目标文件而不给提示

-n 不要覆盖任何已存在的文件或目录

mv file1.txt file2.txt:将前重命名为后

mv file1.txt aaa/bbb:将file1移动到目标路径目录


文件查看类命令

cat

作用:显示文件的内容、连接文件并输出到终端上。“concatenate”(连接)

选项:-n 给每行编号,-b 除了空白行,给每行编号

  • 显示单个文件:
cat /etc/shells
这会在终端中显示 `/etc/shells` 文件的内容。
【etc文件夹存储系统配置文件】
  • 连接两个文件一起显示
cat file1.txt file2.txt
这会先显示 `file1.txt` 的内容,然后显示 `file2.txt` 的内容。
  • 重定向输出到新文件
cat file1 file2 > newfile
示例:
cat file1.txt file2.txt > combined.txt
这会将 `file1.txt` 和 `file2.txt` 的内容连接起来,并将结果保存到 `combined.txt`
  • 追加文件内容
cat file1 >> existingfile
【使用 >> 可以将内容追加到现有文件的末尾,而不是覆盖它】
示例:
cat additional.txt >> combined.txt
这会将 `additional.txt` 的内容追加到 `combined.txt` 的末尾。

可选选项

cat -n /etc/shells  //文件的每一行加上行号并显示
cat -s file.txt  //将连续的空白行压缩成一行
cat -v file.txt //显示不可打印字符(例如,制表符和换行符)

more

作用:逐屏显示长文件内容,可以方便地查看长文本文件,一次显示一屏内容

格式:more [选项] 文件名

选项:+数字 从第n行开始显示 -10一次显示前10行

-s 把连续的多行空行显示为一行

-d 显示行号

基本操作

空格键:显示下一屏内容。

回车键:向下滚动一行。

/pattern:向前搜索匹配 pattern 的字符串。

n 键:跳转到下一个匹配 pattern 的字符串。

q 键:退出查看

【注意点:一次性加载。只能往下翻。】

less

作用:逐屏查看文件内容。相比于 more 命令,less 提供了更强大的功能和更多的选项

格式:less [选项] 文件名

选项:-e 当文件显示结束后,自动退出-f 强迫打开特殊文件-i 忽略搜索时的大小写-N 显示每行的行号-s 显示连续空行为一行

基本操作

q:退出

空格:下一页

回车 下一行

上下移动键上下移动

注意点:支持上下翻。按需加载。

head

作用:显示文件的开头的内容。在默认情况下显示文件的前10行内容

格式:格式: head [选项] 文件名

-q 隐藏文件名

-v 显示文件名

-c<数目> 显示的字节数

-n<行数> 显示的行数

head -n 5 file1:显示 file1的前 5 行内容

head -c 20 file1: 显示 file1的前 20 个字节的内容

tail

作用:显示文件的结尾的内容。在默认情况下显示文件的最后10行内容

格式: tail [选项] 文件

-f 当文件变化时输出文件新增内容

-c<数目> 显示的字节数

-n<行数> 显示的行数

-v 显示详细的处理信息

tail file1:显示 file1 的最后 10 行内容

tail -n 5 file1:显示 file1 的最后 5 行内容

tail -c 50 file1:显示 file1 的最后 50 个字节的内容

tail -f file1:以“跟随”模式显示 file1 的内容。它会显示文件末尾的内容,并在文件更新时持续输出新增的内容。这个选项常用于查看日志文件。


用户管理命令

useradd

作用:新增用户

格式: useradd [选项] 用户名

root用户

-d dirName指定用户主目录。默认将会在/home目录下新建一个与用户名相同的用户主目录
-s shellName指定用户登录时使用的shell。默认为/bin/sh
-g groupName指定用户所属的组名。创建用户时默认创建一个与用户名同名的组
-G groupList一个用户可以属于一个组,也可以属于多个组。用户创建时属于的组称为主组,其他的叫附属组
-u uid指定新用户的UID。新用户默认UID为当前最高UID值+1

useradd -d /home/customdir -s /bin/zsh username

创建一个名为 username的用户,主目录设为/home/customdir,登录 shell 设置为 /bin/zsh。

passwd

作用:修改密码

格式:passwd [选项] [用户名]

普通用户只能修改自己密码,root可以修改其他人

passwd:选项用户名都不输入,默认是修改当前登录用户的密码

passwd user1

  • 高级应用-无交互设置密码

    echo xxx | passwd --stdin root

    将 root用户的密码设置为 xxx,并且不会提示交互输入。

    --stdin:从标准输入中读入新的密码

usermod

作用:修改现有用户账户属性

格式:usermod [选项] 用户名

root权限下:

  • -d dirName :指定用户主目录。默认将会在/home目录下新

建一个与用户名相同的用户主目录

  • -s shellName :指定用户登录时使用的shell。默认为/bin/sh

  • -g groupName :指定用户所属的组名。创建用户时默认创建一个与用户名同名的组

  • -G groupList :一个用户可以属于一个组,也可以属于多个组。用户创建时属于的组称为主组,其他的叫附属组。

  • -u uid :指定新用户的UID。新用户默认UID为当前最高UID值+1

usermod -u 2048 user2 :将用户 user2 的用户ID (UID) 修改为2048

usermod -d /home/user2048 user2:将用户 user2 的主目录更改为 /home/user2048

userdel

作用:删除用户(root权限下)

格式:userdel [-r] 用户名

-r:删除用户账户的同时,删除用户的主目录及主目录下的所有文件和目录。

groupadd

作用:增加用户组(root权限下)

格式:groupadd [-g] 组名

groupadd user3

groupadd -g 1024 user1024 增加组并设置user1024用户的gid为1024

groupdel

作用:删除用户组(root权限下)

格式:groupdel 组名

groupdel user3:删除user3组


文件属性类命令

chmod

(change mode)

作用:更改文件或目录的权限

格式:chmod [-R] 权限模式 路径

权限模式的两种表示方式:

  • 数字模式:使用三个八进制数字表示文件的权限,每个数字表示一组权限:用户、组 和其他人。

    其中,4表示读r,2表示写w,1表示执行x,可以通过和组合的方式组合权限。

    如741表示:用户权限可读可写可执行,组权限可读,普通权限可执行

  • 符号模式:使用符号来表示权限的添加或删除

    符号模式的格式为 [ugoa] [±=] [rwx],其中:

    • u(用户),g(组),o(其他人),a(所有人)
    • +(添加权限),-(删除权限),=(设置权限)
    • 如:u+x:添加用户的执行权限

chmod u+x file.txt :为 file.txt 的用户添加执行权限

chmod g-w file.txt: 移除file.txt对组的写权限

chmod -R 755 /path/to/directory :递归地将 /path/to/directory 及其所有子目录和文件的权限设置为 755。

chmod a=rwx,u-x,g-wx,o-rwx a.txt:将a.txt设置所有用户读写执行权限,移除用户(文件所有者)的执行权限,移除组的写执行权限,移除其他用户的读写执行权限

最终权限:用户rw-r- - 其他用户- - -

ls -l a.txt
-rw-r----- 1 username groupname size date time a.txt

chmod 640 a.txt:用户-wx, 组-w- , 其他用户无权限

chown

(change owner)

作用:更改文件或目录的所有者和所属组(root权限)

格式:chown[-R]用户名[ :组名 ]路径

chown wilson a.txt:将a.txt的所属用户改为wilson

chown wilson:wilson a.txt :将a.txt的所属用户改为wilson组里的wilson用户

chown -R wilson dir1 递归将dir1目录下所有文件的所有者蛇者为wilson

chgrp

(change group)

作用:改变指定目录或文件的所属组。(root权限)

格式:chgrp [-R] 组名路径

chgrp wilson a.txt

chgrp -R wilson dir1

ln

作用:创建文件的快捷方式

格式:ln [-s] 源路径 目标路径

  • 硬链接:指向同一文件数据块的多个文件名

    • 所有硬链接共享相同的 inode 号,因此它们是完全等价的。

    • 给文件一个副本(别名),同时建立两者之间的连接关系,修改其中一个,与其连接的文件同时被修改,如果删除其中一个,其余的文件不受影响。磁盘上只有一份数据。

    • 硬链接是存在同一个文件系统中

  • 软链接(符号链接):指向另一个文件或目录的特殊文件

    • 软链接的方式则是产生一个特殊的文件,该文件的内容是指向另一个文件的位置。

    • 它只是一个快捷方式,删除了源文件,这个连接文件就没用了。

    • 软链接可以跨越不同的文件系统

ln file1.txt link1.txt :创建名为link1.txt的硬链接指向file1

ln -s /path/to/file1.txt symlink1.txt:创建名为symlink1的软连接指向该路径


文件压缩类命令

tar

作用:备份文件

格式:tar [选项] 压缩文件名 路径

-c 创建备份 create

-C path 切换到指定目录

-f 指定备份文件

-t 测试备份文件

-v 显示指令执行过程 -verbose

-x 从备份中还原文件 -extract

-z 通过gzip指令处理备份文件 -gzip

tar cvf dir1.tar dir1 :将dir1压缩命名为dir1.tar

tar xvf dir1.tar :从 dir1.tar 存档文件中提取所有文件和目录,解压(x) 到当前目录。

tar xvf dir1.tar -C /tmp:从 dir1.tar 存档文件中提取所有文件和目录,解压到 /tmp 目录。

tar zcvf dir1.tar.gz dir1 :创建一个名为 dir1.tar.gz 的压缩 tar 存档文件,包含 dir1 目录及其内容。

tar zxvf dir1.tar.gz :从 dir1.tar.gz 压缩 tar 存档文件中提取所有文件和目录,解压到当前目录。

gzip

作用:用于压缩文件(不包括目录)

格式:gzip [选项] 文件…

-d 解开压缩文件

-l 列出压缩文件的相关信息

-r 递归处理指定目录

-v 显示指令执行过程

-t 测试压缩文件是否有误

gzip dir1 :将dir1压缩为.gz后缀文件

gzip -drv dir1 :递归解压dir1.gz文件

unzip

作用:用于解压缩zip文件(zip -r myfolder.zip myfolder)

格式:unzip [选项] 路径

-n 解压时不要覆盖原有文件

-l 列出压缩文件的相关信息

-d dir 指定解压时存放的目录

-v 显示指令执行过程

-t 测试压缩文件是否有误

unzip a.txt.zip:将 a.txt.zip 压缩文件解压缩到当前目录

unzip -d /tmp a.txt.zipa.txt.zip 压缩文件解压缩到指定(-d)的 /tmp下


文本处理类

awk

作用:强大的文本数据处理工具

格式:awk [选项] ‘脚本命令’ 文件名

cat 文件名 | awk [选项] '脚本命令’

选项:

-F fs 指定分隔符fs,fs可以使字符串或正则表达式

-v 赋值一个用户定义变量

-f scriptfile 从脚本文件中读取awk命令

  • cat /etc/passwd | awk -F: ‘{print $1,$5}’

    将 /etc/passwd 文件的内容作为输入传递给 awk,使用 awk 命令来处理输入内容,-F:指定字段分隔符为 :,然后打印每行的第一个字段(用户名)和第五个字段(用户描述)。

  • awk -F: ‘{print $1,$5}’ /etc/passwd

    直接使用 awk命令处理 /etc/passwd文件,指定字段分隔符为 :,然后打印每行的第一个字段(用户名)和第五个字段(用户描述)。

  • cat /etc/passwd | awk -va=1 -F: ‘{print $1,$4+a}’

    将 /etc/passwd文件的内容作为输入传递给 awk。使用 awk 命令来处理输入内容,-va=1 定义变量 a 的值为 1,-F: 指定字段分隔符为 : ,然后打印每行的第一个字段(用户名)和第四个字段加上变量 a 的值。

    这里如果$4是数字,显示的是加法加上1的值,如果不是,显示0

sed

(stream editor)

作用:自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等,但不改变原文件

格式:sed [选项] 处理格式路径

a 在指定行号之后插入

c 整行替换

s 匹配替换

i 在指定行号位置插入

d 删除

sed ‘1a Hello Unix’ test.txt :对test.txt在第一行之后插入一行hello unix

sed ‘2c Hello Unix’ test.txt :将第 2 行替换

sed ‘s/l/L/’ test.txt:匹配替换(s),将每行中第一次出现的l变为L

sed ‘s/l/L/g’ test.txt:匹配替换(s),将每行中所有出现的l变为L

sed ‘1i Hello Unix’ test.txt 在第一行之前(1i)插入,也可以说插入到第一行

sed ‘1d’ test.txt :删除第一行

sed ‘d’ test.txt :删除所有行

以上默认不修改源文件

如需修改原文件,使用-i选项

sed -i ‘2c Hello Unix’ test.txt:第二行整行替换,并且源文件修改

cut

作用:从指定文件中过滤或提取特定内容,并显示在当前屏幕上

格式:cut [选项] 路径

-b 以字节为单位进行分割

-c 以字符为单位进行分割

-d 自定义分隔符,默认为制表符

-f 与-d一起使用,指定显示哪个区域

cut -d: -f 1,3,5 /etc/passwd:定义分隔符为-d,提取分隔后的第1,3,5字段

cut -c 2-5 /etc/passwd:提取第2-5个字符

tr

(text replacer)

作用:用于转换或删除文件中的字符

格式:tr [-d] 字符串1 字符串2

cat /etc/passwd | tr 'a-z' 'A-Z' 将显示 /etc/passwd文件的内容作为输入,将其中的小写字母转为大写字母,并输出屏幕

tr 'a-z' 'A-Z' < /etc/passwd 将文件作为tr命令的输入,将其中小写字母全换成大写字母并输出屏幕

tr -d 'a-c' < test.txt 将文件作为tr命令的输入,将其中的a,b,c字符删除

只是输出改变,一般不改变源文件


查找类

find

作用:查找文件或者目录

格式:find 路径 [选项] 表达式

-amin n 在过去n分钟内被读取过的文件

-atime n 在过去n天内被读取过的文件

-cmin n 在过去n分钟内被修改过的文件

-ctime n 在过去n天内被修改过的文件

-type c 文件类型是c的文件

-perm p 文件权限为p的文件

-name n 文件名为n的文件

find . -name “*.conf” :查找(当前目录及其子目录).中所有以 .conf 结尾的文件

find / -perm 765 -name “*.txt” :在根目录/下查找权限为 765 的所有以 .txt 结尾的文件

find /etc -type f -exec ls -l ‘{}’ \; : 在 /etc目录中查找所有普通文件(-type f),并显示它们的详细信息(对所有找到的文件执行(-exec) ls -l ‘{}’命令,{}是一个占位符,表示find命令找到的每一个文件的路径, \;是告诉-exec选项命令结束的标志。)

grep

(Global Regular Expression Print)

作用:查找文件里符合条件的字符串

格式:

grep [选项] pattern文件…

cat 文件… | grep [选项] pattern

-i 忽略字符大小写的差别

-v 显示不包含匹配文本的所有行

-n 显示匹配行及行号

grep ‘root’ /etc/passwd :在 /etc/passwd文件中查找包含 “root” 的行

cat /etc/passwd | grep ’root’ :使用 cat 命令将文件的内容作为输入传给grep,使用 grep过滤包含 “root” 的行

cat /etc/passwd | grep -v ‘root’ :使用 cat 命令将文件的内容作为输入传给grep,使用 grep过滤不包含(-v) “root” 的行

cat /etc/passwd | grep -i ‘net’:使用 cat 命令将文件的内容作为输入传给grep,使用 grep过滤包含net 的行,且不区分net的大小写


正则表达式

^锚定行的开始 如:^grep匹配所有以grep开头的行
$锚定行的结束 如: grep$匹配所有以grep结尾的行
.. 匹配一个非换行符的字符 如: gr.p匹配gr后接一个任意字符,然后是p
*匹配零个或多个先前字符 如: *grep匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符
[]匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep
[^]匹配一个不在指定范围内的字符,如: [^A-FH-Z]rep匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行
\(…\)标记匹配字符,如’\(love\)’ ,love被标记为1
\<锚定单词的开始,如:'\<grep’匹配包含以grep开头的单词的行
\>锚定单词的结束,如’grep\>'匹配包含以grep结尾的单词的行
x\{m\}重复字符x,m次,如: '0\{5\}'匹配包含5个o的行
x\{m,\}重复字符x,至少m次,如: 'o\{5,\}'匹配至少有5个o的行
x\{m,n\}重复字符x,至少m次,不多于n次,如: 'o\{5,10\}'匹配5–10个o的行
\w匹配文字和数字字符,也就是[A-Za-z0-9],如: 'G\w*p’匹配以G后跟零个或多个文字或数字字符,然后是p
\W\w的反置形式,匹配一个或多个非单词字符,如点号句号等
\b单词锁定符,如: '\bgrep\b’只匹配grep

工具类命令

cal

(calender)

作用:打印日期

选项:

-3 显示最近三个月的日历

-s 将星期天作为月的第一天

-m 将星期一作为月的第一天

-y 显示当年日历

cal 2 2022 打印2022年2月日历

date

作用:显示或设定系统的日期与时间

格式:date [选项] 时间格式

%H 小时(00…23)

%M 分钟(00…59)

%S 秒(00…60)

%Y 完整月份(0000…9999)

%m 月份(01…12)

%d 日(01…31)

[root@localhost ~]# date +'%Y-%m-%d %H:%M:%S' 
2024-06-02 15:40:30

一定要有前面的+

wc

word count:默认统计文件内的行、字、字节数

格式:wc [选项] 文件路径

-c 按字节统计(characters)

-l 按行数统计 (lines)

-m 按字符统计(multibyte)

-w 按单词统计(words)

[root@localhost ~]# wc /etc/passwd
 20  31 923 /etc/passwd

cat /etc/passwd | wc -l

sort

作用:对内容排序

格式:sort [选项] 文件路径

-f 排序时,将小写字母视为大写字母

-n 按照数值大小排序

-u 去重排序

-o file 将排序后的结果存入指定的文件

-r 以相反的顺序来排序

sort /etc/passwd:默认是按字典顺序排序

sort -r /etc/passwd:字典反序排序

sort -o out.txt -n /etc/passwd:按照数值大小排序,并将排序后结果保存到out.txt

which / whereis

作用:查找文件,适用于快速确定某个命令的位置以及检查命令是否存在。

格式: which / whereis 命令

su

作用:变更为其他使用者的身份。除 root外,需要键入该使用者的密码

格式: su [选项] [用户名]

su:默认变root

su tak:变tak普通用户

su -c ls tak:以tak用户运行ls命令

su - tak -c ls:变更账号为tak的使用者运行ls命令,并执行指令(ls)后再变回原来使用者

两者区别:前者只切换用户执行命令,不加载目标用户的环境。后者切换用户执行命令,并加载目标用户的完整环境。

sudo

作用:以系统管理者的身份执行指令

格式: sudo 命令

CentOS7默认没有普通用户具有sudo权限

添加sudo权限

修改 /etc/sudoers

步骤

su #切换到root用户
ls -l /etc/sudoers  #查看文件权限
chmod u+w /etc/sudoers #添加写权限
vi /etc/sudoers  #打开并搜索root行
       # 用户名 ALL=(ALL) ALL #添加内容,保存退出
chmod u-w /etc/sudoers #删除写权限
exit #切换回当前用户

rpm/yum/apt-get

rpm命令

RedHat系列包(redhat、centos、fedora) 使用rpm命令

rpm -qa | -i | -e

rpm -qa:查询所有已安装的包

yum命令

安装更新卸载使用yum

yum [ install | remove | list | search ] 包名

yum install nano 安装nano编辑器

apt-get命令

Debian、Ubuntu系列包管理使用apt-get

apt-get install | remove | list | search

win-linux格式转换

  • Windows 换行结束符号有两个控制字符,一个是归位字符

(carriage return, ^M),另一个是换行字符( new line, ^J )

  • Linux中只使用一个换行字符\n (功能同^J )

unix2dos|dos2unix filename #格式转换后覆盖更新原文件

unix2dos|dos2unix –n filename newFilename #格式转换后

存为新文件

防火墙操作

关闭防火墙

systemctl status firewalld #查看防火墙状态

systemctl disable firewalld #取消开机自启动

systemctl stop firewalld #关闭防火墙


vi编辑器

普通模式

  • 默认模式,用于导航和执行命令。
  • 启动 vi 后默认进入此模式。
  • 可以在此模式下使用导航键、删除、复制、粘贴等命令。
h(左), j(下), k(上), l(右)键盘上下左右键
$移动到行未
0移动到行首
gg定位第一行行首
G#定位末行行首
nG定位到第n行行首
n+向下移动n行
n-向上移动n行
Ctrl + b上翻一页
Ctrl + f下翻一页
x / nx删除一/n个字符
dd / ndd删除一/n行
u撤销上一步操作
U撤销对当前行的所有操作
yy / nyy复制一/n行
p粘贴到光标所在位置下一个字符位置
r / nr替换光标所在字符(相同字符)自动退出
R进入替换模式替换光标所在字符,直到按下Esc不会自动退出
ZZ与末行模式下 :wq 效果一样
gg + dG定位第一行行首删除所有内容

插入模式

  • 用于插入和编辑文本。

  • 从普通模式按 iIaAoO 等键进入插入模式。

  • Esc 键返回普通模式。

    i在光标左侧插入
    a在光标右侧插入
    o在光标所在行的下一行插入
    s删除光标所在字符后插
    I在光标所在行首插入
    A在光标所在行尾插入
    O在光标所在行的上一行插入
    S删除光标所在行

末行模式

  • 用于执行文件操作和一些高级命令。

  • 从普通模式按 : 进入命令行模式。

  • 输入完命令后按 Enter 执行,自动返回普通模式。

    :q正常退出
    :q!强制退出(如果文件有修改未保存需要强制退出)
    :w写入文件
    :w filename另存为
    :wq写入后退出
    :wq!写入后强制退出
    :x:wq一样
    :set nu 或 :set number显示所有行号
    :nu 或 :number显示光标所在行号
    :set nonu 或 :set nonumber取消行号显示
    /<pattern>从光标所在位置往下搜索
    ?<pattern>从光标所在位置往上搜索
    n/N向下/向上搜索下/上一个匹配项
    : s/x/y把光标所在行第一个匹配的x替换为y
    :n,m s/x/y把第n行到m行中每行中第一个匹配的x替换为y
    :% s/x/y把当前文件中所有行的第一个匹配的x替换为y
    g : 全局 => 把每一行中所有的匹配项都替换: s/x/y/g
    :n,m s/x/y/g
    :% s/x/y/g
    :n,m d删除第n行到m行之间的内容

在这里插入图片描述

vi /path/to/file打开文件默认定位第一行

vi +n filename 打开文件光标置于第n行

vi + filename 打开文件后把光标置于最后一行

vi filename1 filenam2 filename3… 多个文件一起打开,在末行模式使用:e filename切换

vi与shell交互

在末行模式下用“!”符号来访问Linux的Shell

:!cat /etc/passwd | more

:! /bin/bash

vi文件冲突

每次打开文件是会创建一个名为*.swp的临时文件

当多界面编辑、vi异常退出时会导致异常,删除*.swp即可

网络管理

安装网络管理工具yum install -y net-tools

列出各个已定义的网络接口的配置情况ifconfig

禁用、激活网络接口

ifconfig eth0 up

ifconfig eth0 down

注意:修改网络接口配置会导致SSH客户端断开

修改网络接口配置

临时:ifconfig <设备名> <IP> netmask <掩码>

修改网络接口配置会导致SSH客户端断开

重启网络控制程序后或重启系统后失效

修改后不一定可以上网

VMware网络模式

每个虚拟机指定上网模式,IP的分配方式

  • NAT(常用):利用宿主机网卡进行转发
  • 桥接模式:局域网内有独立IP,与宿主机同等地位
  • 仅主机模式:只能与宿主机通讯,适用于网络测试/攻防

ping

作用:网络连通性测试

格式:ping [选项] <目的主机名或IP地址>

-c <完成次数>设置完成要求回应的次数
-s <数据包大小>设置数据包的大小
-t <存活数值>设置存活数值TTL的大小
-v详细显示指令的执行过程

traceroute

作用:显示数据包到主机间的路径

格式:traceroute <选项> <目的主机IP或域名>

-i使用ICMP回应取代UDP资料信息
-m <存活数值>设置检测数据包的最大存活数值TTL的大小
-n直接使用IP地址而非主机名称
-p <通信端口>设置UDP传输协议的通信端口
-v详细显示指令的执行过程

netstat

作用:用于显示网络状态

格式: netstat [选项]

-a或–all显示所有连线中的Socket
-A<网络类型>或–<网络类型>列出该网络类型连线中的相关地址
-c或–continuous持续列出网络状态
-e或–extend显示网络其他相关信息
-l或–listening显示监控中的服务器的Socket
-n或–numeric直接使用IP地址,而不通过域名服务器
-p或–programs显示正在使用Socket的程序识别码和程序名称
-t或–tcp显示TCP传输协议的连线状况
-u或–udp显示UDP传输协议的连线状况
-v或–verbose显示指令执行过程

网络相关配置文件

/etc/sysconfig/network最基本的网络信息,系统启动时读取该文件
/etc/sysconfig/network-scripts/此目录下的文件是系统启动时用来初始化网络的一些信息,例如:第一块以太网卡对应的文件为ifcfg-eth0
/etc/host.conf域名解析的配置文件
/etc/hosts域名或主机名与IP地址的映射文件
/etc/resolv.conf域名服务器配置文件
/etc/protocols定义使用的网络互联协议及协议号
/etc/services设定主机的不同端口的网络服务

/etc/sysconfig/network

该文件用来指定服务器上的网络配置信息, 包含了控制和网络有关的文件和守护程序的行为的参数

常见的几个配置项如下:

  • NETWORKING:值为yes或no,表示主机是否支持网络功能
  • HOSTNAME:主机名(即域名)
  • GATEWAY: 默认网关
  • FORWARD_IPV4: 设置本机是否允许转发IPV4的数据包
  • DOMAINNAME: 此台主机所属的网络域
  • GATEWAYDEV: 连接网关的设备,例如eth0,如果是拨号用户则设为ppp0

/etc/sysconfig/network-scripts/ifcfg-*

ifcfg-*

  • DEVICE=eth0 //设备名称
  • ONBOOT=yes //启动时是否启动该设备
  • BOOTPROTO=none //启动协议,none表示使用用户设置的ip地址,dhcp表示从dhcp获得ip地址,static表示静态
  • IPADDR=192.168.14.11 //IP地址
  • NETMASK=255.255.255.0 //子网掩码
  • GATEWAY=XX.XXX.XXXX //网关
  • DNS1=xx.xxx.xxx.xx //DNS服务器

/etc/host.conf

域名解析配置文件

  • order hosts, bind先查询解析/etc/hosts文件,然后是DNS服务器
  • multi on指定的计算机是否可以有多个IP地址
  • nospoof on不允许对该服务器进行IP地址欺骗

/etc/protocols

定义协议定义文件

协议名称 协议号 别名

在这里插入图片描述

网络服务列表文件 /etc/services

列出了列出了Linux系统支持的服务名称、服务使用的端口号和协议类型、服务的别名、功能注释等

在这里插入图片描述

service

作用:用于对系统服务进行管理

格式:service 服务名 [ start | stop | restart | status ]

service sshd restart

service atd status

chkconfig

作用:用于检查和设置系统的各种服务,设置启动项

格式:chkconfig [选项] 服务名 [状态]

–add添加指定的新服务
–del删除指定服务
–level<运行级别编号>改变服务的运行级别及启动信息
–list显示所有或指定服务,以及他们在每个运行级别是否启动

提供了一个维护/etc/rc[0~6] d 文件夹的命令行工具,它减轻了系统直接管理这些文件夹中的符号连接的负担

chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接,需要重启才能生效

chkconfig --list

chkconfig --add mysql

chkconfig --level 2345 mysql on

systemd

CentOS 7 开始使用systemd替换了SysV

Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务

systemd不仅仅只是个初始化系统,它还包括了还包括了管理系统各种的方面的 daemon

现在的大多数Linux发行版本都进行了这个更新

systemctl

主要负责控制systemd系统和服务管理器

是一个系统管理守护进程、工具和库的集合,用于取代System V、service和chkconfig命令

service 对比

systemctl start network.service

systemctl restart sshd

daemon命令systemctl命令说明
service [服务] startsystemctl start [unit type]启动服务
service [服务] stopsystemctl stop [unit type]停止服务
service [服务] restartsystemctl restart [unit type]重启服务

chkconfig 对比

systemctl enable nginx.service

systemctl disable sshd

daemon命令systemctl命令说明
chkconfig [服务] onsystemctl enable [unit type]设置服务开机启动
chkconfig [服务] offsystemctl disable [unit type]设备服务禁止开机启动

开机自启动

/etc/rc.d/rc.local

1.赋予脚本可执行权限chmod +x /opt/script/autostart.sh

  1. 在 /etc/rc.d/rc.local 末尾增加想要执行的脚本内容su - user -c '/opt/script/autostart.sh’
  2. 给 /etc/rc.d/rc.local 赋予可执行权限chmod +x /etc/rc.d/rc.local

chkconfig

  1. 将脚本移动到 /etc/rc.d/init.d目录下

    mv /opt/script/autostart.sh /etc/rc.d/init.d

  2. 赋予脚本可执行权限

    chmod +x /etc/rc.d/init.d/autostart.sh

  3. 添加脚本到开机自动启动项目中

cd /etc/rc.d/init.d

chkconfig --add autostart.sh

chkconfig autostart.sh on

systemctl

默认情况下,服务通过yum install时,会自动配置好unit文件

默认在 /usr/lib/systemd/system 目录下

以Jenkins为例

# systemctl enable jenkins.service

# systemctl start jenkins.service

重启虚拟机网络

重启网络 :systemctl restart network

常用符号含义

【不严谨,仅用于帮助理解】

a:通常表示“all”,即所有的。例如:

  • ls -a:显示所有文件,包括隐藏文件。
  • grep -a:将二进制文件作为文本文件搜索。

c:通常与“count”或“change”相关。例如:

  • wc -c:统计字符数。
  • cp -c:检查文件是否真正被复制(部分系统)。

e:通常与“echo”或“execute”相关。

f:通常表示“file”或“force”的相关选项,表示强制、指定。例如:

  • rm -f:强制删除文件。
  • tar -f:指定归档文件。

g:有时表示“global”或“group”的相关选项,表示全局、组。例如:

  • grep -g:使用基本正则表达式(部分系统)。
  • chmod -g:修改组权限。

h:通常表示“human-readable”或“help”。例如:

  • ls -h:以人类可读的格式显示文件大小。

i:通常与“interactive”或“ignore”相关。例如:

  • rm -i:在删除每个文件前进行提示。
  • grep -i:忽略大小写地搜索。

l:通常表示“long”或“list”的相关选项。例如:

  • ls -l:以长格式列出文件的详细信息。
  • ps -l:以长格式显示进程信息。

m:通常与“modification”或“message”相关。例如:

  • chmod -m:设置文件权限(部分系统)。
  • echo -m:显示消息(部分系统)。

n:通常表示“number”或“no”的相关选项。例如:

  • grep -n:显示匹配行的行号。
  • ls -n:显示用户和组的数字ID而不是名称。

o:通常与“output”或“only”相关。例如:

  • ls -o:显示详细信息时省略组信息。
  • tar -o:指定输出文件。

p:通常与“path”或“print”相关。例如:

  • find -print:显示找到的文件。
  • mkdir -p:创建目录,包括必要的父目录。

q:通常表示“quiet”或“quick”的相关选项。例如:

  • grep -q:安静模式,不输出任何信息。
  • tar -q:快速创建归档文件。

r:通常表示“recursive递归”或“reverse逆序”的相关选项。例如:

  • cp -r:递归复制目录。
  • ls -r:逆序排列。

s:通常表示“size”的相关选项。例如:

  • ls -s:显示文件大小。

t:通常与“time”或“type”相关。例如:

  • ls -t:根据修改时间排序。
  • file -t:显示文件类型。

u:通常表示“user”或“update”的相关选项。例如:

  • chmod -u:修改用户权限。
  • rsync -u:仅更新较新的文件。

x:通常与“extract”或“exclude”相关。例如:

  • tar -x:解压归档文件。
  • grep -x:精确匹配整个行。

常用符号含义

【不严谨,仅用于帮助理解】

a:通常表示“all”,即所有的。例如:

  • ls -a:显示所有文件,包括隐藏文件。
  • grep -a:将二进制文件作为文本文件搜索。

c:通常与“count”或“change”相关。例如:

  • wc -c:统计字符数。
  • cp -c:检查文件是否真正被复制(部分系统)。

e:通常与“echo”或“execute”相关。

f:通常表示“file”或“force”的相关选项,表示强制、指定。例如:

  • rm -f:强制删除文件。
  • tar -f:指定归档文件。

g:有时表示“global”或“group”的相关选项,表示全局、组。例如:

  • grep -g:使用基本正则表达式(部分系统)。
  • chmod -g:修改组权限。

h:通常表示“human-readable”或“help”。例如:

  • ls -h:以人类可读的格式显示文件大小。

i:通常与“interactive”或“ignore”相关。例如:

  • rm -i:在删除每个文件前进行提示。
  • grep -i:忽略大小写地搜索。

l:通常表示“long”或“list”的相关选项。例如:

  • ls -l:以长格式列出文件的详细信息。
  • ps -l:以长格式显示进程信息。

m:通常与“modification”或“message”相关。例如:

  • chmod -m:设置文件权限(部分系统)。
  • echo -m:显示消息(部分系统)。

n:通常表示“number”或“no”的相关选项。例如:

  • grep -n:显示匹配行的行号。
  • ls -n:显示用户和组的数字ID而不是名称。

o:通常与“output”或“only”相关。例如:

  • ls -o:显示详细信息时省略组信息。
  • tar -o:指定输出文件。

p:通常与“path”或“print”相关。例如:

  • find -print:显示找到的文件。
  • mkdir -p:创建目录,包括必要的父目录。

q:通常表示“quiet”或“quick”的相关选项。例如:

  • grep -q:安静模式,不输出任何信息。
  • tar -q:快速创建归档文件。

r:通常表示“recursive递归”或“reverse逆序”的相关选项。例如:

  • cp -r:递归复制目录。
  • ls -r:逆序排列。

s:通常表示“size”的相关选项。例如:

  • ls -s:显示文件大小。

t:通常与“time”或“type”相关。例如:

  • ls -t:根据修改时间排序。
  • file -t:显示文件类型。

u:通常表示“user”或“update”的相关选项。例如:

  • chmod -u:修改用户权限。
  • rsync -u:仅更新较新的文件。

x:通常与“extract”或“exclude”相关。例如:

  • tar -x:解压归档文件。
  • grep -x:精确匹配整个行。
  • 15
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值