Linux 常用命令大全,整合全网|Linux 最全常用命令速查表,建议收藏备用

2020全网最全的软件测试linux面试题及参考答案,赶紧收藏! 一、前言: 2020非常全的软件测试linux面试题及参考答案 作为一名软件测试工程师,我相信大部分的人都和Linux打过交道,因为我们的服务器一般都是装的Linux操作系统,包括各种云服务器也都是用的Linux,目前主流是CentOS7,那么对于一个测试工程师来说,我们需要掌握哪些命令呢?我将我了解到的命令列举一下,仅供大家参考 二、Linux最最最常用的面试题及答案 2020非常全的软件测试linux面试题及参考答案 1、你之前在公司使用linux命令做什么? 我们公司之前测试系统搭建在linux上 阅读详情

Linux 常用命令大全


目录

  1. Linux 系统目录结构
  2. 终端命令格式
  3. 目录操作命令
  4. 文件操作命令
  5. 文件内容查看与编辑
  6. 文本处理三剑客
  7. 管道与重定向
  8. 压缩与解压缩
  9. 系统信息与进程管理
  10. 用户与权限管理
  11. 网络与远程管理
  12. 软件包管理
  13. 其他实用命令
  14. 系统日志
  15. Docker 容器常用命令
  16. Vim 编辑器详细使用指南
  17. C 语言代码编译
  18. 快速参考速查表

一、Linux 系统目录结构

Linux 采用树状目录结构,根目录为 /,所有文件和目录都从根目录出发:

/
├── bin -> usr/bin       # 存放二进制命令(ls、cp、mv等常用命令)
├── boot                 # 内核及引导系统程序所在目录
├── dev                  # 所有设备文件的目录(磁盘、光驱等)
├── etc                  # 配置文件默认路径、服务启动命令存放目录
├── home                 # 用户家目录(root用户的家目录为/root)
├── lib -> usr/lib       # 32位库文件存放目录
├── lib64 -> usr/lib64   # 64位库文件存放目录
├── media                # 媒体文件存放目录
├── mnt                  # 临时挂载设备目录
├── opt                  # 自定义软件安装存放目录
├── proc                 # 进程及内核信息存放目录(虚拟文件系统)
├── root                 # root用户家目录
├── run                  # 系统运行时产生临时文件的存放目录
├── sbin -> usr/sbin     # 系统管理命令存放目录(仅管理员使用)
├── srv                  # 服务启动后需要访问的数据目录
├── sys                  # 系统使用目录
├── tmp                  # 临时文件目录
├── usr                  # 系统命令和帮助文件目录
└── var                  # 存放内容易变文件的目录(日志、邮件等)

重要目录说明:

目录说明
/bin二进制执行文件,主要用于具体应用
/sbin系统管理员专用的二进制代码,主要用于系统管理
/usr/bin用户命令,后期安装的软件
/usr/sbin超级用户管理程序

二、终端命令格式

2.1 基本语法

command [-options] [parameter]
组成部分说明
command命令名,对应功能的英文单词或缩写
[-options]选项,用于控制命令行为,可省略
[parameter]传给命令的参数,可以是零个、一个或多个

2.2 查阅命令帮助

command --help     # 显示命令的帮助信息(简洁版)
man command        # 查阅命令的完整使用手册(manual)

man 手册操作键:

操作键功能
空格键向下翻页
b向上翻页
q退出
/关键词搜索关键词

2.3 实用快捷键

快捷键功能
Tab自动补全文件/目录/命令(非常常用!)
↑ / ↓ 方向键在历史命令间切换
Ctrl + C强制中断当前程序/命令
Ctrl + Z挂起当前任务(任务未结束,可用 fg/bg 恢复)
Ctrl + Shift + =放大终端窗口字体
Ctrl + -缩小终端窗口字体

三、目录操作命令

3.1 查看目录内容 —— ls

ls 是 list 的简写,列出目录内容

ls                 # 列出当前目录内容
ls -a              # 显示所有文件,包括隐藏文件(以.开头)
ls -l              # 以列表方式显示文件详细信息(可简写为 ll)
ls -lh             # 以列表方式显示,并以人性化方式显示文件大小
ls -al             # 组合:显示所有文件+详细信息
ll                 # 等同于 ls -l(很多发行版支持)

Linux 文件和目录特点:

  • 文件或目录名最长可有 256 个字符
  • 以 . 开头的文件为隐藏文件,需用 -a 参数显示
  • . 代表当前目录,.. 代表上一级目录
  • 所有目录和文件名大小写敏感

ls 通配符:

通配符含义
*代表任意个数个字符
?代表任意一个字符(至少1个)
[abc]匹配 a、b、c 中的任意一个
[a-f]匹配 a 到 f 范围内的任意一个字符

3.2 切换目录 —— cd

cd 是 change directory 的简写

pwd                # 查看当前工作目录(print work directory)
cd                 # 切换到当前用户主目录(/home/用户名)
cd ~               # 切换到当前用户主目录
cd /               # 切换到根目录
cd ..              # 切换到上一级目录
cd -               # 切换到上一次访问的目录(在两个目录间来回切换)
cd /usr/local      # 切换到指定绝对路径
cd ./aaa           # 切换到当前目录下的 aaa 目录(相对路径)

路径说明:

  • 相对路径:最前面不是 / 或 ~,相对于当前目录
  • 绝对路径:最前面是 / 或 ~,从根目录/家目录开始

3.3 创建目录 —— mkdir

mkdir aaa                    # 在当前目录下创建 aaa 目录
mkdir ./bbb                  # 同上(相对路径写法)
mkdir /ccc                   # 在根目录下创建 ccc 目录(绝对路径)
mkdir -p temp/nginx          # 递归创建多级目录(-p 选项)
mkdir {dirA,dirB}            # 批量创建多个目录

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


3.4 查看目录树 —— tree

tree               # 以树状图显示当前目录结构
tree -d            # 只显示目录,不显示文件
tree /usr/local    # 查看指定目录的树状结构
tree test01/       # 查看 test01 目录的树状结构

3.5 搜索文件/目录 —— find

find / -name 'b'             # 从根目录搜索名为 b 的目录和文件
find / -name 'b*'            # 从根目录搜索名以 b 开头的目录和文件
find . -name 'b'             # 从当前目录搜索名为 b 的目录和文件
find -name "*.py"            # 搜索当前目录下所有 .py 文件(含子目录)
find -name "*1*"             # 搜索文件名包含 1 的文件
find . -name '*.pyc' -exec rm -rf {} \;   # 递归删除所有 .pyc 文件
find . -name "*" -size 145800c -print      # 打印当前目录下指定大小的文件
find . -type f -name "*.log"               # 只搜索文件类型(不包括目录)

3.6 移动与重命名 —— mv

mv 原名称 新名称             # 重命名(当前目录内)
mv tomcat001 tomcat          # 将 tomcat001 重命名为 tomcat

mv /aaa /bbb                 # 将根目录下的 aaa 移动到 bbb 目录下
mv bbbb usr/bbb              # 移动并修改名称为 bbb
mv bbb usr/aaa               # 移动并修改名称为 aaa

-i 选项:覆盖文件前提示确认


3.7 复制目录 —— cp

cp -r /aaa /bbb              # 将 /aaa 目录复制到 /bbb 下(保持名称 aaa)
cp -r /aa /bbb/aaa           # 将 /aa 复制到 /bbb 下,名称改为 aaa
cp -i 源文件 目标文件         # 覆盖前提示

⚠️ 复制目录必须加 -r 选项(递归复制)


3.8 删除目录 —— rm / rmdir

rm -r /bbb                   # 删除 /bbb 目录(会逐一询问)
rm -rf /bbb                  # 强制删除 /bbb 目录(包含子目录,不提示)
rmdir test01                 # 删除空目录

⚠️ rm -rf 操作不可恢复,使用时务必谨慎!


3.9 软链接 —— ln

ln -s /usr/local/app /data   # 创建软链接(类似 Windows 快捷方式)
rm -rf /data                 # 删除软链接(路径末尾不加 /)

注意事项:

  • 没有 -s 建立的是硬链接,工作中几乎不用
  • 源文件路径建议使用绝对路径,避免移动链接后失效
  • Linux 中,只有文件硬链接数 == 0 时文件才会被删除

四、文件操作命令

4.1 创建文件 —— touch

touch testFile               # 创建新文件(文件不存在则创建)
touch dirA/{A1,A2,A3}        # 在 dirA 目录中批量创建 A1、A2、A3 三个文件

若文件已存在,则修改文件的末次修改时间(不改变内容)


4.2 删除文件 —— rm

