Linux命令大全【全网超详细】

Linux基础指令 阅读详情

1. Linux学习

【个人感觉Linux的命令得过一遍,我用思维导图的形式展出,感觉更清晰一点】

1.1. Linux终端命令格式

1.1.1.1.1. -man的使用操作键

1.2. 常用Linux命令的基本使用

1.2.1. 常用Linux命令的基本使用

命令

对应英文

作用

ls

list

查看当前文件夹下面内容

pwd

print work directory

查看当前所在文件夹

cd[目录名]

changge directory

切换文件夹

touch[文件名]

touch

如果文件不存在,新建文件

mkdir[目录名]

make directory

创建目录

rm[文件名]

remove

删除指定文件

clear

clear

清屏

1.2.2. 快捷方式
通过上下方向键 ↑ ↓ 来调取过往执行过的Linux命令;

命令或参数仅需输入前几位就可以用 Tab 键补全;

Ctrl + R :用于查找使用过的命令(history命令用于列出之前使用过的所有命令,然后输入!命令加上编号 (!2) 就可以直接执行该历史命令);

Ctrl + L:清除屏幕并将当前行移到页面顶部;

Ctrl + C:中止当前正在执行的命令;

Ctrl + U:从光标位置剪切到行首;

Ctrl + K:从光标位置剪切到行尾;

Ctrl + W:剪切光标左侧的一个单词;

Ctrl + Y:粘贴Ctrl + U | K | Y剪切的命令;

Ctrl + A:光标跳到命令行的开头;

Ctrl + E:光标跳到命令行的结尾;

Ctrl + D:关闭Shell会话;

ctrl + shift + =: 放大终端窗口的字体显示
  
ctrl + -: 缩小终端窗口的字体显示

1.3. 其他命令

1.3.1. 总出

思维导图展出,学习完后可以快速回忆,查询

1.3.2. 查找文件find

用来在 特定的目录下 搜索 符合条件的文件【找文件】

find [路径] -name “文件名”

  • 如果省略路径,表示在当前文件夹下查找
1.3.2.1.1. 栗子
1.搜索桌面目录下,文件名包含 1 的文件
find -name "*1*"

2.搜索桌面目录下,所有以 .txt 为扩展名的文件
find -name "*.txt"

3.搜索桌面目录下,以数字 1 开头的文件
find -name "1*"
1.3.3. 软链接和硬链接
1.3.3.1. 软链接

ln -s 被链接的源文件 链接文件

建立文件的软链接,用通俗的方式讲类似于 Windows 下的快捷方式

  • 没有 -s 选项建立的是一个 硬链接文件,两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
  • 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用
1.3.3.1.1. 栗子
    1. 将桌面目录下的 01.py 移动到 demo/b/c 目录下
mkdir -p ~/Desktop/demo/b/c
mv ~/Desktop/01.py ~/Desktop/demo/b/c/  # 把桌面上的01.py移动到目标目录
cd ~/Desktop  # 回到桌面目录准备创建软链接

    1. 在桌面目录下新建 01.py 的 软链接 FirstPython分别使用 相对路径 和 绝对路径 建立 FirstPython 的软链接【一个是简略写法,一个是详细完整的写法】
1.相对路径创建(源文件只写相对于当前桌面的路径)
ln -s demo/b/c/01.py FirstPython_relative

2.绝对路径创建(源文件写完整路径)
ln -s /home/你的用户名/Desktop/demo/b/c/01.py FirstPython_absolute

替换成你自己的用户名,比如如果是root就是/root/Desktop/...

    1. 将 FirstPython 移动到 demo 目录下,对比使用 相对路径 和 绝对路径 的区别
mv FirstPython* ~/Desktop/demo/  # 把两个软链接都移动过去
cd ~/Desktop/demo
  • 👉 相对路径链接(FirstPython_relative):打开会提示「No such file or directory」,链接失效,因为它存的路径是demo/b/c/01.py,现在它自己在demo目录,找的就是demo/demo/b/c/01.py,这个文件不存在。
  • 👉 绝对路径链接(FirstPython_absolute):可以正常打开、编辑源文件,因为它存的是完整固定路径,和自己在哪没关系。
1.3.4. 硬链接{用不到,知道即可}

ln 被链接的源文件 链接文件

在使用 ln 创建链接时,如果没有 -s 选项,会创建一个 硬链接,而不是软链接

1.3.4.1.1. 栗子
    1. 在 ~/Desktop/demo 目录下建立 ~/Desktop/demo/b/c/01.py 的硬链接 01_hard
    2. 使用 ls -l 查看文件的硬链接数(硬链接——有多少种方式可以访问文件或者目录)
cd ~/Desktop/demo
ln ~/Desktop/demo/b/c/01.py 01_hard

执行ls -l查看,你会看到源文件和硬链接的inode编号一样,硬链接数都变成了2。

    1. 删除 ~/Desktop/demo/b/c/01.py ,并且使用 tree 来确认 demo 目录下的三个链接文件文件软硬链接的示意图
rm ~/Desktop/demo/b/c/01.py
tree ~/Desktop/demo  # 查看目录结构
  • 现在demo目录里,你创建的两个软链接里,只有绝对路径那个能打开,但它也会提示找不到源文件;但硬链接01_hard依然可以正常打开,内容和原来的01.py完全一样。
  • 这就是硬链接的特性:删除源文件不影响硬链接,因为它们本来就是同一个文件的不同名字。
  • 在 Linux 中,只有文件的 硬链接数 == 0 才会被删除
  • 使用 ls -l 可以查看一个文件的硬链接的数量

