系统管理命令 1~15
1. sh:早期的Shell,目前已经被bash代替了
sh是 Unix 系统中历史悠久的基础 shell,语法简洁、兼容性强,适合编写跨平台的简单脚本。虽然功能不如bash丰富,但仍是理解 shell 原理和脚本开发的重要基础。在实际使用中,若需复杂功能,可优先选择bash,但sh的兼容性仍使其在特定场景中不可替代。
2. bash (csh/tcsh/zsh) :默认的Shell
- 执行Linux命令
- 执行Shell脚本
#执行字符串中的命令
bash -c "ls -l;date;lscpu"
#执行Shell脚本
bash 
bash(Bourne Again SHell)是 Unix 和类 Unix 系统中最流行的命令行解释器(shell)之一,它是 Bourne Shell(sh) 的增强版本,兼容sh的语法并添加了大量扩展功能。bash由 Brian Fox 于 1989 年为 GNU 项目开发,现在是大多数 Linux 发行版和 macOS 的默认 shell。
bash 的核心特点
- 兼容 sh:完全支持 sh的语法,可直接运行现有的sh脚本。
- 交互式增强:提供命令补全、历史记录、别名等功能,提升用户体验。
- 脚本编程扩展:支持数组、函数、正则表达式、循环控制结构等高级特性。
- 环境定制:通过 .bashrc、.bash_profile等配置文件自定义 shell 环境。
bash 的高级特性
		1.命令补全: 按 Tab 键自动补全命令、文件名或路径,提高输入效率。
 2.历史命令:
- 按 ↑/↓键浏览历史命令,或使用history命令查看所有历史记录。
- 使用 !n执行历史记录中第n条命令(如!100)。
 3.管道与重定向:
- 管道 |:将一个命令的输出作为另一个命令的输入(如ls | grep txt)。
- 重定向 >/>>:将输出保存到文件(覆盖/追加)。
 4.shell常用快捷键