rm -r a.java                 # 删除 a.java(每次询问)
rm -rf a.java                # 强制删除 a.java(不询问)
rm -rf ./a*                  # 强制删除当前目录下所有以 a 开头的文件
rm -rf ./*                   # 强制删除当前目录下所有文件(极度危险!)

4.3 文件拆分 —— split

split -b 10k date.file                     # 按大小分割(每份10KB,字母后缀)
split -b 10k date.file -d -a 3             # 使用数字后缀,长度为3位
split -b 10k date.file -d -a 3 split_file  # 指定输出文件名前缀
split -l 10 date.file                      # 按行数分割(每份10行)

split 参数说明:

参数说明
-b每个输出文件的大小(单位:byte,可用 k/m)
-l每个输出文件的行数
-d使用数字作为文件后缀
-a指定后缀长度(默认为2)

4.4 跨服务器文件复制 —— scp

# 将本机文件复制到目标服务器
scp /home/user/file.txt user@192.168.1.100:/home/user/

# 将远程服务器文件复制到本机
scp user@192.168.1.100:/home/user/file.txt /home/user/

# 复制目录(-r 选项)
scp -r demo user@192.168.1.100:Desktop

# 指定端口(-P 大写)
scp -P 2222 01.py user@remote:Desktop/01.py

scp 选项说明:

选项含义
-r递归复制目录
-P指定端口号(注意是大写 P)

五、文件内容查看与编辑

5.1 查看文件内容

cat a.java           # 查看文件全部内容(适合内容较少的文件)
cat -n a.java        # 查看文件内容,并对所有行编号
cat -b a.java        # 查看文件内容,只对非空行编号

more a.java          # 分屏显示(空格翻页,Enter翻行,q退出)
less a.java          # 分屏显示,支持上下翻页(PageUp/PageDown),q退出

head a.java          # 查看文件前10行
head -n 7 a.java     # 查看文件前7行

tail a.java          # 查看文件后10行
tail -n 7 a.java     # 查看文件后7行
tail -f a.java       # 实时查看文件末尾新增内容(常用于查看日志)

more 操作键详解:

操作键功能
空格键显示下一屏
Enter一次滚动一行
b回滚一屏
f前滚一屏
q退出
/word搜索 word 字符串

more 和 less 的区别:

对比项moreless
翻页方向只能向后可前后翻页
加载速度需读整个文件按需加载,更快
退出后显示内容残留在终端退出后清屏
上下键不支持支持

5.2 文件内搜索 —— grep

grep 是 Global Regular Expression Print 的缩写,强大的文本搜索工具

grep "start" test*               # 在 test 开头的文件中查找含 start 的行
grep under 123.txt               # 搜索 under 字符串(大小写敏感)
grep -n under 123.txt            # 搜索并显示行号
grep -v under 123.txt            # 显示不包含 under 的行(取反)
grep -i under 123.txt            # 搜索(忽略大小写)
grep -ni under 123.txt           # 忽略大小写,并显示行号
grep -A 1 -B 1 "https" wget-log  # 显示匹配行及其前1行(-B)、后1行(-A)
grep "^root" /etc/passwd         # 搜索以 root 开头的行
grep "bash$" /etc/passwd         # 搜索以 bash 结尾的行

grep 常用选项:

选项含义
-n显示匹配行及行号
-v显示不包含匹配文本的所有行(取反)
-i忽略大小写
-A N显示匹配行及其后 N 行
-B N显示匹配行及其前 N 行

5.3 重定向

echo 'Hello World' > /root/test.txt    # 覆盖写入(文件不存在则创建)
echo 'Hello World' >> /root/test.txt   # 追加写入
符号含义
>输出重定向,覆盖文件原有内容
>>输出重定向,追加到文件末尾

六、文本处理三剑客

6.1 awk —— 数据统计与处理

awk 功能强大,一次读取一行文本,按分隔符切片后处理

语法: awk [options] 'cmd' file

  • 切片保存在内建变量中:$1, $2, …($0 表示整行)
  • 默认分隔符为空格,-F 选项可指定分隔符
# 打印第1列和第3列
awk '{print $1,$3}' email.out

# 当第1列为tcp且第2列为1时,打印整行
awk '$1=="tcp" && $2==1 {print $0}' email.out

# 打印表头(NR==1表示第一行)
awk '($1=="tcp" && $2==1) || NR==1 {print $0}' email.out

# 以逗号为分隔符,打印第2列
awk -F "," '{print $2}' test.txt

# 统计各IP出现次数
awk '{count[$1]++} END {for(i in count) print i "\t" count[i]}' access.log

# 按逗号切分,将第一列追加到文件
awk -F "," '{print $1 >> "test01.txt"}' data.txt

6.2 sed —— 流编辑器(替换文件内容)

sed 全名 Stream Editor,适合对文本行内容进行批量处理,支持正则表达式

语法: sed [option] 'sed command' filename

sed 常用操作标记:

标记说明
g行内全部替换(不加则只替换首个)
p打印匹配行
d删除匹配行
w将匹配行写入文件
s替换操作
# 将以 Str 开头的替换为 String(^ 表示行首)
sed -i 's/^Str/String/' replace.java

# 将行末的 . 替换为 ;(需转义 .)
sed -i 's/\.$/\;/' replace.java

# 全文将 Jack 替换为 me(g 表示全部替换)
sed -i 's/Jack/me/g' replace.java

# 删除空行(^ *$ 匹配只有空格的行)
sed -i '/^ *$/d' replace.java

# 删除包含 Integer 的行
sed -i '/Integer/d' replace.java

# 多命令同时执行(用 ; 分隔)
grep 'input' 123.txt | sed 's/\"//g; s/,/\n/g'

# 替换后保存到新文件
sed -n 's/\"//gw test01.txt' 123.txt

6.3 cut —— 数据裁剪

从文件每一行中剪切字段并输出

语法: cut [选项] 文件名

选项功能
-f列号,提取第几列
-d分隔符(默认是制表符 \t)
# 以中文冒号分隔,提取第1列
cut -d ":" -f 1 cut.txt

# 以 : 分隔,提取 $PATH 的第3列
echo $PATH | cut -d ":" -f 3

# 以 : 分隔,提取第3列及之后所有列
echo $PATH | cut -d ":" -f 3-

七、管道与重定向

7.1 管道操作符 |

将前一个命令的标准输出作为后一个命令的输入

注意事项:

  • 只处理前一个命令的正确输出,不处理错误输出
  • 右边命令必须能够接收标准输入流
ls -l | more                         # 分屏显示 ls 结果
ls -l | grep ".py"                   # 在 ls 结果中查找 .py 文件

# 从日志中查询包含 error 的行
grep 'error' email.log

# 过滤 error 行中包含数字的部分
grep 'error' email.log | grep -o '\[0-9\]'

# 过滤包含 tomcat 的进程,排除当前 grep 进程
ps -ef | grep tomcat | grep -v grep

# 综合管道:提取、切分、替换、保存
grep 'input' 123.txt | awk -F ',' '{print $2}' | sed 's/\"//g' | awk -F ":" '{print $1 >> "test01.txt"}'

7.2 xargs —— 参数传递过滤器

将标准输入数据转换成命令行参数

# -n:每行输出指定数量
cat test.txt | xargs -n3

# -d:按指定字符分隔文本
echo "nameXnameXnameXname" | xargs -dX

# -I:命令替换(每个参数执行一次命令)
ls *.jpg | xargs -n1 -I {} cp {} /data/images/

# -t:将执行的命令也打印出来
ls * | xargs -t -n1 -I {} cp -r {} /root/backup/

# 组合使用:X分隔,每行2个
echo "nameXnameXnameXname" | xargs -dX -n2

八、压缩与解压缩

8.1 tar 打包命令

压缩打包(-c):

tar -cvf start.tar a.java b.java       # 将 a.java、b.java 打包
tar -cvf start.tar ./*                 # 将当前目录下所有文件打包
tar -zcvf start.tar.gz a.java b.java   # 打包并使用 gzip 压缩
tar -zcvf start.tar.gz ./*             # 将当前目录打包压缩为 .tar.gz
tar -jcvf start.tar.bz2 ./*           # 打包并使用 bzip2 压缩(.tar.bz2)

解压缩(-x):

tar -xvf start.tar                     # 解包到当前目录
tar -xvf start.tar -C /usr/local       # 解包到 /usr/local 目录
tar -zxvf start.tar.gz                 # 解压 .tar.gz 到当前目录
tar -zxvf start.tar.gz -C /usr/local   # 解压 .tar.gz 到指定目录
tar -jxvf start.tar.bz2               # 解压 .tar.bz2 到当前目录
tar xf node-v12.18.1-linux-x64.tar.xz # 解压 .tar.xz 文件

tar 选项说明:

选项含义
c创建打包文件
x解开打包文件
v显示详细进度
f指定档案文件名(必须放在选项最后)
-z调用 gzip 进行压缩/解压缩
-j调用 bzip2 进行压缩/解压缩
-C解压到指定目录(目录必须事先存在)

⚠️ f 选项必须放在选项列表的最后!


8.2 zip/unzip 命令

压缩(zip):

zip lib.zip tomcat.jar                         # 压缩单个文件
zip -r lib.zip lib/                            # 压缩整个目录
zip -r lib.zip file1.jar file2.jar             # 压缩多个文件

解压缩(unzip):

unzip file1.zip                                # 解压到当前目录
unzip -d /usr/app/ com.example.zip             # 解压到指定目录

九、系统信息与进程管理

9.1 时间与日期

date               # 查看系统当前时间
cal                # 查看本月日历
cal -y             # 查看本年日历

9.2 磁盘信息

df -h                       # 查看系统各分区磁盘使用情况(human-readable)
du -lh                      # 查看当前目录下各文件夹占用空间
du -sh                      # 查看当前文件夹总占用空间
du -h /usr/local            # 查看指定目录大小
du --max-depth=1            # 只查看当前目录下一级的占用情况

9.3 进程管理

ps aux                      # 查看所有进程详细状态
ps -ef | grep java          # 查看名称含 java 的进程
ps -ef | grep mysql         # 查看 MySQL 相关进程
ps -aux | grep 28990        # 根据 PID 查看进程信息

top                         # 动态实时查看进程资源占用(q 退出)

kill -9 2630                # 强制终止 PID 为 2630 的进程

ps 选项说明:

选项含义
a显示终端上的所有进程(包含其他用户)
u显示进程的详细状态
x显示没有控制终端的进程

9.4 top 命令详解

top    # 实时查看系统资源占用(按 q 退出)

统计信息区说明:

top - 15:33:39 up 5:40, 2 users, load average: 1.09, 1.04, 0.98
Tasks: 123 total,   3 running, 120 sleeping,   0 stopped,   0 zombie
%Cpu(s): 42.1 us,  2.0 sy,  0.0 ni, 49.2 id,  0.0 wa,  6.0 hi,  0.7 si
KiB Mem:  3780.9 total,  727.4 free,  668.8 used,  2384.7 buff/cache
KiB Swap: 2048.0 total,  2046.0 free,    2.0 used,   859.6 avail
字段说明
us用户空间占用 CPU 百分比
sy内核空间占用 CPU 百分比
id空闲 CPU 百分比
wa等待 I/O 的 CPU 时间百分比

进程信息区字段说明:

字段说明
PID进程 ID
USER进程所有者
PR优先级
NInice 值(负值=高优先级)
%CPUCPU 占用百分比
%MEM内存占用百分比
S进程状态(R=运行,S=睡眠,Z=僵尸)
COMMAND命令名

9.5 后台运行程序

nohup sh test.sh &                    # 后台运行,日志输出到 nohup.out
nohup sh test.sh >> test.out &        # 后台运行,日志输出到 test.out

9.6 关机与重启

shutdown -h now                        # 立即关机
shutdown -h 10:53                      # 在 10:53 关机
shutdown -h +10                        # 10分钟后自动关机
shutdown -r now                        # 立即重启
shutdown -r +30 '30 minutes to reboot' # 30分钟后重启并通知用户
shutdown -c                            # 取消之前的关机/重启计划
reboot                                 # 强制重启

十、用户与权限管理

10.1 文件权限说明

-rw-r--r-- 1 root root 34942 Jan 19 2018 bootstrap.jar
权限位说明:
- r: read(读取)  w: write(写入)  x: execute(执行)
- : 文件类型(-=普通文件,d=目录,l=软链接)

前3位:文件所有者的权限(user)
中3位:所属组其他用户的权限(group)
后3位:其他用户的权限(others)

示例:rw-r--r-- 表示
  所有者:可读、可写、不可执行
  同组用户:可读、不可写、不可执行
  其他用户:可读、不可写、不可执行

10.2 修改文件权限 —— chmod

# 符号方式
chmod u+x web.xml     # 给所有者(user)添加执行权限
chmod g+x web.xml     # 给所属组(group)添加执行权限
chmod o+x web.xml     # 给其他用户(others)添加执行权限
chmod a+x web.xml     # 给所有人添加执行权限

# 数字方式(r=4, w=2, x=1)
chmod 755 web.xml     # rwxr-xr-x(所有者全权限,其他只读执行)
chmod 644 web.xml     # rw-r--r--(所有者读写,其他只读)
chmod 777 web.xml     # rwxrwxrwx(所有人全权限,生产中慎用)
chmod 111 web.xml     # --x--x--x(所有人只有执行权限)
chmod -R 755 dir/     # 递归修改目录下所有文件权限

10.3 修改文件所有者 —— chown

chown sum file.txt                    # 将文件所有者改为 sum
chown sum:sum file.txt                # 同时改所有者和所属组为 sum
chown -R sum /usr/sum/               # 递归修改目录下所有文件的所有者
chown -R sum:sum /usr/sum/           # 递归修改所有者和所属组

10.4 用户管理

# 添加用户
useradd -d /usr/sum -m sum           # 创建用户 sum,家目录为 /usr/sum

# 设置用户密码
passwd sum

# 切换用户
su - sum                             # 切换到 sum 用户(并切换到其家目录)
su sum                               # 切换到 sum 用户(保持当前目录)
exit                                 # 退出当前登录,回到上一个用户

# 查看用户信息
id sum                               # 查看用户 UID 和 GID
who                                  # 查看当前所有登录用户
whoami                               # 查看当前登录用户账户名
cat /etc/passwd                      # 查看所有用户列表

# 修改用户信息
usermod 选项 用户名

# 删除用户
userdel sum                          # 删除用户
rm -rf /usr/sum                      # 删除用户家目录(需分开执行)

# 赋予 root 权限(sudo 权限)
visudo                               # 编辑 sudoers 文件
# 在文件中添加:sum ALL=(ALL) ALL
sudo -s                              # 使用 root 权限执行命令

10.5 组管理

groupadd groupname                   # 创建用户组
groupdel groupname                   # 删除用户组
groupmod -n newname oldname          # 将用户组改名
chgrp -R groupname dir/              # 递归修改目录所属组
cat /etc/group                       # 查看所有组的信息

十一、网络与远程管理

11.1 查看/配置网卡 —— ifconfig

ifconfig                             # 查看所有网卡配置信息
ifconfig | grep inet                 # 只显示 IP 地址
  • Linux 物理网卡名通常以 ensXX 表示
  • 127.0.0.1 是本地回环地址,用于测试本机网卡

11.2 网络连通性检测 —— ping

ping 192.168.1.100                   # 持续 ping 目标 IP
ping -c 4 www.example.com            # 发送4个 ping 包后停止
ping 127.0.0.1                       # 检测本机网卡是否正常

11.3 端口与连接检测

telnet 49.32.587.164 8093            # 检查目标服务器指定端口是否可用
lsof -i:8080                         # 查看占用 8080 端口的进程
netstat -tunlp | grep 8080           # 查看指定端口的进程信息
netstat -tunlp                       # 显示所有 tcp/udp 端口和进程情况
netstat -lt                          # 列出所有处于监听状态的 tcp 端口
netstat -an                          # 查看当前系统的 IP 连接(全平台通用)

查看连接状态数量:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

11.4 远程登录 —— ssh

ssh user@192.168.1.100               # 使用默认 22 端口登录
ssh -p 2222 user@192.168.1.100       # 指定端口号登录
exit                                 # 退出 SSH 会话
参数说明
user远程机器上的用户名
remote远程机器的 IP 或域名
-p port指定端口号(默认22)

11.5 curl 命令

# GET 请求
curl "http://www.example.com"

# POST 请求(表单格式)
curl -d 'login=admin&password=123' -X POST https://example.com/login

# POST 请求(JSON 格式)
curl -l -H "Content-type: application/json" \
     -X POST \
     -d '{"phone":"13800138000","password":"test"}' \
     http://example.com/api/users

11.6 添加 Hosts

vim /etc/hosts                       # 编辑 hosts 文件
# 添加一行:49.235.32.164 www.example.com
/etc/init.d/network restart          # 保存后重启网络生效

11.7 防火墙管理

service iptables status              # 查看防火墙状态
service iptables stop                # 临时关闭防火墙
chkconfig iptables off               # 设置防火墙开机不启动

十二、软件包管理

12.1 yum(CentOS/RedHat)

yum install iptables-services        # 安装软件包
yum list                             # 列出当前已安装的所有包
yum search package_name              # 在仓库中搜索软件包
yum update package_name              # 更新指定软件包
yum remove package_name              # 删除软件包
yum clean all                        # 清除所有缓存

# 安装文件传输工具(上传下载)
yum install -y lrzsz
rz                                   # 上传文件到服务器
sz filename                          # 从服务器下载文件

12.2 apt(Ubuntu/Debian)

sudo apt install 软件包名             # 安装软件
sudo apt remove 软件名               # 卸载软件
sudo apt upgrade                     # 更新所有已安装的包
sudo apt update                      # 更新软件包列表

十三、其他实用命令

13.1 历史命令

history                              # 查看历史使用过的命令
history | grep es                    # 过滤与 es 相关的历史命令

13.2 查看系统信息

cat /etc/redhat-release              # 查看操作系统版本(RedHat/CentOS)
cat /etc/shells                      # 查看系统支持的 shell 列表
echo $USER                           # 输出当前用户名
echo $PATH                           # 输出系统路径变量
set                                  # 输出所有环境变量
which ls                             # 查看命令所在的位置(如 /bin/ls)
which useradd                        # 查看命令路径(如 /usr/sbin/useradd)

13.3 定时任务

crontab -e                           # 打开/编辑定时任务文件
# 示例:每天 0 点执行脚本
0 0 * * * /data/shell/bin/del-30-days-ago-log.sh

crontab 时间格式:

分 时 日 月 周   命令
*  *  *  *  *   /path/to/script.sh

13.4 Linux 内核参数优化

vim /etc/sysctl.conf                 # 编辑内核参数配置文件
sysctl -p                            # 重新加载配置(不重启生效)

十四、系统日志

常用系统日志文件位置(以 RedHat/CentOS 为例):

/var/log/messages      # 系统启动后的信息和错误日志(最常用)
/var/log/secure        # 安全相关的日志信息
/var/log/maillog       # 邮件相关的日志信息
/var/log/cron          # 定时任务相关的日志
/var/log/spooler       # UUCP 和 news 设备相关的日志
/var/log/boot.log      # 守护进程启动和停止的日志

# 查看操作历史
cat .bash_history      # 查看当前用户的命令历史记录

十五、Docker 容器常用命令

# 搜索镜像
docker search mysql

# 查看已下载的镜像
docker images

# 下载并运行容器
docker run -di --name=mycontainer -p 3306:3306 \
           -e MYSQL_ROOT_PASSWORD=root <镜像ID>

# 查看运行中的容器
docker ps

# 查看所有容器(包括未运行的)
docker ps -a

# 停止/启动/重启容器
docker stop mycontainer
docker start mycontainer
docker restart mycontainer

# 删除容器
docker rm mycontainer

十六、Vim 编辑器详细使用指南

16.1 Vim 简介

vim 是 Linux 系统上最常用的文本编辑器,功能强大。它有三种主要工作模式:

┌─────────────────────────────────────────────────┐
│                  Vim 三种模式                    │
│                                                 │
│   普通模式 ──i/a/o──→ 插入模式                  │
│      ↑                    │                     │
│      └─────── ESC ────────┘                     │
│      │                                          │
│      └──── : ────→ 命令行模式 ──→ 执行后回普通   │
└─────────────────────────────────────────────────┘

16.2 打开文件

vim filename.txt         # 打开文件(不存在则创建新文件)
vim +3 filename.txt      # 打开文件并跳转到第3行
vim +/keyword file.txt   # 打开文件并定位到第一个关键词处
vi filename.txt          # vi 是 vim 的精简版

16.3 三种模式详解

模式一:普通模式(Normal Mode)

打开文件后默认进入普通模式,不能直接输入文字,主要用于移动光标、复制、删除、搜索等操作。

光标移动:

按键功能
h向左移动一个字符
l向右移动一个字符
j向下移动一行
k向上移动一行
w跳到下一个单词开头
b跳到上一个单词开头
0跳到行首
$跳到行尾
gg跳到文件开头(第一行)
G跳到文件末尾(最后一行)
nG 或 :n跳到第 n 行
Ctrl+f向下翻页
Ctrl+b向上翻页

复制、粘贴、删除:

按键功能
yy复制当前行
nyy复制当前行起的 n 行(如 3yy)
p在当前行下方粘贴
P在当前行上方粘贴
dd删除(剪切)当前行
ndd删除(剪切)当前行起的 n 行
x删除光标所在字符
dw删除一个单词
D删除从光标到行尾
u撤销上一步操作(undo)
Ctrl+r重做(redo)

搜索:

按键功能
/keyword向下搜索 keyword
?keyword向上搜索 keyword
n跳到下一个匹配项
N跳到上一个匹配项

模式二:插入模式(Insert Mode)

在普通模式下按以下键进入插入模式(开始输入文字):

按键进入位置
i在光标前插入
a在光标后插入
I在行首插入
A在行尾插入
o在当前行下方新建一行并插入
O在当前行上方新建一行并插入

按 ESC 键退出插入模式,返回普通模式


模式三:命令行模式(Command-Line Mode)

在普通模式下按 : 进入命令行模式(屏幕底部出现 : 提示符):

文件保存与退出:

命令功能
:w保存文件(不退出)
:q退出(文件无修改时有效)
:wq保存并退出
:wq!强制保存并退出
:q!强制退出(放弃所有修改)
:x保存并退出(等同于 :wq)
:w filename另存为指定文件名

文本替换:

命令功能
:s/old/new替换当前行第一个匹配
:s/old/new/g替换当前行所有匹配
:%s/old/new/g替换整个文件所有匹配
:1,5s/old/new/g替换第1到第5行所有匹配

行号与跳转:

命令功能
:set nu显示行号
:set nonu隐藏行号
:n跳转到第 n 行(如 :10 跳到第10行)

其他命令:

命令功能
:!command在不退出 vim 的情况下执行 shell 命令
:r filename将指定文件内容插入当前光标位置
:e filename在 vim 中打开另一个文件

16.4 Vim 快速参考总结

打开文件:vim file.txt
         ↓
    普通模式(默认)
         ↓ i / a / o
    插入模式(输入文字)
         ↓ ESC
    返回普通模式
         ↓ :
    命令行模式(保存/退出)
    :wq 保存退出 | :q! 不保存退出

16.5 Vim 常用操作速记

# 快速编辑文件并保存退出
vim file.txt    # 打开
i               # 进入插入模式
# ... 输入内容 ...
ESC             # 退出插入模式
:wq             # 保存退出

# 只读查看文件
vim -R file.txt # 只读模式打开
:q              # 查看后退出

# 快速替换文本
vim file.txt
:%s/Jack/Tom/g  # 全文替换 Jack 为 Tom
:wq             # 保存退出

十七、C 语言代码编译

17.1 GCC 编译器基础

GCC(GNU Compiler Collection)是 Linux 下最常用的 C/C++ 编译器。

# 安装 GCC(CentOS/RedHat)
yum install -y gcc

# 安装 GCC(Ubuntu/Debian)
sudo apt install gcc

# 查看 GCC 版本
gcc --version

17.2 C 语言编译基本流程

源代码(.c)→ 预处理(.i)→ 编译(.s)→ 汇编(.o)→ 链接 → 可执行文件

17.3 GCC 常用编译命令

最简单的编译(一步到位)
gcc hello.c -o hello       # 编译 hello.c,生成可执行文件 hello
./hello                    # 运行程序
分步编译(了解各阶段)
# 第一步:预处理(展开宏定义和头文件,生成 .i 文件)
gcc -E hello.c -o hello.i

# 第二步:编译(生成汇编代码 .s 文件)
gcc -S hello.i -o hello.s

# 第三步:汇编(生成目标文件 .o 文件)
gcc -c hello.s -o hello.o

# 第四步:链接(生成最终可执行文件)
gcc hello.o -o hello
常用编译选项
# 开启所有警告(推荐初学者使用,帮助发现潜在问题)
gcc -Wall hello.c -o hello

# 开启调试信息(用于 GDB 调试)
gcc -g hello.c -o hello

# 指定 C 语言标准
gcc -std=c99 hello.c -o hello      # 使用 C99 标准
gcc -std=c11 hello.c -o hello      # 使用 C11 标准

# 开启优化
gcc -O1 hello.c -o hello           # 1级优化
gcc -O2 hello.c -o hello           # 2级优化(常用)
gcc -O3 hello.c -o hello           # 3级优化

# 链接数学库(使用 math.h 时需要)
gcc hello.c -o hello -lm

# 同时指定多个源文件
gcc main.c utils.c -o program

# 指定头文件搜索路径
gcc -I /usr/local/include hello.c -o hello

# 指定库文件搜索路径
gcc hello.c -L /usr/local/lib -lmylib -o hello

17.4 完整示例

1. 编写第一个 C 程序:

vim hello.c     # 创建并编辑源文件

在 vim 中输入以下内容:

#include <stdio.h>

int main() {
    printf("Hello, Linux!\n");
    return 0;
}

2. 编译并运行:

gcc hello.c -o hello      # 编译
./hello                   # 运行
# 输出:Hello, Linux!

17.5 多文件项目编译

目录结构示例:

project/
├── main.c
├── add.c
├── add.h
└── Makefile

手动编译多文件:

# 分别编译各源文件为目标文件
gcc -c main.c -o main.o
gcc -c add.c -o add.o

# 链接所有目标文件
gcc main.o add.o -o project

# 运行
./project

一步编译多文件:

gcc main.c add.c -o project

17.6 使用 Makefile 管理编译

Makefile 可以自动化编译过程,避免每次手动输入编译命令

基本 Makefile 示例(Makefile 文件):

# 目标文件名
TARGET = project

# C 编译器
CC = gcc

# 编译选项
CFLAGS = -Wall -g

# 源文件列表
SRCS = main.c add.c

# 目标文件列表(.c 替换为 .o)
OBJS = $(SRCS:.c=.o)

# 默认目标:生成可执行文件
$(TARGET): $(OBJS)
	$(CC) $(OBJS) -o $(TARGET)

# 编译每个 .c 文件为 .o 文件
%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

# 清理编译产生的文件
clean:
	rm -f $(OBJS) $(TARGET)

Makefile 使用命令:

make              # 编译项目
make clean        # 清理编译产生的中间文件和可执行文件
make -j4          # 使用4个并行任务加速编译

17.7 GDB 调试基础

GDB(GNU Debugger)是 Linux 下的 C/C++ 调试工具

# 编译时必须加 -g 选项才能调试
gcc -g hello.c -o hello

# 启动 GDB 调试
gdb ./hello

GDB 常用命令:

命令简写说明
runr运行程序
break 行号b在指定行设置断点
break 函数名b在函数入口设置断点
nextn执行下一行(不进入函数)
steps执行下一行(进入函数内部)
print 变量名p打印变量的值
continuec继续运行到下一个断点
listl显示源代码
quitq退出 GDB
backtracebt显示调用栈
info locals—显示局部变量

GDB 调试示例:

gdb ./hello
(gdb) break main          # 在 main 函数设置断点
(gdb) run                 # 开始运行
(gdb) next                # 执行下一行
(gdb) print i             # 打印变量 i 的值
(gdb) continue            # 继续运行
(gdb) quit                # 退出

17.8 常见编译错误解决

错误信息可能原因解决方法
No such file or directory头文件路径不对检查 #include 路径或加 -I 参数
undefined reference to 'xxx'链接时找不到函数检查是否缺少库,加 -l 参数
implicit declaration of function未声明函数就使用添加对应头文件或前向声明
expected ';' before '}'语法错误(缺分号)检查报错行及其上一行
segmentation fault访问非法内存(段错误)使用 GDB 调试,检查指针
warning: unused variable声明了变量但未使用删除未使用的变量

十八、快速参考速查表

目录与文件操作

分类命令说明
目录导航pwd查看当前目录
cd ~ / cd .. / cd -切换到家目录/上级/上次目录
ll / ls -alh查看目录内容(含隐藏文件/详细信息)
tree以树状图显示目录结构
目录操作mkdir -p dir/sub递归创建目录
rmdir dir删除空目录
rm -rf dir强制删除目录(含所有内容)
文件操作touch file创建文件
cp -r src dst递归复制
mv src dst移动或重命名
find -name "*.c"按名称查找文件
ln -s src link创建软链接

文件内容处理

分类命令说明
查看内容cat -n file带行号查看
more / less分屏查看
head -n 10 / tail -n 10查看前/后N行
tail -f logfile实时查看日志
文本搜索grep -n pattern file显示匹配行及行号
grep -v pattern file显示不匹配的行
grep -i pattern file忽略大小写搜索
文本处理awk '{print $1}' file打印第1列
sed 's/old/new/g' file全文替换
cut -d "," -f 1 file按分隔符提取列
重定向cmd > file覆盖输出到文件
cmd >> file追加输出到文件
管道cmd1 | cmd2将cmd1输出作为cmd2输入

压缩解压

命令说明
tar -zcvf out.tar.gz dir/gzip 压缩目录
tar -zxvf file.tar.gz解压 .tar.gz
tar -zxvf file.tar.gz -C /dest解压到指定目录
zip -r out.zip dir/zip 压缩目录
unzip file.zip -d /dest解压 zip 到指定目录

系统与进程

命令说明
ps aux查看所有进程
top动态查看进程(q退出)
kill -9 PID强制终止进程
df -h查看磁盘空间
du -sh dir/查看目录大小
shutdown -r now立即重启
shutdown now立即关机
date查看系统时间

用户与权限

命令说明
chmod 755 file修改文件权限
chown user:group file修改文件所有者和组
su - username切换用户
sudo command以管理员权限执行
useradd username创建用户
passwd username设置密码
groupadd groupname创建用户组

网络与远程

命令说明
ifconfig查看网卡信息
ping ip检测网络连通性
ssh user@host远程登录
scp file user@host:path远程复制文件
netstat -tunlp查看端口占用
lsof -i:8080查看指定端口
curl url发送 HTTP 请求

Vim 常用操作

操作命令
打开文件vim file.txt
进入插入模式i(光标前)/ a(光标后)/ o(下行新增)
退出插入模式ESC
保存退出:wq
不保存退出:q!
全文替换:%s/old/new/g
搜索/keyword(向下)/ ?keyword(向上)
复制行yy / nyy(复制n行)
删除行dd / ndd(删除n行)
撤销u

C 语言编译常用命令

命令说明
gcc hello.c -o hello编译C程序
gcc -Wall hello.c -o hello编译并显示所有警告
gcc -g hello.c -o hello编译并加入调试信息
gcc -std=c99 hello.c -o hello使用C99标准编译
./hello运行可执行文件
make使用Makefile编译项目
make clean清理编译产物
gdb ./hello启动GDB调试

📝 学习建议:

  1. 多练习常用命令,熟能生巧
  2. 遇到不熟悉的命令,先用 man 命令名 或 命令 --help 查阅文档
  3. Vim 的使用需要刻意练习,建议每天使用 vim 编辑文件
  4. C 语言编译建议从单文件开始,逐步过渡到 Makefile 管理多文件项目
  5. 在实验环境中大胆尝试各种命令,积累经验

Linux 常用命令大全

整合自多篇优质博文,涵盖 Linux 日常操作、C 语言编译与 Vim 编辑器使用。


目录


一、Linux 系统目录结构

├── bin -> usr/bin       # 二进制可执行文件
├── boot                 # 启动相关文件
├── dev                  # 设备文件
├── etc                  # 系统配置文件
├── home                 # 普通用户家目录
├── lib -> usr/lib       # 库文件
├── lib64 -> usr/lib64   # 64位库文件
├── media                # 挂载媒体设备
├── mnt                  # 临时挂载点
├── opt                  # 第三方软件安装目录
├── proc                 # 进程及内核信息(虚拟文件系统)
├── root                 # root 用户家目录
├── run                  # 运行时数据
├── sbin -> usr/sbin     # 系统管理命令
├── srv                  # 服务数据
├── sys                  # 内核设备信息
├── tmp                  # 临时文件
├── usr                  # 用户程序和数据
└── var                  # 可变数据(日志、缓存等)

二、终端命令格式与帮助

命令格式

command [-options] [parameter]
  • command:命令名
  • [-options]:选项,可选
  • parameter:参数,可选

查阅帮助

# --help 查看简要帮助
ls --help

# man 查看详细手册
man ls

# man 中的操作键
# 空格:下一页    Enter:下一行    b:回滚一屏
# f:前滚一屏     q:退出         /word:搜索

三、目录操作

基本操作

pwd                 # 查看当前工作目录
clear               # 清除屏幕
cd ~                # 切换到当前用户目录
cd /                # 切换到根目录
cd -                # 切换到上一次访问的目录
cd ..               # 切换到上一级目录

查看目录内容

ls                  # 查看当前目录内容(list)
ll                  # 以列表方式查看(ls -l 的别名)
ls -a               # 显示所有文件,包括隐藏文件
ls -l               # 以列表方式显示文件详细信息
ls -lh              # 人性化显示文件大小
ls -R               # 递归显示子目录

# 通配符使用
ls *.txt            # 所有 .txt 文件
ls test?            # test 后跟任意一个字符
ls [abc]*           # 以 a/b/c 开头的文件

创建与删除目录

mkdir aaa                     # 创建 aaa 目录
mkdir ./bbb                   # 在当前目录下创建 bbb
mkdir /ccc                    # 在根目录下创建 ccc
mkdir -p temp/nginx           # 递归创建目录

# 批量创建
mkdir {dirA,dirB}             # 同时创建 dirA 和 dirB
mkdir dir{1..5}               # 创建 dir1 到 dir5

# 删除目录
rmdir test01                  # 删除空目录
rm -r test01                  # 删除目录(会询问)
rm -rf test01                 # 强制删除目录(不询问,慎用)

查找目录与文件

find / -name 'b'              # 在根目录下查找名为 b 的文件/目录
find / -name 'b*'             # 查找以 b 开头的文件/目录
find . -name '*.txt'          # 在当前目录查找 .txt 文件
find . -name '*.pyc' -exec rm -rf {} \;   # 查找并递归删除 .pyc 文件
find . -name "*" -size 145800c -print     # 查找指定大小的文件

复制与移动

# 复制
cp -r /aaa /bbb               # 复制目录 aaa 到 bbb
cp -r /aa /bbb/aaa            # 复制并重命名
cp -i 源文件 目标文件           # 覆盖前提示

# 移动(也用于重命名)
mv 源文件 目标文件              # 移动文件/目录
mv oldname newname            # 重命名
mv /aaa /bbb                  # 将 aaa 移动到 bbb 目录下

查看目录树

tree                           # 树状图显示目录结构
tree -L 2                      # 限制显示层级为 2

四、文件操作

创建与删除

touch testFile                  # 创建空文件(或更新文件时间)
touch dirA/{A1,A2,A3}          # 批量创建文件

rm a.java                       # 删除文件(会询问)
rm -f a.java                    # 强制删除文件
rm -rf ./a*                     # 强制删除以 a 开头的所有文件
rm -rf ./*                      # 强制删除当前目录所有文件(慎用!)

软链接与硬链接

# 创建软链接(类似 Windows 快捷方式)
ln -s /usr/local/app /data

# 删除软链接(注意:最后不要加 /)
rm -rf /data

# 创建硬链接(不常用)
ln 源文件 链接文件

# 区别:软链接是快捷方式,硬链接是文件的另一个入口
# 硬链接数 = 0 时文件才被真正删除

拆分文件

# 按大小拆分(10KB)
split -b 10k date.file

# 使用数字后缀
split -b 10k -d date.file

# 指定前缀
split -b 10k date.file split_file

# 按行数拆分(每10行)
split -l 10 date.file

五、文件内容查看与处理

查看文件内容

cat a.java              # 查看文件全部内容(适合小文件)
cat -n a.java           # 显示行号
cat -b a.java           # 对非空行编号

more a.java             # 分页查看(只能向下翻)
less a.java             # 分页查看(可上下翻页,推荐)

# more 与 less 的区别:
# 1. less 支持上下方向键翻页,more 不支持
# 2. less 加载速度更快
# 3. less 退出后不残留内容,more 会残留
# 4. more 不能后退

head a.java             # 查看前10行
head -n 7 a.java        # 查看前7行
tail a.java             # 查看后10行
tail -n 7 a.java        # 查看后7行
tail -f a.java          # 实时查看文件末尾(常用于查看日志)

重定向与管道

# 重定向(覆盖写入)
echo 'Hello World' > /root/test.txt
ls -l > file_list.txt

# 重定向(追加写入)
echo 'Another line' >> /root/test.txt

# 管道(前一个命令的输出作为后一个命令的输入)
ps -ef | grep java
cat /etc/passwd | grep 'root'
find ~ | grep "test"

六、文本处理三剑客(grep / awk / sed)

grep(文本搜索)

grep [options] pattern file

grep under 123.txt            # 搜索包含 under 的行
grep -n under 123.txt         # 显示行号
grep -v under 123.txt         # 反向搜索(不包含 under 的行)
grep -i under 123.txt         # 忽略大小写
grep -ni under 123.txt        # 组合:行号 + 忽略大小写
grep "start" test*            # 在 test 开头的文件中搜索
grep -A 1 -B 1 "https" file   # 显示匹配行的前1行和后1行

# 正则模式
grep '^a' file                # 以 a 开头的行
grep 'ke$' file               # 以 ke 结尾的行

awk(数据统计与处理)

awk [options] 'cmd' file

# 基本用法:$0 整行,$1 第一列,$2 第二列...
awk '{print $1,$3}' file            # 打印第1列和第3列
awk -F "," '{print $2}' test.txt   # 以逗号分隔,打印第2列

# 条件筛选
awk '$1=="tcp" && $2==1{print $0}' file      # 条件匹配
awk '($1=="tcp")|| NR==1 {print $0}' file    # 包含表头

# 统计
awk '{count[$1]++} END {for(i in count) print i "\t" count[i]}' file

# 输出到文件
awk -F "," '{print $1 >> "test01.txt"}' file

sed(流编辑器,替换/删除文本)

sed [option] 'sed command' filename

# 替换(s/原内容/新内容/)
sed -i 's/^Str/String/' replace.java       # 替换行首 Str 为 String
sed -i 's/\.$/;/' file                     # 将末尾 . 替换为 ;
sed -i 's/Jack/me/g' replace.java          # 全局替换 Jack 为 me

# 删除
sed -i '/^ *$/d' replace.java              # 删除空行
sed -i '/Integer/d' replace.java           # 删除包含 Integer 的行

# 多命令
grep 'input' 123.txt | sed 's/"//g; s/,/\n/g'

# 替换后存入文件
sed -n 's/"//gw test01.txt' file

cut(数据裁剪)

cut -f 列号 -d 分隔符 file

cut -f 1 -d ':' /etc/passwd          # 以 : 分隔,取第1列
cat /etc/passwd | cut -d ':' -f 1,3  # 取第1列和第3列

xargs(参数传递)

cat test.txt | xargs -n3                    # 每行输出3个字段
echo "nameXnameXnameXname" | xargs -dX      # 按 X 分隔
ls *.jpg | xargs -n1 -I {} cp {} /data/images  # 批量复制

七、压缩与解压缩

tar(打包/压缩)

# 打包
tar -cvf start.tar a.java b.java          # 打包指定文件
tar -cvf start.tar ./*                    # 打包当前目录所有文件

# 解包
tar -xvf start.tar                        # 解包到当前目录
tar -xvf start.tar -C /usr/local          # 解包到指定目录

# 压缩(gzip,.tar.gz)
tar -zcvf start.tar.gz a.java b.java      # 打包并压缩
tar -zxvf start.tar.gz                    # 解压到当前目录
tar -zxvf start.tar.gz -C /usr/local      # 解压到指定目录

# 压缩(bzip2,.tar.bz2)
tar -jcvf start.tar.bz2 a.java            # 打包并压缩
tar -jxvf start.tar.bz2                   # 解压

# 解压 .tar.xz
tar -xf node-v12.18.1-linux-x64.tar.xz

tar 选项说明:

选项含义
c创建打包文件
x解开打包文件
v显示详细过程
f指定档案文件名(必须放最后)
z调用 gzip 压缩/解压
j调用 bzip2 压缩/解压
C解压到指定目录

zip / unzip

# 压缩
zip lib.zip tomcat.jar                    # 压缩单个文件
zip -r lib.zip lib/                       # 压缩目录
zip -r lib.zip a.jar b.jar                # 压缩多个文件

# 解压
unzip file1.zip                           # 解压
unzip -d /usr/app/ file.zip               # 解压到指定目录

八、文件权限管理

权限说明

-rw-r--r-- 1 root root  34942 Jan 19  2018 bootstrap.jar
| |  |  |
| |  |  └── 其他用户权限:r--(只读)
| |  └──── 组用户权限:r--(只读)
| └─────── 文件所有者权限:rw-(读写)
└────────── 文件类型:- 文件 / d 目录 / l 链接

r = Read(4), w = Write(2), x = eXecute(1)

修改权限

# 字母方式
chmod u+x web.xml           # 所有者添加执行权限
chmod g+x web.xml           # 所属组添加执行权限
chmod o+x web.xml           # 其他用户添加执行权限
chmod u-w web.xml           # 所有者移除写入权限

# 数字方式
chmod 755 file              # rwxr-xr-x(所有者全权限,其他只读执行)
chmod 644 file              # rw-r--r--(所有者读写,其他只读)
chmod 777 file              # rwxrwxrwx(所有人全权限,不安全)

# 递归修改
chmod -R 755 dir/

修改所有者

chown 用户名 文件名                    # 修改文件所有者
chown 用户名:组名 文件名               # 同时修改所有者和组
chown -R 用户名:组名 目录/             # 递归修改

九、用户与组管理

用户操作

# 添加用户
useradd -d /home/sum -m sum            # 创建用户并指定家目录
useradd -u 1001 -g group1 sum          # 指定 UID 和默认组

# 设置密码
passwd sum

# 切换用户
su sum                                 # 切换到 sum 用户
su - sum                               # 切换用户并切换到家目录
exit                                   # 退出当前用户

# 查看用户信息
id sum                                 # 查看 UID 和 GID
who                                    # 查看当前登录用户
whoami                                 # 查看当前用户名
cat /etc/passwd                        # 查看所有用户信息

# 修改用户
usermod -g 组名 用户名                  # 修改用户默认组
usermod -d /new/home 用户名             # 修改用户家目录

# 删除用户
userdel sum                            # 删除用户(保留家目录)
userdel -r sum                         # 删除用户及家目录

组操作

cat /etc/group                         # 查看所有组信息

groupadd groupname                     # 添加组
groupmod -n newname oldname            # 修改组名
groupdel groupname                     # 删除组

sudo 权限

# 编辑 sudoers 文件
visudo

# 添加如下行(给用户 root 权限)
# sum    ALL=(ALL)    ALL

# 使用 sudo 执行命令
sudo 命令
sudo -s                    # 切换到 root 用户

十、系统信息与进程管理

系统信息

date                                # 查看系统日期时间
date "+%Y-%m-%d %H:%M:%S"          # 格式化输出
cal                                 # 查看当月日历
cal -y                              # 查看全年日历
cat /etc/redhat-release             # 查看系统版本
uname -a                            # 查看内核版本

# 磁盘信息
df -h                               # 查看磁盘剩余空间
du -sh                              # 查看当前目录占用空间
du -lh                              # 查看各文件夹占用空间
du --max-depth=1                    # 只查看当前目录下文件占用空间

# 环境变量
echo $PATH                          # 查看 PATH 变量
echo $USER                          # 输出某个变量
set                                 # 输出所有变量

进程管理

ps aux                              # 查看所有进程详情
ps -ef | grep java                  # 查看 java 相关进程
top                                 # 实时动态显示进程(按 q 退出)

# 结束进程
kill PID                            # 终止指定进程
kill -9 PID                         # 强制终止进程

# 后台运行
nohup sh test.sh &                  # 后台运行,日志输出到 nohup.out
nohup sh test.sh >> test.out &     # 后台运行,指定日志文件

# Ctrl+Z vs Ctrl+C
# Ctrl+Z:挂起进程(可用 fg 恢复前台,bg 转到后台)
# Ctrl+C:强制中断进程

十一、网络相关命令

基本网络命令

# 网卡信息
ifconfig                            # 查看网卡配置(新版可用 ip addr)
ifconfig | grep inet                # 查看 IP 地址
ip addr                             # 新版命令

# 网络连通性
ping 127.0.0.1                      # 测试本机网卡
ping -c 4 www.example.com           # 发送 4 个包后停止

# 端口与连接
netstat -an                         # 查看所有连接
netstat -tunlp                      # 查看 TCP/UDP 端口及进程
netstat -tunlp | grep 8080          # 查看指定端口占用
lsof -i:8080                        # 查看端口被哪个进程占用

# 查看连接状态统计
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

# telnet 测试端口
telnet IP 端口                       # 测试远程端口是否可达

SSH 远程登录

# 远程登录
ssh user@remote                      # 默认端口22
ssh -p 2222 user@remote              # 指定端口

# 远程复制(scp)
scp local.file user@remote:/path/    # 本地上传到远程
scp user@remote:/path/file ./        # 远程下载到本地
scp -r dir/ user@remote:/path/       # 复制目录
scp -P 2222 file user@remote:/path/  # 指定端口(大写 P)

# 退出
exit

十二、关机重启与计划任务

关机重启

shutdown -h now                # 立即关机
shutdown -h 20:25              # 定时关机
shutdown -h +10                # 10分钟后关机
shutdown -r now                # 立即重启
shutdown -r +30 '提示信息'     # 30分钟后重启并通知用户
shutdown -c                    # 取消关机计划
reboot                         # 强制重启

计划任务(crontab)

crontab -e                     # 编辑计划任务
crontab -l                     # 查看计划任务

# 格式:分 时 日 月 周 命令
# 示例:
0 0 * * * /data/shell/del-log.sh          # 每天0点执行
0 8 * * 1 /data/shell/backup.sh           # 每周一8点执行
*/30 * * * * /data/shell/check.sh          # 每30分钟执行