文件软硬链接示意图

【在 Linux 中,文件名 和 文件的数据 是分开存储的】

1.4. 打包压缩

  • 在不同操作系统中,常用的打包压缩方式是不同的选项 含义
    Windows 常用 rar
    Mac 常用 zip
    Linux 常用 tar.gz
1.4.1. 打包 / 解包

tar 是 Linux 中最常用的 备份工具,

此命令可以 把一系列文件 打包到 一个大文件中,也可以把一个 打包的大文件恢复成一系列文件

1.4.1.1.1. 打包文件
打包文件
tar -cvf 打包文件.tar 被打包文件/路径

-c:--create,创建新的打包文件,这是打包操作的核心参数
-v:--verbose,显示打包过程的详细信息,
    会把当前正在打包的每个文件/目录名打印在屏幕上,方便你看到打包进度
-f 文件名:--file,指定打包后输出的归档文件名,
    这里就是指定输出为test.tar,-f必须放在所有参数的最后,因为它后面要紧跟文件名

如:

cd ~/Desktop

tar -cvf test.tar test_pack/

就是将test_pack/目录下所有文件都打包进test.tar里面

1.4.1.1.2. 解包文件

tar -xvf 打包文件.tar

1.4.2. 压缩/解压缩
1.4.2.1. gzip【用来压缩tar打包的文件】

tar 与 gzip 命令结合可以使用实现文件 打包和压缩

  • tar 只负责打包文件,但不压缩
  • 用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz
  • 【在 tar 命令中有一个选项 -z 可以调用 gzip ,从而可以方便的实现压缩和解压缩的】
1.4.2.1.1. 压缩文件

tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...

栗子:

# 先切换到桌面目录
cd ~/Desktop
  
# 把test_pack目录压缩为test.tar.gz
tar -zcvf test.tar.gz test_pack/
1.4.2.1.2. 解压缩文件

tar -zxvf 打包文件.tar.gz

栗子:

cd ~/Desktop
tar -zxvf test.tar.gz

执行后会直接在当前桌面目录,重新生成 test_pack 文件夹及其内部所有文件,保持原有目录结构。

1.4.2.1.3. 解压缩到指定路径

tar -zxvf 打包文件.tar.gz -C 目标路径

  • -C 解压缩到指定目录,注意:要解压缩的目录必须存在

栗子:

比如我们要解压到 /tmp/test_unpack/ 这个目录:

# 1. 先创建目标目录(如果不存在)
mkdir -p /tmp/test_unpack/
# 2. 执行解压,指定目标路径
tar -zxvf test.tar.gz -C /tmp/test_unpack/

参数说明:-C(大写)参数的作用是切换解压目标路径,必须放在压缩包文件名之后。
解压后可以用这条命令验证结果:

ls /tmp/test_unpack/

你会看到 test_pack 目录已经出现在这个指定路径下了。

1.4.2.2. bzip2(two)

【用法与gzip一致】

  • 在 tar 命令中有一个选项 -j 可以调用 bzip2 ,从而可以方便的实现压缩和解压缩的功能

命令格式如下:

# 压缩文件

tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...

# 解压缩文件

tar -jxvf 打包文件.tar.bz2

对比维度

gzip

bzip2

压缩比

较低,对文本通常能压缩到原大小的30%-40%,比bzip2大10%-30%

更高,相同文件通常比gzip再小10%-30%,对文本类数据优势更明显

压缩/解压速度

更快,计算开销小,实时性好

明显更慢,压缩速度通常是gzip的1/4左右

资源占用

CPU和内存占用更低

内存和CPU消耗更高

文件后缀

.gz

.bz2

1.5. 软件安装

通过 apt 安装/卸载软件

  • apt 是 Advanced Packaging Tool ,是 Linux 下的一款安装包管理工具
  • 可以在终端中方便的 安装/卸载/更新软件包
# 1. 安装软件
$ sudo apt install 软件包
  
# 2. 卸载软件
$ sudo apt remove 软件名
  
# 3. 更新已安装的包
$ sudo apt upgrade

1.6. 文件和目录常用命令

1.6.1. 查看目录内容
1.6.1.1. ls 命令说明

ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS下的 dir 命令

1.6.1.2. Linux 下文件和目录的特点

Linux 文件 或者 目录 名称最长可以有 256 个字符参数 含义

  • 以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
  • . 代表当前目录
  • … 代表上一级目录
1.6.1.3. ls 常用选项

参数

含义

-a

显示指定目录下所有子目录与文件,包括隐藏文件

-l

以列表方式显示文件的详细信息

-h

配合 -l 以人性化的方式显示文件大小

1.6.1.4. ls通配符的使用

通配符

含义

*

代表任意个数个字符

?

代表任意一个字符,至少 1 个

[]

表示可以匹配字符组中的任一一个

[abc]

匹配 a、b、c 中的任意一个

[a-f]

匹配从 a 到 f 范围内的的任意一个字符

1.6.1.4.1. 栗子

1. * 代表任意个数(包含0个)的任意字符

  • *.log → 匹配所有.log结尾的日志文件,比如 access.log、error-2024.log
  • data* → 匹配所有以data开头的文件,比如 data、data.csv、database
  • *2026* → 匹配文件名中包含2026的任意文件,比如 report-2026.txt、2026-04.tar.gz

