魔术桌
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • Package - Bash - 终端命令

文章摘要: 摘要内容。

相关信息

外部相关文章

  • https://dasher.wustl.edu/chem478/software/unix-tools/bash.html

内部相关文章

  • Debian Linux 配置文件:OS-DebianLinux-配置文件

提示

  • 这里的命令是分散的、独立的,每个命令都对应一个功能。
  • 都属于bash软件包提供的终端命令。

命令

注释

  • 普通命令所在目录:usr/bin/<命令名称>
  • 管理员命令所在目录:``

查询命令

which [<命令名称>]

案例


路径

查询当前所在路径

pwd

案例

# 显示当前所在路径
pwd

跳转(切换)到指定路径

cd

案例

# 切换到根目录
cd /

# 切换到根目录下的bin目录
cd /bin

# 切换到上一级目录 或者使用命令:cd ..
cd ../

# 切换到home目录
cd ~

# 切换到上次访问的目录
cd -

# 切换到本目录下的名为xx的文件目录,如果目录不存在报错
cd xx(文件夹名)

# 可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全
cd /xxx/xx/x

目录

显示目录内容

ls [<选项>] [<目录路径>]

# `-a` `-all`:显示所有文件,包括隐藏文件,即以`.`开头的文件。
# `-l` `-long`:详细信息显示。
# `-h`:人性化显示信息。
# `-d`:查看目录属性。
# `-i`:查看文件的ID号。

案例

# 查看当前目录下的所有目录和文件(不包含隐藏文件)
ls

# 查看当前目录下的所有目录和文件(包括隐藏文件)
ls -a

# 查看指定目录下的所有目录和文件
ls 【指定目录路径,如:/home】

# 列表查看当前目录下的所有目录和文件(列表查看显示更多东西
ls -alh

创建目录

mkdir [<选项>] [<目录路径>]

# `-p`:开启递归创建,若没有目录则自动创建目录。

案例

# 在当前目录下创建目录
mkdir 【创建的目录名】

# 在指定目录下创建目录
mkdir 【目录+创建的目录名】

删除空目录

  • 仅支持删除空目录。
rmdir [<选项>] <目录路径>

案例

# 仅支持删除空目录
rmdir ./text/

拷贝(复制)目录

cp [选项] <原文件或目录> <目标文件或目录>

# `-f`:冲突时强制覆盖目标。
# `-n`:冲突时不覆盖目标。
# `-u`:冲突时覆盖修改时间较旧的目标。
# `-i`:冲突时询问是否覆盖。
# `-r`:递归复制(用于复制目录)。
# `-s`:创建软连接目录。
# `-p`:保留文件属性。

案例

# 将/usr/tmp目录下的tool目录复制到 /opt目录下面
cp /usr/tmp/tool /opt

# 递归复制目录中所有文件和文件夹
cp -r /usr/tmp/tool /opt

剪切(移动)目录

mv [选项] <原文件或目录> <目标文件或目录>

案例

# 修改目录名,同样适用于文件操作
mv 【当前目录名】 【新目录名】

# 将/usr/tmp目录下的tool目录剪切到 /opt目录下面
mv /usr/tmp/tool /opt

# 递归剪切移动目录中所有文件和文件夹
mv -r /usr/tmp/tool /opt

文件

创建软链接(快捷方式)

ln [选项] <原文件> <目标文件>

# `-s`:创建软连接。

案例

ln -s /usr/local/mysql/bin/mysqld /usr/bin/mysqld

创建新文件

touch [选项] [参数] <文件名>

案例

# 在当前目录下创建名为test.txt文件,若文件已存在,则将文件时间属性修改为当前系统时间。
touch test.txt

删除文件

rm [选项] <文件或目录>

# `-r`:删除目录。
# `-f`:强制执行。

案例

# 删除当前目录下的文件(询问)
rm 【文件名】

# 删除当前目录下的文件(不询问)
rm -f 【文件名】

# 递归删除当前目录下的目录(询问)
rm -r 【文件夹名】

# 递归删除当前目录下的目录(不询问)
rm -rf 【文件夹名】

# 递归删除当前目录下的所有目录和文件(不询问)
rm -rf *