服务管理

# systemd(新版本)
systemctl start 服务名         # 启动服务
systemctl stop 服务名          # 停止服务
systemctl restart 服务名       # 重启服务
systemctl status 服务名        # 查看服务状态
systemctl enable 服务名        # 设置开机启动
systemctl disable 服务名       # 取消开机启动

# service(旧版本)
service 服务名 start
service 服务名 stop
service 服务名 status

十三、软件安装(yum / apt)

yum(CentOS / RHEL)

yum install package_name           # 安装软件包
yum remove package_name            # 卸载软件包
yum update package_name            # 更新软件包
yum list                           # 列出已安装的包
yum search package_name            # 搜索软件包
yum clean all                      # 清理缓存

apt(Ubuntu / Debian)

sudo apt install package_name      # 安装软件包
sudo apt remove package_name       # 卸载软件包
sudo apt upgrade                   # 更新已安装的包
sudo apt update                    # 更新软件源
apt search package_name            # 搜索软件包

源码下载

wget https://example.com/file.zip   # 下载文件

十四、Shell 脚本基础

脚本结构

#!/bin/bash                        # 指定解析器
# 这是注释
echo "Hello World"

变量与输出

name="John"
echo $name
echo "My name is ${name}"

# 命令执行结果赋值
current_date=$(date)
file_count=$(ls | wc -l)