2. ? 代表恰好1个任意字符(至少1个,只能是1个)

  • file?.txt → 匹配 file1.txt、fileA.txt,不匹配 file.txt(少一个字符)或 file12.txt(多一个字符)
  • ?? → 匹配文件名长度恰好为2个字符的文件/目录

3. [] 匹配字符组中的任意一个字符

基础用法:

  • [abc].txt → 只匹配 a.txt、b.txt、c.txt,不匹配 d.txt
    范围用法:
  • file[0-9].txt → 匹配 file0.txt ~ file9.txt 任意一个
  • img[a-z].png → 匹配 imga.png 到 imgz.png 任意一个
    取反用法(^开头表示不匹配):
  • [^0-9].txt → 匹配文件名第一个字符不是数字的.txt文件,比如 a.txt、data.txt,不匹配 1.txt
1.6.2. 切换目录
1.6.2.1. cd

cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一
【注意:Linux 所有的 目录 和 文件名 都是大小写敏感的,即大小写区分,tset与Tset不一样】

命令

含义

cd

切换到当前用户的主目录(/home/用户目录)

cd ~

切换到当前用户的主目录(/home/用户目录)

cd .

保持在当前目录不变

cd …

切换到上级目录

cd -

可以在最近两次工作目录之间来回切换

1.6.2.2. 相对路径和绝对路径

类型

开头特征

优点

适用场景

绝对路径

/或~

不依赖当前位置,不会出错

脚本写固定路径、访问系统目录

相对路径

无斜杠开头

更简洁,项目迁移方便

日常操作同一项目内的文件

1.6.2.2.1. 绝对路径示例(以 / 或 ~ 开头)

绝对路径是从根目录/家目录开始的完整路径,不管你当前在哪个目录,它都指向唯一位置:

  • /home/yourname/Documents/note.txt:从根目录开始,完整定位到你的文档下的笔记
  • ~/project/ctf/web:~ 自动展开为当前用户的家目录,等价于 /home/你的用户名/project/ctf/web
  • /var/www/html/test.php:Apache默认网站根目录的完整绝对路径

回顾:上面的软链接使用绝对路径

ln -s /home/yourname/ctf/payload.php /var/www/html/shell.php

1.6.2.2.2. 相对路径示例(不以 / 开头,相对于当前工作目录)

相对路径是相对于你当前所在目录的位置,当前目录变了,同一个相对路径指向的位置也会变:

  • 如果你当前在 /home/你的用户名/ 目录,那么:
    • ./Documents:. 代表当前目录,等价于 /home/你的用户名/Documents
    • ../opt:..代表上级目录,等价于 /home/opt
    • project/ctf:从当前目录往下找,等价于 /home/你的用户名/project/ctf
1.6.3. 创建和删除操作
1.6.3.1. touch【创建文件或修改文件时间】
  • 如果文件 不存在,可以创建一个空白文件
  • 如果文件 已经存在,可以修改文件的末次修改日期
1.6.3.2. mrdir【创建一个新的目录】

选项

含义

-p

可以递归创建目录

新建目录的名称 不能与当前目录中 已有的目录或文件 同名

1.6.3.3. rm【删除文件或目录】

使用 rm 命令要小心,因为文件删除后不能恢复

选项

含义

-f

强制删除,忽略不存在的文件,无需提示

-r

递归地删除目录下的内容,删除文件夹 时必须加此参数

1.6.4. 拷贝和移动文件

命令

对应英文

作用

tree [目录名]

tree

以树状图列出文件目录结构

cp 源文件目标文件

copy

复制文件或者目录

mv 源文件 目标文件

move

移动文件或者目录/文件或者目录重命名

1.6.4.1. tree
  • tree 命令可以以树状图列出文件目录结构

选项

含义

-d

只显示目录

1.6.4.1.1. 栗子
  • 展示当前目录所有文件和子目录:
tree
  • 只展示当前目录的子目录(忽略文件):
tree -d

示例效果:会只列出uploads、logs、config这类目录,不会列出目录里的脚本文件。

1.6.4.2. cp
  • cp 命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录 中,相当DOS 下的 copy命令

选 项

含义

-i

覆盖文件前提示

-r

若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,

目标文件必须为一个目录名

1.6.4.2.1. 栗子
  • 复制单个文件:把当前目录的test.php复制一份叫test_backup.php
cp test.php test_backup.php
  • 复制整个目录:把dirsearch目录下所有内容,递归复制到/opt/dirsearch
cp -r ./dirsearch /opt/dirsearch
  • 覆盖前提示:复制payload.txt到payloads目录,如果目标已经有同名文件,会先提示你确认
cp -i payload.txt payloads/

1.6.4.3. mv
  • mv 命令可以用来 移动 文件 或 目录,也可以给 文件或目录重命名

选项

含义

-i

覆盖文件前提示

1.6.4.3.1. 栗子
  • 重命名文件:把old.php改名为new.php【文件对文件】
mv old.php new.php
  • 移动文件:把shell.php移动到uploads目录下【文件移到目录下】
mv shell.php uploads/
  • 移动并覆盖提示:把test.txt移动到/tmp目录,如果目标已有同名文件,会提示确认
mv -i test.txt /tmp/
1.6.5. 查看文件内容

命令

对应英文

作用

cat 文件名

concatenate

查看文件内容、创建文件、文件合并、追加文件内容等功能

more 文件名

more

分屏显示文件内容

grep 搜索文本 文件名

grep