# 递归删除根目录下的所有目录和文件(不询问)
rm -rf /*

文件内容

注释

  • 推荐直接学习使用 “Vim软件包” 提供的文本编辑终端命令。

显示文件内容

cat [选项] <文件名>

# `-n`:显示行号。

案例


显示文件内容(反向列出)

tac [选项] <文件名>

# `-n`:显示行号。

案例


分页显示文件内容

  • 简要说明:
  • 英文全称:more
  • 所在路径:/usr/bin/more
  • 执行权限:所有用户

注释

  • 空格/f,翻页
  • 回车(Enter),换下一行
  • Q/q,退出

格式

  • more [选项] [参数] <文件名>

选项

参数

案例

# 显示百分比,回车查看下一行,空格查看下一页,"q"退出查看
more 【文件名】

分页显示文件内容(可向上翻页)

注释

  • 空格(\f):翻页
  • 回车(Enter):换下一行
  • 上箭头(PgUp):换上一行
  • Q/q,退出
  • 输入斜杠后,输入需要查询的内容进行高亮显示,n键遍历下一个符合的内容
less [选项] [参数] <文件名>

案例

# PgUp向上翻页,PgDn向下翻页,"q"退出查看
less 【文件名】

显示文件内容前面几行

  • 简要说明:
  • 英文全称:head
  • 所在路径:/usr/bin/head
  • 执行权限:所有用户
head [<选项>] <文件名>

# `-n <行数>`:指定行数。

案例

# 显示文件前100行的内容到终端
head -n 100 <文件名>

显示文件内容后面几行

tail [<选项>] <文件名>

# `-n <行数>`:指定行数。
# `-f`:动态更新显示文件末尾内容。

案例

# 查看文件的后100行/
tail -n 100 【文件名】 

文件内容搜索

grep [选项] <文本内容>

案例


sed

  • 简要说明:流编辑器,用于处理文本
  • 英文全称:
  • 所在路径:
  • 执行权限:所有用户

格式

  • grep [选项] [参数]

选项

参数

案例


awk

  • 简要说明:文本和数据处理工具
  • 英文全称:
  • 所在路径:
  • 执行权限:所有用户

格式

  • grep [选项] [参数]

选项

参数

案例


cut

  • 简要说明:从文本中提取文本列
  • 英文全称:
  • 所在路径:
  • 执行权限:所有用户

格式

  • grep [选项] [参数]

选项

参数

案例


sort

  • 简要说明:对文本文件内容排序
  • 英文全称:
  • 所在路径:
  • 执行权限:所有用户

格式

  • grep [选项] [参数]

选项

参数

案例


uniq

  • 简要说明:去除文本文件中的重复行
  • 英文全称:
  • 所在路径:
  • 执行权限:所有用户

文件搜索

按照不同的标准来查找文件

find [选项] [匹配条件]

# `-name`:根据文件名搜索。
# `-size`:根据文件大小搜索。
# `-group`:根据所属组搜索。
# `-type`:根据文件类型搜索(f文件,d目录,l软连接文件)。
# `-inum`:根据i节点搜索。
# `-amin`:根据访问时间搜索。
# `-cmin`:根据文件属性搜索。
# `-mmin`:根据修改时间搜索。

# 链接选项
# `-a`:(and)两个条件同时满足时进行显示。
# `-o`:(or)两个条件满足任意一个时进行显示。

案例

# 查找/bin目录下的所有以a开头的文件或者目录
find /bin -name 'a*'

在文件资料库中查找文件

locate [文件名]

案例


字符串匹配

grep -iv [<指定字符串>] [<文件>]
# `-i`:不区分大小写。
# `-v`:排除指定字符串。

案例


文件和目录的权限

提示

终端显示规则

  • '-':代表文件。
  • 'd':代表文件夹。
  • 'r':代表可读。
  • 'w':代表可写。
  • 'x':代表执行权限。

权限相关说明

  • 所属组:u表示所有者、g表示所属组、o表示其他人、a表示全部人
  • 权限控制:+表示增加权限、-表示减少权限、=表示修改成该权限
  • 权限:r表示读权限、w表示写权限、x表示执行权限
  • 权限数字表示:r=4,w=2,x=1

修改权限

chmod [选项] [参数] <{ugoa}{+-=}{rwx}> <文件或目录>

# `-R`:递归修改。

案例

# 为当前用户授权执行权限
chmod +x text.txt

# 8421法,1+2+4=7,“7”说明授予所有权限
chmod 777 text.txt

修改所有者

chown [选项] [参数] <{ugoa}{+-=}{rwx}> <文件或目录>

# `-R`:递归修改。

案例


修改所属组

chgrp [选项] [参数] <用户组> <文件或目录>

# `-R`:递归修改。

案例


设置缺省权限

umask [选项] [参数]

# `-S`:以rwx形式显示新建文件缺省权限。

案例


用户

临时获取管理员权限

# 执行切换命令后,会提示输入密码,不会有输入提示。
sudo [<选项>] [<其他命令>]

# `-l`:列出当前的权限

案例


案例

# 以管理员身份运行命令
sudo apt update
# 列出目前的权限
sudo -l

# 以test用户身份编辑`/home/test`目录中的abcd.txt文件
sudo -u test vi ~/abcd.txt

切换用户

# 执行切换命令后,会提示输入密码,不会有输入提示。
su [<选项>] [<用户名>]

案例

# 切换为用户"host01",输入后回车需要输入该用户的密码
su host01 
# 退出当前用户
exit 

创建用户

# 需要管理员权限。
useradd [<选项>] [<用户名>]

# `-m`:创建用户主目录(配合`-k [<路径>]`指定创建模板)。
# `-d [<目录>]`:用户主目录路径。
# `-e [YYYY-MM-DD]`:用户到期时间。
# `-g [GID/groupname]`:用户登录组。
# `-G [GIDs/groupnames]`:用户所在的附加组。
# `-p [<密码>]`:用户默认密码。
# `-s [shell]`:用户登录的shell。
# `-c [<备注>]`:用户备注/别名。
# `-D`:查看默认设置(单独使用)。

案例


删除用户

userdel [<选项>] <用户名>

# `-r`:删除用户主目录。

案例


修改用户-密码

passwd [<选项>] [<用户名>]

# `-l`:锁定密码。
# `-u`:解锁密码。
# `-d`:删除密码。
# `-f`:下次登录时强制修改密码。

案例

# 修改自己的密码
passwd 

# (需要管理员权限)修改其他用户的密码
sudo passwd username

修改用户-属性

usermod [<选项>] <用户名>

# `-aG [GIDs/groupnames]`:让用户进入新的用户组。

案例


用户组

添加新用户组

groupadd

案例


删除用户组

groupdel

案例


更新时间: 2025/10/3 17:56