条件判断

if [ condition ]; then
    # 条件成立时执行
elif [ condition ]; then
    # 另一个条件
else
    # 条件不成立时执行
fi

# 常用条件
[ -f file ]      # 文件是否存在
[ -d dir ]       # 目录是否存在
[ "$a" = "$b" ]  # 字符串相等
[ $a -eq $b ]    # 数字相等

循环

for i in {1..10}; do
    echo $i
done

for file in *.txt; do
    echo $file
done

while [ condition ]; do
    # 循环体
done

查看可用的解析器

cat /etc/shells

十五、Docker 常用命令

# 镜像管理
docker images                           # 查看本地镜像
docker search mysql                     # 搜索镜像
docker pull mysql:8.0                   # 拉取镜像

# 容器管理
docker run -di --name=容器名 -p 宿主机端口:容器端口 -e 环境变量 镜像名
docker ps                               # 查看运行中的容器
docker ps -a                            # 查看所有容器

# 启停容器
docker start 容器名
docker stop 容器名
docker restart 容器名

# 删除容器
docker rm 容器名
docker rm -f 容器名                      # 强制删除运行中的容器

十六、C 语言编译(gcc / make / gdb)

gcc 编译器

基本编译流程
# 一步编译
gcc hello.c -o hello                    # 编译并生成可执行文件 hello