搜索文本文件内容

1.6.5.1. cat

cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能
cat 会一次显示所有的内容,适合 查看内容较少 的文本文件

选项

含义

-b

对非空输出行编号

-n

对输出的所有行编号

1.6.5.1.1. 栗子

这个选项就是编号,

     1	<?php

     2	echo "this is webshell";

     3	system($_GET['cmd']);

     4	?>
     1	<?php
     2	
     3	echo "this is webshell";
     4	
     5	system($_GET['cmd']);
     6	
     7	?>
1.6.5.2. more
  • more 命令可以用于分屏显示文件内容,每次只显示一页内容
  • 适合于 查看内容较多的文本文件

使用 more 的操作键:

操作键

功能

空格键

显示手册页的下一屏

Enter键

一次滚动手册页的一行

b

回滚一屏

f

前滚一屏

q

退出

/word

搜索 word 字符串

1.6.6. grep

Linux 系统中 grep 命令是一种强大的文本搜索工具
grep 允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式。

【grep [选项] "匹配模式" [文件/目录路径]】

选项

含义

-n

显示匹配行及行号

-v

显示不包含匹配文本的所有行(相当于求反)

-i

忽略大小写

1.6.6.1.1. 栗子
  • 基础搜索:在指定文件中查找包含关键词的行
# 在error.log中查找包含"SQL"的行
grep "SQL" error.log
  • -i 忽略大小写:不区分大小写匹配,避免漏匹配
# 匹配Error、error、ERROR等各种形式
grep -i "error" access.log
  • -n 显示行号:输出匹配行在文件中的具体行号,方便快速定位
grep -n "eval" webshell.php
  • -v 反向匹配:只输出不包含关键词的行,用来过滤无用信息
# 筛选出日志中不是"success"的行(看异常)
grep -v "success" system.log
  • -c 统计匹配行数:只输出匹配到的总行数,适合快速统计
# 统计访问日志里一共出现了多少次404错误
grep -c " 404 " /var/log/nginx/access.log
  • -r 递归搜索:遍历指定目录下所有子目录和文件搜索
# 在当前目录所有PHP文件里找包含"eval"关键词的一句话木马
grep -r "eval" . --include="*.php"
  • 上下文显示(看报错前后内容很有用)
    • -A n:显示匹配行 + 后面n行
    • -B n:显示匹配行 + 前面n行
    • -C n:显示匹配行 + 前后各n行
# 找日志里的fatal错误,并显示错误前后各1行上下文
grep -C 1 "fatal" /var/log/nginx/error.log
  • 正则匹配:支持正则表达式实现精准匹配
# 查找以"[ERROR]"开头的行
grep "^\\[ERROR\\]" system.log
# 查找包含IP地址的行
grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" access.log
  • 结合管道的常用技巧

grep经常和其他命令搭配做过滤,非常高效:

# 列出当前目录下所有log后缀的文件
ls | grep ".log"
# 实时监控日志,只输出带Timeout的新日志
tail -f service.log | grep "Timeout"
1.6.6.1.2. 常用的两种模式查找

参数

含义

^a

行首,搜寻以 a 开头的行

ke$

行尾,搜寻以 ke 结束的行

1.7. 系统信息相关命令

1.7.1. 时间和日期

命令

作用

date

查看系统时间

cal

calendar 查看日历,

-y 选项可以查看一年的日历

【突然想到黑神话悟空的那道题,要注意date的形式,可以去查日历?】

1.7.2. 磁盘信息

命令

作用

df -h

disk free 显示磁盘剩余空间

du -h [目录名]

disk usage 显示目录下的文件大小

1.7.3. 进程信息【 当前正在执行的一个程序】

命令

作用

ps aux

process status 查看进程的详细状况

top

动态显示运行中的进程并且排序

kill [-9] 进程代号

终止指定代号的进程, -9 表示强行终止

1.7.3.1. ps

ps 默认只会显示当前用户通过终端启动的应用程序
ps 选项说明

选项

含义

a

显示终端上的所有进程,包括其他用户的进程

u

显示进程的详细状态

x

显示没有控制终端的进程

1.7.3.1.1. 栗子

ps aux | grep nginx

过滤出你想要找的进程,比如找nginx

1.7.3.2. top

打开一个交互式界面,实时刷新显示进程的CPU、内存使用率,适合排查服务器卡慢问题。

常用交互操作:

  • 按P:按CPU使用率排序,找出占CPU最高的进程
  • 按M:按内存使用率排序
  • 按q:退出top界面
  • 直接输入top就可以启动了
1.7.3.3. kill

使用 kill 命令时,最好只终止由当前用户开启的进程,而不要终止 root 身份开启的进程,否则可能导致系统崩溃

1.7.3.3.1. 栗子

实用例子:

  1. 先找到占用端口的PHP-FPM进程PID:
ps aux | grep php-fpm

假设得到进程ID是 1234
2. 强制杀死这个进程:

kill -9 1234

其他常见用法:如果要温和停止进程可以不用-9,用kill 进程PID发送默认终止信号,让进程正常退出。

1.8. 用户权限相关命令

1.8.1. 组管理

【创建组/删除组的终端命令都需要通过sudo执行】

{sudo 是Linux/Unix系统中临时获取管理员权限执行命令的工具}

命令

作用

groupadd 组名

添加组

groupdel 组名

删除组

cat /etc/group

确认组信息

chgrp -R 组名 文件/目录名