| 快捷方式 | 作用 | 
|---|---|
| Tab | 自动补全命令或文件(目录)的名称 | 
| Ctrl+c | 结束终端中正在运行的命令 | 
| Ctrl+d | 从某些程序中退出 ( exit ) \quit\ q\ vim --> ESC :q! | 
| Ctrl+a | 移动光标到终端开头 | 
| Ctrl+e | 移动光标到终端结尾 | 
| Ctrl+l | 清屏 | 
| 上方向键 | 找回历史命令,向上找 history | 
| 下方向键 | 找回历史命令,向下找 | 
| Ctrl+s/Ctrl+q | 锁定与解锁Shell | 
| Ctrl+z | 将前台正在运行的服务放置到后台运行 | 
3.type:查看命令的类型
在 shell 中,type 是一个用于确定命令如何被解释和执行的内置命令。它可以帮助你了解某个命令是 shell 内置命令、外部可执行文件,还是别名(alias)或函数。
基本语法
type [选项] 命令名
- 选项:常用的有 -a(显示所有可能的位置)、-t(只显示类型)等。
- 命令名:要查询的命令(如 ls、cd、type本身)。
核心功能
type 命令主要用于解决以下问题:
1.判断命令类型: 确定一个命令是 内置命令(shell 自带的)、外部命令(系统中的可执行文件)、别名 还是 函数。
2.查找命令位置: 对于外部命令,显示其在文件系统中的路径(类似 which 命令)。
常见输出类型
type 命令的输出可能有以下几种:
- builtin:shell 内置命令(如 cd、echo、type本身)。
- file:外部可执行文件(如 /bin/ls、/usr/bin/git)。
- alias:用户定义的别名(如 ll='ls -l')。
- function:shell 函数(通常在配置文件中定义)。
- keyword:shell 关键字(如 if、for)。
示例
1.查询 ls 命令
$ type ls
ls is aliased to `ls --color=auto'  # 在 Linux 中,ls 通常是带颜色选项的别名
2.查询 cd 命令
$ type cd
cd is a shell builtin  # cd 是 shell 内置命令,无需外部文件
3.查询 python 命令
$ type python
python is /usr/bin/python  # 外部命令,位于 /usr/bin 目录下
4.使用 -a 选项显示所有可能的位置
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls  # 原始命令位置
5.使用 -t 选项只显示类型
$ type -t cd
builtin
$ type -t python
file
4.man :查看命令的帮助文档
“忘了用法?查查手册。”
用法:man 命令名
- 显示指定命令的完整手册,包括用法、参数和示例。
man 常用操作示例:
# 1. 查看 ls 的手册
man ls
# 2. 在手册中搜索关键词,比如 "file"
# 按 / 输入关键词,然后按回车查找
# /file
# 3. 退出手册
# 按 q 键退出
小总结:
- man 命令名:查命令的说明书。
- 按 /搜索:快速定位关键词。
用 man,不再为忘记命令用法发愁!
5. --help:快速帮你上手
“不想翻手册?用它快速查看命令用法!”
用法:命令 --help
- 显示命令的简要说明,包括常用选项和用法。
比如查看 ls 的简要帮助:
ls --help
--help简洁易懂,适合快速上手命令操作!
命令 --help # 显示命令参数
6.pwd:打印工作目录
- 全称 Print Working Directory,用来显示你当前所在的工作目录,也就是告诉你“我在哪儿”。
比如,你在终端输入:
pwd
输出可能是:/home/user/Documents
意味着你现在的工作目录是 /home/user/Documents。简单来说,这个命令相当于给你当前的位置标了个“导航点”。
7.ls:显示目录中的内容
用法:ls 或 ls [选项] [目录名]
- “List”的缩写,用于列出目录中的文件和子目录。简单来说,这个命令就是告诉你“当前目录里都有什么东西”。
- -l参数,还能看到更详细的信息,比如文件大小,类型,修改时间,硬连接数,文件名,属主,属组和权限(属主,属组,其他)。
- -a显示所有文件,包括隐藏文件
- -d只显示隐藏文件
- -h显示文件大小单位(K,M,G)
- -t按时间顺序进行排列
- -r逆序显示,rt连用
- -i显示inode编号
- --color=auto按照文件的分类高亮显示文件 试试这个:
ls -l
还有ls -al,这会连隐藏文件(以.开头的文件)也一并显示。
8. cd:切换目录
“想去别的文件夹?用它轻松切换!”
用法:cd 目录名
- cd全称 “Change Directory”,顾名思义,就是切换目录。
进入指定目录,如果不写目录,则回到用户的主目录(家目录)。
./    # 表示当前路径
../   # 上层路径
~     # 代表家目录
cd src   #进去子目录
cd ~      # 进入家目录(用户主目录)
cd ~/Desktop  # 跳到桌面目录
cd ..    # 返回上一级目录
cd -     # - 是上一次访问的目录,像“返回”按钮一样。
cd       # 直接敲cd回到当前用户的家目录
# 绝对路径:从"根"/ 开始的路径是绝对路径
# 相对路径:只要不从"根"/开始的路径都是相对路径,从当前路径开始的路径
9. tree:显示目录的树状结构
常用操作:
# 1. 显示当前目录的树形结构
tree
# 2. 显示指定目录的树形结构
tree /path/to/directory
# 3. 限制层级深度(如最多显示两层)
tree -L 2
# 4. 显示文件大小
tree -h
# 5. 只显示目录(不显示文件)
tree -d
# 6. 输出结果到文件
tree > tree_output.txt
小总结:
- 显示树形结构: 用 tree快速展示目录结构。
- 限制深度: 用 -L控制层级,避免输出过长。
- 显示文件信息: 用 -h加上文件大小,-d只看目录。
tree 是快速查看和分享目录结构的好工具,让层次清晰直观!
显示系统根目录
tree -Ld 1 /  # -L 表示显示的层数 -d 只显示目录
/  # “根”目录 所有文件目录都必须挂载在“根”目录上(root)
├── bin -> usr/bin         # binary 二进制的程序,所有用户都可使用的程序,是/usr/bin的一个软链接 
├── boot               # 启动目录,存放系统内核,启动脚本    
├── dev                # device 设备,硬件设备的映射文件,加载硬件资源  
*├── etc                # 配置文件,系统配置文件,yum安装的服务的配置文件 
├── home               # 普通用户的家目录
├── lib -> usr/lib         # library 程序依赖库,系统中程序共享的依赖库
├── lib64 -> usr/lib64      # 64位的library 程序共享文件库
├── media              # 媒体文件,用于挂载光盘.U盘.移动硬盘  
├── mnt                # 挂载临时设备,用于挂载光盘.U盘.移动硬盘                  
├── opt                # optional 可选的,安装的第三方程序。 
├── proc               # 虚拟文件系统,实时内核信息
├── root               # 超级管理员的家目录    
├── run                # 临时文件系统,系统启动信息,程序运行的进程号,也是虚拟文件 
├── sbin -> usr/sbin       # 管理员才能用的命令
├── srv                # 存放服务数据 
├── sys                # 虚拟的档案系统,存储硬件设备信息 
├── tmp                # 用于存放临时文件的目录,也可做临时共享文件
*├── usr                # Unix System Resource 用户程序安装目录 
*└── var                # 动态数据存储,/var/log日志文件,/var/mail邮件数据,
10. clear:“屏幕太乱了,清清场。”
用法:clear
- 一键清空终端屏幕,重新开始。
- 快捷键: Ctrl + l
11. alias:取别名
“敲太长?给它改个短名字!”
用法:
alias 别名='实际命令'
alias -a # 查看所有生效的别名
比如:
alias ll=“ls -alF”
# 想要别名永久生效
vim ~/.bashrc
alias ls="ls -a color=auto"
source ~/.bashrc #重新加载让别名生效
以后输入 ll 就等于 ls -alF。
12. unalias:让所有的别名失效
unalias -a #取消所有别名
13. which:查找命令的真实路径
“找出命令的安装路径。”
用法:which 命令名
- 显示指定命令的绝对路径,告诉你系统中实际执行的是哪个命令。
比如:
which bash
# 输出: /usr/bin/bash
说明 bash 命令安装在 /usr/bin/bash 目录下。
14. env:获取系统环境变量
“想知道系统有哪些环境变量?用它!”
- PATH:可执行程序的所在路径
- PWD:当前目录的路径
- SHELL:当前使用的Shell名词
- HOME:当前用户的家目录
- LANG:当前系统使用的语言
# 查看所有环境变量
env
XDG_SESSION_ID=1
HOSTNAME=localhost.localdomain
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.25.1 60609 22
OLDPWD=/root
SSH_TTY=/dev/pts/0
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LAST_CMD=
OLD_PWD=/etc/yum.repos.d
LOGNAME=root
SSH_CONNECTION=192.168.25.1 60609 192.168.25.20 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
PROMPT_COMMAND=if [ -z "" ];then
    export OLD_PWD=/etc/yum.repos.d;
fi;
if [ ! -z "" ] && [ "" != "" ]; then
    logger -t root_shell_dir "[]";
fi;
export LAST_CMD="";
export OLD_PWD=/etc/yum.repos.d;
XDG_RUNTIME_DIR=/run/user/0
HISTTIMEFORMAT=[%Y-%m-%d %H:%M:%S] [root] [192.168.25.1]: 
_=/usr/bin/env
15. export:修改系统的环境变量
“想添加或修改环境变量?用它!”
# 设置环境变量
export MY_VAR="Hello World"
# 验证变量是否设置成功
echo $MY_VAR
# 将目录添加到 PATH
export PATH=$PATH:/new/path
# 永久保存变量到 ~/.bashrc
echo "export MY_VAR='Hello World'" >> ~/.bashrc
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号