# 分步编译
gcc -E hello.c -o hello.i              # 1. 预处理(展开宏和头文件)
gcc -S hello.i -o hello.s              # 2. 编译(生成汇编代码)
gcc -c hello.s -o hello.o              # 3. 汇编(生成目标文件)
gcc hello.o -o hello                   # 4. 链接(生成可执行文件)
常用选项
选项说明
-o file指定输出文件名
-c只编译不链接,生成 .o 目标文件
-g生成调试信息(配合 gdb 使用)
-O0 / -O1 / -O2 / -O3优化级别(0 无优化,3 最高优化)
-Wall开启所有警告信息
-Werror将警告视为错误
-std=c11 / -std=c99指定 C 语言标准
-l链接指定库,如 -lm(数学库)、-lpthread(线程库)
-L指定库文件搜索路径
-I指定头文件搜索路径
-D定义宏,如 -DDEBUG
-static静态链接
-shared生成共享库(动态库)
实用示例
# 基本编译
gcc hello.c -o hello

# 多文件编译
gcc main.c utils.c -o program

# 开启所有警告
gcc -Wall -Wextra hello.c -o hello

# 调试版本编译
gcc -g -O0 hello.c -o hello_debug

# 链接数学库
gcc math_demo.c -o math_demo -lm

# 链接线程库
gcc thread_demo.c -o thread_demo -lpthread