递归修改文件/目录的所属组

  • 组信息保存在 /etc/group 文件中
  • /etc 目录是专门用来保存 系统配置信息 的目录
1.8.2. 用户管理

【创建用户 / 删除用户 / 修改其他用户密码 的终端命令都需要通过 sudo 执行】

1.8.2.1. 创建用户/设置密码/删除用户

命令

作用

说明

useradd -m -g组 新建用户名

添加新用户

-m是自动建立用户家目录【如果忘记就删除用户重新建立】

-g指定用户所在的组,否则建立一个与用户同名的组

passwd 用户名

设置用户密码

如果是普通用户,直接用passwd修改自己的密码

userdel -r 用户名

删除用户

-r是自动删除用户的家目录

cat/etc/passwd |grep 用户名

确认用户信息

新建用户后,用户信息会保存在/etc/passwd

1.8.2.1.1. 疑问?家目录是什么

Linux的家目录是每个用户专属的个人存储空间,是用户登录系统后的默认工作目录,用于存放用户的私人文件、配置文件和应用数据。

标准默认路径

  • 普通用户:默认存放在 /home/用户名,例如用户test的家目录是/home/test
  • 超级管理员root:家目录为独立的/root,不在/home路径下
1.8.2.2. 查看用户信息

命令

作用

id [用户名]

查看用户 UID 和 GID 信息

who

查看当前所有登录的用户列表

whoami

查看当前登录用户的账户名

1.8.2.2.1. uid,gid是什么意思

UID(User ID,用户ID)和GID(Group ID,组ID)是Linux系统权限管理的核心数字标识符,系统通过它们而非用户名/组名来判断权限。

标识符

作用对象

核心作用

常见ID范围

UID

单个用户

唯一标识系统用户,

决定用户对系统资源(文件/进程)的访问权限

<br>- 0:root超级用户(最高权限)<br>- 1~999:系统服务/守护进程专用(系统用户)

<br>- ≥1000:普通用户

GID

用户组

唯一标识用户组,

简化同组用户的共享权限分配

<br>- 0:root用户组

<br>- 1~999:系统预留组

<br>- ≥1000:普通用户组

1.8.2.2.2. uid,gid使用栗子

所有用户和组的UID/GID信息都明文存储在两个系统配置文件中:

  1. /etc/passwd:存储所有用户信息,每行格式为:
用户名:密码占位符(x):UID:GID:用户说明:家目录:登录Shell

示例(root用户条目):

root:x:0:0:root:/root:/bin/bash

可以看到:root的UID=0、GID=0。

  1. /etc/group:存储所有用户组信息,包含组成员列表。

查看当前/指定用户的UID/GID:

# 查看当前登录用户
id
# 查看指定用户(比如test)
id test

输出示例:

uid=1000(test) gid=1000(test) groups=1000(test),4(adm)

其中gid是用户主组GID,后面groups是用户加入的所有附加组。

1.8.2.2.3. uid,gid涉及到一个考点(漏洞)

权限提升风险:只要用户的UID被设置为0,无论用户名是什么,都会被内核识别为root,获得最高权限。攻击者常会通过修改普通用户UID为0来实现提权。

可以用命令排查异常特权用户:

# 找所有UID为0的异常用户
awk -F: '$3 == 0 {print $1}' /etc/passwd
1.8.2.2.4. which

which命令可以查看执行命令所在位置,【注意,cd不行】

which ls
# 输出
# /bin/ls
  
which useradd
# 输出
# /usr/sbin/useradd
1.8.2.2.5. bin 和 sbin

在 Linux 中,绝大多数可执行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin

/bin ( binary )是二进制执行文件目录,主要用于具体应用

/sbin ( system binary )是系统管理员专用的二进制代码存放目录,主要用于系统管理

/usr/bin ( user commands for applications )后期安装的一些软件

/usr/sbin ( super user commands for applications )超级用户的一些管理程序

1.8.2.3. 切换用户

命令

作用

说明

su - 用户名

切换用户,并且切换目录

可以切换到用户家目录,否则保持位置不变

exit

退出当前登录账户

1.8.2.3.1. 注意有没有带-

命令

环境变量

工作目录

适用场景

su - 用户名

加载目标用户的完整环境

自动切到目标用户家目录

需要以目标用户完整身份操作时(推荐标准用法)

su 用户名

保留当前原用户的环境变量

留在原用户的当前工作目录

只需要切换身份但保留当前环境时

  • 普通用户切换到任何其他用户都需要输入目标用户的密码;
  • root切换到任何用户都不需要密码。【我突然在思考一个问题,没别的意思,如果老大要看地下员工工作情况,可以直接切换账号进来吗】
1.8.2.4. 切换文件权限

命令

作用

chown

修改拥有者

chgrp

修改组

chmod

修改权限

命令:

# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
  
# 递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
  
# 递归修改文件权限
chmod -R 755 文件名|目录名

1.9. 远程管理常用命令

1.9.1. 关机/重启

命令

对应英文

作用

shutdown

选项 时间 shutdown

关机/重新启动

命令

# 重新启动操作系统,其中 now 表示现在
$ shutdown -r now
  
# 立刻关机,其中 now 表示现在
$ shutdown now
  
# 系统在今天的 20:25 会关机
$ shutdown 20:25
  
# 系统再过十分钟后自动关机
$ shutdown +10
  
# 取消之前指定的关机计划
$ shutdown -c
  • 不指定选项和参数,默认表示 1 分钟之后 关闭电脑
  • 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
