什么是命令?
命令:Linux操作系统进行交互的指令
如何执行命令:通过在终端(Terminal)中输入特定的命令字符串来执行相应的应用程序
命令的功能:文件管理、进程控制、系统配置等
·CLI:命令行界面(文本交互);
·GUI:图形化界面(视觉交互);
Linux中执行命名是通过Shell执行的。
什么是Shell?
Shell:命令解释器程序,sh、bsh、zsh、csh、tcsh……
openBSD(Unix)默认:sh
Linux绝大多数发行版本使用的都是bash
Shell脚本:一个写有Shell命令的.sh文件,用于命令的批量完成
Linux命令的格式
命令 [选项] [参数]
命令:核心指令,如ls(列出文件)、cd(切换目录)。
选项:调整命令行为的参数,通常以-(短选项,如-l)或--(长选项,如--help)开头,用于扩展命令功能。
参数:命令作用的对象,如文件名、目录路径等。
ls 查看当前目录的普通文件
ls -a 查看所有文件,-a表示查看隐藏文件
ls -al 多个选项可以缩写,-al表示查看详细信息
ls / 查看根目录,在这里”/”是参数,表示根目录
ls -l/etc 可以同时使用选项与参数
Linux命令的特点
1.大小写敏感:命令、文件名、目录名均区分大小写,如Ls与ls是不同的命令(通常命令为小写)。
2.自动补全:在终端中输入命令或路径时,按Tab键可自动补全,减少输入错误。
3.历史记录:按↑/↓键可查看之前输入的命令,history命令可列出所有历史记录。
4.管道与重定向:
管道(|):将一个命令的输出作为另一个命令的输入,如ls -l | grep ".txt"(筛选出.txt文件)。
重定向:>(覆盖输出到文件)、>>(追加输出到文件),如echo "hello" > test.txt(将“hello”写入test.txt)。
Linux常用命令
1.sh:早期的Shell,目前已被bash替代
2.bash:默认的Shell
·执行Linux命令
·执行Shell脚本
#执行字符串中的命令
bash -c “ls -l;date;lscpu:
#执行Shell脚本
shell常用快捷键
快捷方式 | 作用 |
Tab | 自动补全命令或文件(目录)的名称 |
Ctrl+c | 结束终端中正在运行的命令 |
Ctrl+d | 从某些程序中退出 ( exit ) \quit\ q\ vim --> ESC :q! |
Ctrl+a | 移动光标到终端开头 |
Ctrl+e | 移动光标到终端结尾 |
Ctrl+l/clear | 清屏 |
上方向键 | 找回历史命令,向上找 history |
下方向键 | 找回历史命令,向下找 |
Ctrl+s/Ctrl+q | 锁定与解锁Shell |
Ctrl+z | 将前台正在运行的服务放置到后台运行 |
3.type:查看命令的类型
type 是一个用于确定命令如何被解释和执行的内置命令。它可以帮助你了解某个命令是 shell 内置命令、外部可执行文件,还是别名(alias)或函数。
Shell内部命令(了解)
alias, bg, bind, break, builtin, caller, cd, command,
compgen, complete, compopt, continue, declare, dirs, disown, echo,
enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help,
history, jobs, kill, let, local, logout, mapfile, popd, printf,
pushd, pwd, read, readonly, return, set, shift, shopt, source, sus‐
pend, test, times, trap, true, type, typeset, ulimit, umask, unalias,
unset, wait - bash built-in commands
基本语法
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)。
与其他命令的对比
命令 | 功能描述 | 示例输出 |
type | 显示命令的类型和位置(最全面) | ls is aliased to 'ls --color=auto' |
which | 仅查找外部命令的路径(忽略别名和内置命令) | /usr/bin/git |
whereis | 查找命令的二进制文件、源代码和手册页位置 | ls: /bin/ls /usr/share/man/man1/ls.1.gz |
使用场景
1)调试脚本:
确保使用的是正确版本的命令(如避免别名干扰)。
2)跨平台兼容性:
在不同系统中,某些命令可能是内置命令或外部命令(如 echo 在某些系统上是内置的,在其他系统上可能是外部命令)。
3)验证别名或函数:
检查自定义的别名或函数是否正确定义。
4.man :查看命令的帮助文档
用法:man 命令名
显示指定命令的完整手册,包括用法、参数和示例。
man 常用操作示例:
# 1. 查看 ls 的手册
man ls
# 2. 在手册中搜索关键词,比如 "file"
# 按 / 输入关键词,然后按回车查找
# /file
# 3. 退出手册
# 按 q 键退出
小总结:
man 命令名:查命令的说明书。
按 / 搜索:快速定位关键词。
5. --help:快速帮你上手
用法:命令 --help
显示命令的简要说明,包括常用选项和用法。
比如查看 ls 的简要帮助:
ls --help
--help简洁易懂,适合快速上手命令操作!
命令 --help # 显示命令参数
6.pwd:打印工作目录
全称 Print Working Directory,用来显示你当前所在的工作目录,也就是告诉你“我在哪儿”。
7.ls:显示目录当中的内容
选项:-a:显示所有文件,包括隐藏文件(以.开头的文件)
-l:显示文件详细信息,类型、权限(属主、属组、其他)、硬链接数、属主、属组、文件大小、修改时间、文件名。
-h:显示文件大小单位,K,M,G
-t:按时间顺序排列
-r:逆序显示,rt可以连用
-i:显示inode编号
8.cd:改变目录
#使用绝对路径,cd切换
cd /usr/local/src
#使用相对路径
cd ../ 进入父目录
cd src 进入子目录
cd 返回家目录 超级管理员:/root 普通用户:/home/用户名
cd ~ 回到家目录
cd - 返回之前的目录
./ 表示当前目录
9.tree:显示目录的树状结构
选项:
tree -L 显示目录层数
tree /path/to/directory 显示指定目录的树形结构
tree -h 显示文件大小
tree -d 只显示目录(不显示文件)
tree > tree_output.txt 输出结果到文件
总结:
显示树形结构:用 tree 快速展示目录结构。
限制深度:用 -L 控制层级,避免输出过长。
显示文件信息:用 -h 加上文件大小,-d 只看目录。
10.clear:清屏
clear或者Ctrl+l
11.alias:别名,让别名临时生效
用法:alias 别名=”实际命令”(单双引号都可)
alias -a # 查看所有生效的别名
如果想让别名永久生效
vim ~/.bashrc
-------------------------------------
alias la=”ls -a color=auto”
-------------------------------------
重新加载配置文件
source ~/.bashrc
12.unalias:取消别名
unalias -a #取消所有别名
13.which查找命令的真实路径
which bash
# 输出: /usr/bin/bash
14.env:获取系统环境变量
·PASH:可执行程序的所在路径
·PWD:当前目录的路径
·SHELL:当前使用的SHELL名词
·LANG:当前系统使用的语言
·HOME:当前用户的家目录
15.export:修改系统环境变量
# 设置环境变量
export MY_VAR="Hello World"
# 验证变量是否设置成功
echo $MY_VAR
# 将目录添加到 PATH
export PATH=$PATH:/new/path
# 永久保存变量到 ~/.bashrc
echo "export MY_VAR='Hello World'" >> ~/.bashrc
补充:常用根目录及其含义(见下表)
“根”目录 | 含义 |
/bin -> /usr/bin | 所有普通用户都可以使用命令程序 |
/boot | 系统启动文件存放目录 |
/dev | 硬件设备的映射文件 |
/etc | 系统与服务配置文件 |
/home | 普通文件的家目录 |
/lib -> /usr/lib | 系统共享库文件 |
/lib64 -> /usr/lib64 | 64位系统共享库文件 |
/media | 媒体文件,挂载磁盘、光盘、U盘、移动硬盘 |
/mnt | media占用时,挂载磁盘、光盘、U盘、移动硬盘 |
/opt | 安装第三方软件 |
/proc | 虚拟文件系统,实时内核信息 |
/root | 超级管理员的家目录 |
/run | 也是虚拟文件,存储系统运行时的临时文件 |
/sbin -> /usr/sbin | 管理员才有权限使用的命令 |
/srv | 存放服务数据 |
/sys | 也是虚拟文件,存储硬件设备信息 |
/tmp | 临时文件目录,可以用作临时共享文件 |
/usr | 用户程序安装目录 |
/var | 动态数据存储,/var/log日志文件,/var/mail邮件数据,/var/libs/mysql数据库文件 |