# 指定头文件路径
gcc -I /usr/local/include hello.c -o hello

# 指定库文件路径
gcc -L /usr/local/lib hello.c -o hello -lmylib

# 生成动态库(.so)
gcc -shared -fPIC utils.c -o libutils.so

# 使用动态库
gcc main.c -L. -lutils -o main

make 与 Makefile

基本 Makefile 示例
# 注释
CC = gcc
CFLAGS = -Wall -g
TARGET = program
OBJS = main.o utils.o math.o

# 目标:依赖
$(TARGET): $(OBJS)
	$(CC) $(OBJS) -o $(TARGET)

# 编译规则
main.o: main.c utils.h
	$(CC) $(CFLAGS) -c main.c

utils.o: utils.c utils.h
	$(CC) $(CFLAGS) -c utils.c

math.o: math.c math.h
	$(CC) $(CFLAGS) -c math.c

# 伪目标
.PHONY: clean
clean:
	rm -f $(OBJS) $(TARGET)
通用 Makefile 模式
CC = gcc
CFLAGS = -Wall -g -O2
SRCS = $(wildcard *.c)
OBJS = $(SRCS:.c=.o)
TARGET = program

$(TARGET): $(OBJS)
	$(CC) $^ -o $@

%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

.PHONY: clean
clean:
	rm -f $(OBJS) $(TARGET)