1.9.2. 查看配置网卡信息

命令

对应英文

作用

ifconfig

configure a network interface

查看/配置计算机当前的网卡配置信息

ping ip地址

ping

检测到目标 ip地址 的连接是否正常

1.9.2.1. ifconfig

ifconfig是Linux早期经典的网卡配置查看工具,全称是interface configuration,属于net-tools工具包(部分新版系统默认不预装)。

1.9.2.1.1. 基础用法
  1. 查看全部网卡的完整配置信息
$ ifconfig
  1. 过滤提取所有IP地址
$ ifconfig | grep inet
1.9.2.1.2. ✅ 补充要点
  • 网卡命名规则:一台计算机通常会包含多种网卡:
    • 物理网卡:新版Linux(CentOS 7+/Ubuntu 15+)默认命名为ensXX或enp0sX,老式命名为eth0/eth1;
    • 虚拟网卡:比如Docker的docker0、VMware虚拟机的vmnet、本地环回lo;
  • 本地回环地址127.0.0.1:专门用于本机进程间网络通信,永远代表本机本身,通常用来测试本机TCP/IP协议栈是否正常工作。【一般用来测试本机网卡是否正常】
1.9.2.2. ping

ping命令用于检测本机到目标主机之间的网络连通性和延迟质量,它的命名取自声纳探测的回声,网络中也常用作动词:比如"ping一下这个IP看看有没有开机"。

【ping 一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢】

1.9.2.2.1. 基础用法
  1. 检测到目标主机的连通状态
$ ping <IP地址或域名>

示例:ping www.baidu.com

  1. 检测本地网卡/TCP协议栈是否正常
$ ping 127.0.0.1
1.9.2.2.2. ✅ 补充要点
  • 工作原理:ping基于ICMP协议,向目标主机发送Echo Request(回声请求)数据包,如果目标主机在线且允许ICMP请求,就会回复Echo Reply(回声应答);
  • 延迟判断:输出中的time=xx ms就是本次请求往返的延迟,数值越大说明网络延迟越高,连接质量越差;
  • 常用参数:默认Linux下ping会一直发包,按Ctrl+C停止;如果只需要指定发包次数,可以加-c参数:ping -c 4 127.0.0.1(发送4个包后自动停止);
  • 排坑提示:ping不通不代表目标一定不在线,很多服务器会开启防火墙拦截ICMP数据包,此时需要结合其他端口检测方式(比如telnet、nc)进一步验证。

1.9.3. 远程登录和赋值文件

命令

作用

ssh 用户@ip

关机/重新开机

scp 用户名 @ip:文件名或路径

远程复制文件

1.9.3.1. ssh

SSH 全称Secure Shell(安全外壳协议),是目前最主流的加密远程通信协议,专为解决传统远程工具的安全缺陷而生。

通过 SSH 客户端 我们可以连接到运行了 SSH 服务器 的远程机器

使用:ssh [-p port] user@remote

  • user 是在远程机器上的用户名,如果不指定的话默认为当前用户
  • remote 是远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名
  • port 是 SSH Server 监听的端口,如果不指定,就为默认值 22

栗子:

如:远程登录服务器

# 标准用法:用户名@服务器IP/域名
ssh user@192.168.1.100

# 指定非默认端口
ssh -p 2222 user@your-server.com
1.9.3.2. scp

它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的

scp [参数] 源路径 目标路径

【第一个参数永远是要复制的文件/目录,第二个参数是保存位置,不需要刻意区分本地和远端,只需要按照规则写路径即可。】

1.9.3.2.1. 常用参数说明

参数

作用

-r

递归复制,传输目录时必须加

【若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名】

-P

大写P,指定远程 SSH 端口(默认22),非默认端口必须指定

-p

小写p,保留源文件的修改时间、访问时间和权限

【保留文件的属性】

-C

启用压缩传输,大文件、慢网络下可节省带宽

-v

显示详细传输过程,适合调试连接问题

-q

静默模式,隐藏传输进度条

-l

限制传输带宽,单位为 kbit/s,避免占满整个网络

-i

指定密钥文件,适合基于公钥免密登录的场景

1.9.3.2.2. 常见场景使用示例

1. 本地 → 远程:上传文件

# 上传单个文件
scp /本地路径/test.txt root@192.168.1.100:/远程目标路径/

# 上传整个目录(必须加 -r)
scp -r /本地路径/项目目录 root@192.168.1.100:/远程目标路径/

# 远程SSH端口非默认(如2222)的情况
scp -P 2222 ./test.txt root@192.168.1.100:/data/

2. 远程 → 本地:下载文件

只需要调换源路径和目标路径的顺序即可:

# 下载单个文件到本地当前目录(. 代表当前目录)
scp root@192.168.1.100:/var/log/nginx.log .

# 下载整个目录到本地
scp -r root@192.168.1.100:/var/log/nginx ~/本地备份目录/

3. 远程 → 远程:直接中转(本地当跳板)

如果需要在两台远程服务器之间直接传文件,本地同时能连通两台的情况下可以直接传输,不需要先下载再上传:

scp user1@主机1IP:/源文件路径 user2@主机2IP:/目标路径

Linux : 终端命令整理 操作系统的第一节实验课,划水成功orz 然后闲着没事就整理了一下Linux的命令 大概就是???? 1.常用命令 2.上课提到的命令 3.网上博主的整理 文件目录类 1.建立目录:mkdir 目录名 2.删除空目录:rmdir 目录名 3.无条件删除子目录: rm -rf 目录名 4.改变当前目录:cd 目录名 (进入用户home目录:cd ~;进入上一级目录:cd -) 5.查看自己所在目录:pwd 6.查看当前目录大小:du 7.显示目录文件列表:ls -l (-a:增加显示隐含目录) 其中:蓝: 阅读详情

相关推荐

Linux:20个linux常用命令

文章目录20个linux常用命令1. ls:列出文件list2. cd:切换目录change directory3. cp:复制copy4. mv:移动move5. rm:移除,删除remove6. mkdir:创建文件夹make directory7. rmdir:移除,删除文件夹remove directory8. chown:更改所有者change owner9. chmod:更改文件的权限模式change mode10. find:查找11. |:管道12. grep:按行查找并匹配13. tar:

IC Beginner的博客 14万+

Linux常用命令

目录 一、基本命令 1.1 关机和重启 1.2 帮助命令 二、目录操作命令 2.1 目录切换 cd 2.2 目录查看 ls [-al] 2.3 目录操作【增,删,改,查】 2.3.1创建目录【增】 mkdir 2.3.2删除目录或文件【删】rm 2.3.3目录修改【改】mv 和 cp 2.3.4搜索目录【查】find 三、文件操作命令 3.1 文件操作【增,...

Demon的博客 169万+

CAPL 中的变量类型详解与应用

CAPL 中的变量类型详解与应用

qq_42268594的博客 1448

Linux命令大全:掌握常用命令,轻松使用Linux操作系统

Linux常用命令是指在Linux操作系统中广泛使用的命令工具,这些命令工具可以完成各种不同的任务,如管理文件和目录、操作进程、网络通信、软件安装等。一些常用的Linux命令包括cd、ls、mkdir、rm、cp、mv、ps、top、ping、ssh、tar、grep、find、shutdown、reboot、apt和yum等。

艰难困苦,玉汝于成。 6万+

光谱预处理最简单实现方法--基于OpenSA光谱分析库

系列文章目录 “光晰本质,谱见不同”,光谱作为物质的指纹,被广泛应用于成分分析中。伴随微型光谱仪/光谱成像仪的发展与普及,基于光谱的分析技术将不只停留于工业和实验室,即将走入生活,实现万物感知,见微知著。本系列文章致力于光谱分析技术的科普和应用。 文章目录系列文章目录前言一、数据来源二、代码解读2.1 读取数据2 .2 划分数据集2 .3 返回训练集和测试集并绘制光谱图片2.4 建立1-D CNN模型2.5 训练1-D CNN模型2.6 测试1-D CNN模型2.7 运行CNN模型,并用查看结果总结

Echo_Code的博客 7067

Unity学习笔记之【IK反向动力学操作】

反向动力学,简称IK。相较于正向动力学,反向动力学旨在子级对父级产生的影响。使用IK,可以实现根据目标位置或方向来计算并调整角色的关节(骨骼)链,以使角色的末端(如手臂、腿部等)达到预期的位置或取向。通过使用 Unity 的 IK 功能,你可以实现各种复杂的角色动画效果,如角色抓取、足部对齐、手臂跟随等。 2. 将所视的目标物体拖拽绑定 4. 实现效果如下 :移动角色时注释立方体 实现效果如下

m0_47351846的博客 2954

Linux命令大全(全网最细讲解)

这篇文章介绍了Linux命令的基础知识、基础操作、目录操作、文件操作、文件权限、打包与解压以及其他常用命令等内容。其中包括了系统管理方面的内容,如防火墙操作、修改主机名、查看网络、修改IP、配置映射、查看进程、结束进程、查看链接等。还介绍了一些常用的命令,如find、whereis、which、sudo、grep、service、free、top、df、mount、uname、yum、rpm、date、wget、ftp、scp等。

书生-w的博客 1万+

基于淘宝商城用户购物行为数据分析系统

本文使用HIve+superset技术对阿里云天池提供的淘宝用户购物数据进行处理分析,得到有价值的信息并对平台提出有建设性意义的意见。

m0_51388399的博客 2818

全网最全Linux常用命令大全(200个),及Linux面试题,全网最前,没有之一

目录 一、前言 二、Linux常用命令大全 1、系统信息 2.关机 (系统的关机、重启以及登出 ) 3.文件和目录 4.文件搜索 5.挂载一个文件系统 6.磁盘空间 7.用户和群组 8.文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消 9.打包和压缩文件 ​10.RPM 包 - (Fedora, Redhat及类似系统) ​​​​​​ ​​11.YUM 软件包升级器 - (Fedora, RedHat及类似系统) 12.查看文件内容 ...

sadmin___的博客 7386

VisualSFM+MeshLab 三维重建全过程记录

VisualSFM+MeshLab 三维重建全过程记录,从下载到运行出结果,以及其中一些可能出现的小问题。通过这两个软件熟悉一下多目立体视觉重建的流程。

何似莫相逢 3万+

世界职业院校技能大赛财经赛道项目参考逐字稿五

世界职业院校技能大赛财经赛道项目参考逐字稿五

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 132

全网最全Linux命令合集,2024Linux运维通用流行框架大全

最全的Linux教程,Linux从入门到精通。

2401_83740129的博客 977

Cesium圆形波纹/雷达扩散效果扩展类CircleWaveMaterialProperty