Makefile 自动变量:

变量含义
$@目标文件名
$^所有依赖文件
$<第一个依赖文件
$?比目标新的依赖文件列表
$*不包含扩展名的目标文件名
make 命令使用
make                  # 执行默认目标
make target           # 执行指定目标
make -j4              # 并行编译(4个并发任务)
make -f other.mk      # 使用指定的 Makefile 文件
make clean            # 执行 clean 目标
make -n               # 只显示命令,不实际执行(调试用)

gdb 调试器

编译准备
# 必须使用 -g 选项编译以获得调试符号
gcc -g hello.c -o hello
启动与退出
gdb hello             # 启动 gdb 调试 hello
(gdb) quit            # 退出 gdb(可简写为 q)
常用命令一览
命令缩写说明
runr运行程序(可带参数)
start-运行并停在 main 函数
break 行号b 行号在指定行设置断点
break 函数名b 函数名在函数入口设置断点
break 文件:行号b file:line在指定文件行设置断点
info breakpointsi b查看所有断点
delete 编号d 编号删除指定断点
continuec继续运行到下一个断点
nextn执行下一行(不进入函数)
steps执行下一行(进入函数)
finishfin执行到当前函数返回
print 变量p 变量打印变量值
print /x 变量-以十六进制打印
display 变量disp 变量每次停止时自动显示变量
listl显示源代码
backtracebt显示函数调用栈
framef切换栈帧
watch 变量-设置观察点(变量值改变时中断)
set var 变量=值-修改变量值
help 命令h 命令查看命令帮助
调试示例
gcc -g -O0 debug_demo.c -o debug_demo

gdb debug_demo

(gdb) break main                 # 在 main 函数设置断点
(gdb) run                        # 运行
(gdb) next                       # 执行下一行
(gdb) print i                    # 查看变量 i 的值
(gdb) backtrace                  # 查看调用栈
(gdb) continue                   # 继续运行
(gdb) quit                       # 退出
调试 core dump
# 开启 core dump
ulimit -c unlimited

# 运行程序(崩溃后生成 core 文件)
./buggy_program

# 使用 gdb 分析
gdb ./buggy_program core
(gdb) bt                         # 查看崩溃时的调用栈

十七、Vim 编辑器完全指南

Vim 的四种模式

模式进入方式用途
普通模式按 Esc浏览、删除、复制、粘贴
插入模式i / a / o / I / A / O输入文本
命令模式:保存、退出、查找替换
可视模式v / V / Ctrl+v选中文本块

进入插入模式的方式

命令说明
i在光标前插入
I在行首插入
a在光标后追加
A在行末追加
o在下一行插入新行
O在上一行插入新行
s删除光标处字符并进入插入模式
S删除整行并进入插入模式

光标移动(普通模式)

                    上(k)
                      ^
       左(h)  <-- 光标  -->  右(l)
                      v
                    下(j)
h / j / k / l               # 左、下、上、右移动
w                           # 移动到下一个单词开头
b                           # 移动到上一个单词开头
e                           # 移动到单词末尾
0                           # 移动到行首
$                           # 移动到行尾
^                           # 移动到行首第一个非空字符
gg                          # 移动到文件开头
G                           # 移动到文件末尾
nG / :n                     # 移动到第 n 行
Ctrl+f                      # 向下翻一页(Forward)
Ctrl+b                      # 向上翻一页(Backward)
Ctrl+d                      # 向下翻半页(Down)
Ctrl+u                      # 向上翻半页(Up)
H / M / L                   # 移动到屏幕顶部 / 中间 / 底部
{ / }                       # 按段落上下移动
%                           # 跳转到匹配的括号

编辑操作

# 删除(delete)
x                           # 删除光标处字符
dw                          # 删除到单词末尾
dd                          # 删除整行(并复制到剪贴板)
d$ / D                      # 删除到行尾
d0                          # 删除到行首
ndd                         # 删除 n 行
dG                          # 删除到文件末尾
dgg                         # 删除到文件开头

# 复制(yank)
yw                          # 复制一个单词
yy                          # 复制整行
nyy                         # 复制 n 行
y$                          # 复制到行尾
yG                          # 复制到文件末尾

# 粘贴(put)
p                           # 在光标后粘贴
P                           # 在光标前粘贴

# 撤销与重做
u                           # 撤销
Ctrl+r                      # 重做

# 修改(change)
cw                          # 修改到单词末尾
cc                          # 修改整行
C                           # 修改到行尾
r 字符                       # 替换光标处字符
R                           # 进入替换模式(持续替换)

# 缩进
>>                          # 当前行增加缩进
<<                          # 当前行减少缩进
>G                          # 当前行到末尾增加缩进
ngg=G                       # 自动格式化从第 n 行到末尾

# 其他
.                           # 重复上一次操作
J                           # 将下一行合并到当前行
~                           # 切换大小写

查找与替换

# 查找(普通模式)
/pattern                    # 向下搜索
?pattern                    # 向上搜索
n                           # 跳转到下一个匹配
N                           # 跳转到上一个匹配
*                           # 搜索光标所在单词(向前)
#                           # 搜索光标所在单词(向后)

# 查找替换(命令模式)
:s/old/new                  # 替换当前行第一个匹配
:s/old/new/g                # 替换当前行所有匹配
:%s/old/new/g               # 替换整个文件所有匹配
:%s/old/new/gc              # 替换整个文件,每次确认
:n,ms/old/new/g             # 替换第 n 行到第 m 行的所有匹配
:%s/old/new/g               # 全文替换

# 忽略大小写
:%s/old/new/gi

可视模式

v                           # 字符可视模式(按字符选择)
V                           # 行可视模式(按行选择)
Ctrl+v                      # 块可视模式(矩形选择)

# 选中后可执行的操作
d / x                       # 删除选中内容
y                           # 复制选中内容
> / <                       # 缩进/反缩进
r 字符                       # 替换选中内容为指定字符

文件操作

# 命令模式
:w                          # 保存
:w filename                 # 另存为
:q                          # 退出
:q!                         # 不保存强制退出
:wq / :x / ZZ               # 保存并退出
:wq!                        # 强制保存退出(root 权限)
:r filename                 # 在光标处插入另一个文件内容
:e filename                 # 打开另一个文件
:e!                         # 重新加载当前文件(放弃修改)
:bn / :bp                   # 切换到下一个/上一个缓冲区

# 多窗口
:sp filename                # 水平分屏打开文件
:vsp filename               # 垂直分屏打开文件
Ctrl+w w                    # 切换窗口
Ctrl+w q                    # 关闭窗口
Ctrl+w =                    # 等分窗口大小
Ctrl+w + / Ctrl+w -         # 增加/减少窗口高度

Vim 配置