本文是基于原创内容进行部分修改,原文出处:https://blog.youkuaiyun.com/chudage11/article/details/101632482 SuperMapCesium支持该类似扩展类,以下是原生Cesium调用扩展类CircleWaveMaterialProperty说明 1.扩展类CircleWaveMaterialProperty.js import*asCesiumfrom'cesium' varCircleWaveMaterial={ Circl...

一碗老面的博客 2998

全网Linux期末考题大全

全网Linux期末考题大全 去发现同类优质开源项目:https://gitcode.com/ 资源介绍 本仓库提供了一份名为“全网Linux期末考题大全”的资源文件,该文件包含了197道精心整理的Linux相关题目,涵盖了选择题、判断题、填空题、操作题以及编程题。这些题目是根据网上现有的资料整理而成,内容全面且具有代表性。 资源内容 选择题:197道选择题,涵盖了Linux的各个知识点,题目设计...

gitblog_06694的博客 503

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

全网最全 Linux 命令总结 大全

Linux 就是用命令实现高效工作的.常用的大约有150个左右.可以参考学习. 基本命令 uname -m显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架构 uname -m显示机器的处理器架构 uname -r 显示正在使用的内核版本 d...

weixin_50764555的博客 463

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

全网最全Linux命令总结!!(史上最全,建议收藏)

Linux超全命令总结,看这一篇就够了,建议小伙伴们先收藏后阅读!!

冰河的专栏 17万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【Linux】命令大全,全网最详细

挂载优盘:mount -t vfat /dev/sdc1 /media/usb。touch:建立指定名称的文件或更新文件时间 touch filename;tail:显示底部几行信息;挂载镜像文件:mount -o loop 镜像文件名 挂载路径。【举例:用户名:text 组名:share】1,命令模式:光标的移动、跳转、复制和删除。mv:移动文件或目录,文件或目录重命名。卸载挂载:umount 挂载路径/目录。more :分页显示文本文件信息;file:显示指定文件的类型;

meidongyan的博客 642

全网最全最长(4万多字)的Linux命令讲解(史上最全,建议收藏以备查阅,文末附Linux命令大全下载)

全网最全最长(4万多字)的Linux命令讲解(史上最全,建议收藏以备查阅,文末附Linux命令大全下载)

科技改变人类,技术成就未来 9327

全网最详细的 Linux 常用命令大全,从基础到进阶

本文是一篇全面的Linux命令指南,涵盖从基础到进阶的常用命令,适合初学者、运维工程师、开发人员等各类Linux用户。文章首先强调命令行的重要性,包括高效批量处理、远程操作和自动化等优势。随后系统性地介绍各类命令: 基础认知:路径、通配符、快捷键和帮助命令 文件操作:ls/cd/mkdir/cp/mv/rm等核心命令 内容查看:cat/less/head/tail等文件查看工具 文本处理:强大的grep搜索和find文件查找命令 文章特别注重实用技巧,如ls -lah组合、rm -rf的风险提示、tail

2503_92784774的博客 1777

全网最全常用Linux命令合集

1、Linux 目录结构 1.1、查看目录 1.2、切换目录 1.3、显示当前目录 1.4、创建目录 1.5、删除目录 2、文件操作 2.2、创建文件 2.3、写入内容 2.4、复制/拷贝文件 2.5、移动文件 2.6、删除文件 3、打包与拆包 4、查看进程快照 5、管道 | 6、VIM编辑器 8、Linux的文件权限 8.2、修改文件权限 8.2.1、mode方式 8.2.2、数字方式 9、Linux常用网络操作 9.1 主机名操作 9.2 查询系统完整信息 .

Yanan990830的博客 2347

Linux指令集大全(全网最详细教程)

可选可选当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容。

weixin_42242910的博客 2756

测试人必备的Linux常用命令大全...【全网最全面整理】

rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容。ln -s file1 lnk1 创建一个指向文件或目录的软链接。mkdir -p /tmp/dir1/dir2 创建一个目录树。rm -f file1 删除一个叫做 'file1' 的文件'cp -a /tmp/dir1 . 复制一个目录到当前工作目录。cp dir/* . 复制一个目录下的所有文件到当前工作目录。mkdir dir1 创建一个叫做 'dir1' 的目录'rmdir dir1 删除一个叫做 'dir1' 的目录'

OKCRoss的博客 2172

全网Linux期末考题大全:助你轻松应对期末考试

全网Linux期末考题大全:助你轻松应对期末考试 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在Linux学习的过程中,期末考试往往是检验学习成果的关键时刻。为了帮助广大Linux学习者更好地备战期末考试,我们推出了“全网Linux期末考题大全”项目。该项目汇集了197道精心整理的Linux相关题目,涵盖了选择题、判断题、填空题、操作题以及编程题,内容全面且具有代表...

gitblog_06698的博客 536

这应该是全网最全 Linux 命令总结

基本命令uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件(SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本。

weixin_42340783的博客 1146

Linux命令详解,全网最详细,看这一篇就够了

Linux命令详解,全网最详细,附图文,看这一篇就够了。 包含内容:openssl,文件管理,搜索文件,账号相关,文件系统权限相关,日志相关,存储管理,基本网络枚举,网络连接,ssh服务,远程拷贝,scp,历史命令,history

2202_75361164的博客 1751
上一篇: 学习日志(二)【linux全部命令,http请求头{有例题},Php语法学习】
下一篇: 学习日志(三)【php语法学习,iscc校赛wp】
tryqaaa_
博客等级 码龄1年 11粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值