# 显示行号
:set nu                     # 显示行号
:set nonu                   # 隐藏行号

# 语法高亮
:syntax on
:syntax off

# 搜索高亮
:set hlsearch               # 高亮搜索结果
:set nohlsearch             # 取消高亮
:nohl                       # 临时取消本次搜索的高亮

# 缩进设置
:set tabstop=4              # Tab 宽度
:set shiftwidth=4           # 自动缩进宽度
:set expandtab              # Tab 转为空格
:set autoindent             # 自动缩进

# 在当前会话查看设置
:set                        # 查看已修改的设置
:set all                    # 查看所有设置

# 永久配置(写入 ~/.vimrc)
echo "set nu" >> ~/.vimrc
echo "set tabstop=4" >> ~/.vimrc
echo "syntax on" >> ~/.vimrc

Vim 常用技巧

# 批量注释(块模式)
Ctrl+v → 选择多行 → I → 输入 # 或 // → Esc

# 批量取消注释
Ctrl+v → 选择注释符号 → d

# 大小写转换
gUw                         # 光标处单词转大写
guw                         # 光标处单词转小写
gUU                         # 当前行全转大写
guu                         # 当前行全转小写

# 数字递增 / 递减
Ctrl+a                      # 光标处数字 +1
Ctrl+x                      # 光标处数字 -1

# 执行 Shell 命令
:!command                   # 执行外部命令
:r !command                 # 将命令输出插入当前文件

附录:常用快捷键总结

快捷键说明
Tab命令/路径自动补全
Ctrl+C终止当前运行的程序
Ctrl+Z挂起当前程序
Ctrl+D退出当前终端 / EOF
Ctrl+L清屏(相当于 clear)
Ctrl+A光标移到行首
Ctrl+E光标移到行尾
Ctrl+U删除光标前所有内容
Ctrl+K删除光标后所有内容
Ctrl+R搜索历史命令
上/下方向键浏览历史命令

Linux常用指令(超详细整理) mkdir指令用于创建目录mkdir [选项] 要创建的目录-p :创建多级目录rmdir指令删除空目录rmdir [选项] 要删除的空目录rmdir 删除的是空目录,如果目录下有内容时无法删除的。如果需要删除非空目录,需要使用touch指令创建空文件touch 文件名称touch 文件名称1 文件名称2cp 指令拷贝文件到指定目录cp [选项] source destrm 指令移除文件或目录rm [选项] 要删除的文件或目录mv 移动文件与目录或重命名。 阅读详情

相关推荐

全网最全 Linux 命令总结,建议收藏!

运维实战

m0_62081777的博客 823

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万+

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常用命令大全

Linux常用命令大全,超详细

程序前行者的博客 16万+

linux常用命令大全.pdf

linux常用命令大全

微软登录OAuth 2.0授权流程

OAuth 2.0是一个关于授权的开放网络标准,它允许第三方应用获取用户数据,是目前最流行的授权机制。微软身份平台支持OAuth 2.0授权码流程,使得客户端应用程序能够获得对受保护资源(如网络API)的授权访问。这一流程在保障用户数据安全的前提下,实现了应用的便捷登录与数据共享。当用户在一个支持OAuth 2.0的应用上,希望使用微软账号进行登录时,OAuth 2.0授权流程即被触发。

qq_36569837的博客 4084

Linux 常用命令最全总结大全【推荐收藏】

Linux 常用命令

qq_43108153的博客 16万+

构建多节点AI代理网络:OpenClaw协同框架与实战部署指南

在分布式系统与AI代理技术领域,多节点协同是提升智能体能力与扩展性的核心挑战。其原理在于通过设计清晰的通信协议与数据同步机制,使分散的智能体能够共享状态、知识与技能,从而实现1+1>2的群体智能。这一技术价值在于突破了单点AI的能力上限,为构建复杂、鲁棒且可扩展的自动化系统提供了基础。典型的应用场景包括跨设备任务编排、企业级工作流自动化以及大规模AI代理集群的管理。本文聚焦于OpenClaw这一开源AI代理框架,深入探讨如何利用模块化设计(如网状网络与任务控制中心)实现记忆共享与统一调度,解决多网关协同中的

weixin_42521032的博客 298

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

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

冰河的专栏 17万+

中国传媒大学计算机考研初复试经验贴

中传的计算机专业考研的话主要分为两大学院:计网学院和国重,大部分专业在计网学院。

DoKiDoK的博客 1559

右腿驱动电路设计:从共模干扰原理到生物电采集实战

在生物电信号采集领域,共模干扰是影响测量精度的核心挑战之一,其本质源于环境电磁场通过容性耦合在人体表面产生的感应电流。根据欧姆定律,由于人体组织阻抗的不均衡性,共模电流会在不同测量点产生差异化的压降,从而转化为难以滤除的差分噪声。为解决这一问题,右腿驱动技术应运而生,它通过负反馈原理主动抵消干扰,显著提升系统的共模抑制比。该技术广泛应用于心电图、脑电图等医疗电子设备中,是确保微弱生理信号质量的关键环节。本文结合工程实践,深入剖析了右腿驱动电路中的仪表放大器选型、反馈环路稳定性设计以及PCB布局布线要点,为高

weixin_31476015的博客 442

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

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

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

【信创-k8s】银河麒麟V10国防版+鲲鹏/飞腾(arm64架构)在线/离线部署k8s1.30+kubesphere

银河麒麟作为国家核高基专项的重要成果,国防版凭借其卓越的安全性和可靠性,已成为军工领域的首选操作系统。之前我们在适配麒麟V4国防版的过程中已发现诸多安全性要求,而麒麟V10国防版在安全防护等级上又达到了更高的级别。本文将主要演示离线部署,因为军工项目基本不会出现联网场景。即使在线,也可以按离线方式部署,且离线部署由于有私有仓库,不会存在镜像获取不到和丢失情况。

jiaworld的博客 730

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

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

sadmin___的博客 7386

更换光猫的原理与方法

当你给装维打电话说你需要更换光猫时,对于装维来说,他并不需要知道怎么更换,他只需要生成一张工单,由后台进行业务操作后,在去用户家把新光猫给装好即可,此时装维到底起到了什么作用呢?我想可能只是运输员吧,把一个设备从一个地方运到另一个地方罢了,此时并不能指望装维做什么,因为本质上来说装维的能力真的很差很差,我是不知道那些装维哪来的勇气做视频,还说自己什么什么能力很强?很强吗?吹牛的技术确实很强。 更换光猫之前,需要先明白为什么要更换光猫,怎么更换光猫,更换后不能用怎么办?怎么才能更换成功,换光猫以后被限速了怎么

qq_34146290的博客 1万+

爆肝整理:微信公众号文章HTML编写完整规范,运营必备手册

微信公众号文章排版总是出错?📱 这份完整的HTML编写规范文档帮你彻底解决!文档包含所有支持的标签、CSS属性、实用代码模板和注意事项 📋,让你快速掌握微信文章的HTML编写技巧,告别第三方编辑器依赖 ✅

XiaoqiangClub的博客 2302

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

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

2401_83739821的博客 2806

Python爬虫实战:亚马逊中国模拟登录与二次验证全解析(2026最新版)

在数据驱动的商业时代,亚马逊作为全球最大的电商平台,其商品数据、价格波动、评论信息、库存状态等对市场分析、竞品研究、价格监控具有极高的价值。然而,亚马逊的反爬虫机制堪称行业标杆——从请求指纹校验、动态令牌、行为分析到二次验证(2FA),层层设防。本篇文章将带你从零开始,使用2026年最新的Python技术栈,完整实现亚马逊中国(z.cn)的模拟登录,并攻克二次验证难题。郑重声明:本文仅限技术研究与个人学习用途,严禁用于批量抓取、价格劫持、账户爆破等违法违规行为。

2201_76125261的博客 377

MySQl5.7 Linux安装教程(全网最全,建议收藏)

         为什么一定要手动安装MySQL那,使用系统的yum -y install mysql-server 他不香吗,但是默认安装的版本是(mysql-5.1.73-8.e16_8.x86_64)由于版本太低了好多等西都不能用,所以我今天给大家分享一下手动安装MySQL5.7.17(建议收藏) 一、准备工作 下载安装包: 方式一、点击去官网去下载 方式二、使用Linux下载wget进行下载我这里提供的是MySQL.

大数据记录 6820

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

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

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

cat test.txt test2.txt >readme.txt : 将test.txt和test2.txt文件合并成readme.txt 文件。vim启动后,默认进入命令模式,任何模式都可以通过esc键回到命令模式(可以多按几次),命令模式下可以键入不同的命令完成选择、复制、粘贴、撤销等操作。可以将文件及目录移到另一目录下,或更改文件及目录的名称。ls -al |more:以长格形式显示etc目录下的文件列表,显示满一个画面便暂停,可 按空格键继续显示下一画面,或按Q键跳离。

2401_84976219的博客 1026

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

全网最全最详细Java项目部署指南(建议收藏)

全网最详细的java项目部署指南!!!

weixin_52796198的博客 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

全网最全Linux常用命令

管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 touch 创建文件 ls 查看目录下的内容 mv 移动文件 cd 改变所在目录 rm 删除文件 cat 显示文件的内容 rmdir 删除目录 grep 在文件中查找某字符 vi 编辑文件 cp 复制文件 pwd 该命令的英文解释为print working directory(打印...

日常爱喝茶,闲时聊科技 1378
上一篇: 电力电子技术完全指南
下一篇: 嵌入式串口通信协议设计与解析完全教程
天天好好学习
天天好好学习 2023年溢达杯全国设计大赛三等奖获奖者 2023年溢达杯全国设计大赛三等奖获奖者 新星创作者: C/C++技术领域 新星创作者: C/C++技术领域 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄8年 7289粉丝 273原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天好好学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值