基础命令1~15
Linux基础命令
什么是命令?
Linux操作系统·进行交互的指令;
通过在终端(Terminal)中输入特定的命令字符串来执行相应的程序
命令的功能:文件管理,进程管理,系统配置等。
CLI:基于命令行界面
GUI:相比图像界面
什么是Shell
Shell 命令解释器程序,sh, bash, zsh, csh, tcsh
openBSD(Unix):默认:sh
Linux绝大多数发行版使用的都是bash
Shell脚本:一个写有Shell命令.sh,用于命令的批量执行。
大多数Linux命令的基本格式为:
命令 [选项] [参数]
- 命令:核心指令,如
ls(列出文件)、cd(切换目录)。 - 选项:调整命令行为的参数,通常以
-(短选项,如-l)或--(长选项,如--help)开头,用于扩展命令功能。 - 参数:命令作用的对象,如文件名、目录路径等。
示例: ls -l /home 中,ls是命令,-l是选项(表示以详细列表形式显示),/home是参数(指定操作的目录)。
例如:
ls #查看当前目录的普通文件
ls -a #查看所有文件,-a表示查看隐藏文件
ls -al #多个选项可以缩写,-l表示查看详细信息
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)。
第一部分:系统管理命令
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
根目录下文件的作用(指向usr的子目录)
/bin -> usr/bin
含义:存放系统必备的可执行命令(如ls、cd、cp),供所有用户使用。
作用:早期 Linux 将bin独立存在,现代系统通过符号链接统一归到usr/bin,便于系统升级和管理。/lib -> usr/lib
含义:存放系统启动和bin/sbin中程序依赖的共享库文件(如libc.so)。
作用:确保基础命令运行时能找到所需的库资源。/sbin -> usr/sbin
含义:存放系统管理类可执行命令(如fdisk、ifconfig),通常需 root 权限运行。
作用:用于系统维护、网络配置等底层操作。
2. 系统核心目录
/boot
含义:存放系统启动文件(内核vmlinuz、引导加载程序grub、初始化 ramdisk 等)。
作用:系统启动时加载内核和相关配置,确保硬件初始化和系统引导。/dev
含义:存放设备文件(如硬盘/dev/sda、串口/dev/ttyS0、终端/dev/tty)。
作用:Linux 通过文件形式抽象硬件设备,程序可通过操作文件访问硬件。/etc
含义:存放系统全局配置文件(如/etc/fstab、/etc/ssh/sshd_config)。
作用:存储系统服务、网络、用户权限等核心配置,修改后需重启或重载服务生效。/root
含义:root 用户的主目录(普通用户主目录在/home)。
作用:root 用户的工作目录,存放其个人配置和文件。
3. 用户与数据目录
/home
含义:普通用户的主目录(如/home/user1、/home/user2)。
作用:每个用户的个人文件、配置(如~/.bashrc)存储在此,权限隔离。/media
含义:自动挂载移动设备(U 盘、光驱)的临时目录。
作用:系统识别外部存储后,默认将其挂载到/media下的子目录(如/media/usb)。/mnt
含义:手动挂载文件系统的临时目录(如网络共享、本地分区)。
作用:管理员可通过mount /dev/sda1 /mnt将分区挂载到/mnt下。/opt
含义:存放第三方软件(如 Oracle、Apache)的安装目录。
作用:避免与系统自带软件冲突,通常按软件名称创建子目录(如/opt/nginx)。
4. 虚拟与临时目录
/proc
含义:虚拟文件系统,存放系统运行时的进程信息(如/proc/1/exe对应 init 进程)。
作用:通过文件形式暴露内核数据(CPU、内存、进程状态),可用于监控和调试。/sys
含义:虚拟文件系统,存放硬件设备的驱动和系统配置信息。
作用:替代旧版/proc中的硬件信息,提供更结构化的设备模型(如/sys/devices)。/tmp
含义:存放临时文件(如程序运行时生成的缓存、临时数据)。
作用:系统重启时会清空,建议程序使用此目录存储非持久化数据。
5. 系统扩展目录
/usr
含义:存放用户程序和共享资源(类似 Windows 的Program Files),是系统的主要软件仓库。
子目录解析:usr/bin:普通用户可执行程序(非系统必备,如firefox、git)。usr/sbin:系统管理程序(如apache2、nginx)。usr/lib:用户程序的共享库。usr/share:共享资源(文档、帮助手册、图标)。usr/include:开发头文件(供 C/C++ 编译时引用)。
/var
含义:存放动态变化的数据(日志、邮件、缓存、进程锁等)。
子目录解析:var/log:系统日志(如/var/log/messages、/var/log/nginx)。var/mail:用户邮件存储。var/spool:等待处理的队列(如打印任务、邮件队列)。var/tmp:比/tmp更持久的临时文件(系统重启不清理)。
6. 其他目录
/srv
含义:存放系统服务的数据(如 Web 服务器的网页文件、FTP 共享目录)。
作用:为特定服务提供数据存储位置,如/srv/http存放网站内容。/run
含义:存放系统运行时的临时文件(进程 PID、套接字)。
作用:替代旧版/var/run,便于系统启动时快速访问运行时数据。
基础命令:
/ 是根目录
mkdir 是创建文件夹
ls 是显示文件夹里的内容
cd 是切换目录
touch 是创建普通文件
vim +文件名 是打开文件进行编辑
a 是进去插入模式(编辑)
shift+: (w是保存,q是退出,q!是强制退出)
cp 是复制粘贴
【cp word /hehe/ 是将word复制粘贴到hehe中】
mv 是移动
【mv word /hehe/ 是将word复制粘贴到hehe中】
pwd 是查看当前路径
rm 是删除
-r(或 -R):递归删除
- 作用:表示「递归删除」,用于删除目录及其包含的所有子文件、子目录。
- 场景:如果要删除一个非空目录(里面有文件或子文件夹),必须使用 -r 选项,否则命令会报错(提示目录非空)。

-rf :无需确定 强制删除

ping + ip 可查看连接
clear 可清屏
nmtui 进入网络地址设置区
history 查看之前输入的命令
vim /etc/sysconfig/network-scripts/ifcfg-ens33 是进行编辑ens33文件的内容


其中: BOOTPROTO=dhcp(动态网址)
BOOTPROTO=static(静态网址)
ONBOOT=yes
静态网址模式需要:
IPADDR=192.168.10.2(后两个数可更改)
NETMASK=255.255.255.0(固定值)
重启网卡: systemctl restart network
查看IP: ip ad
ping + ip 可查看连接
clear 可清屏
11.alias: 取别名
敲太长? 给他改个名字
用法:
alias 别名='实际命令'
alias # 查看所有生效的别名
比如:
alias ll=“ls -alF”
# 想要别名永久生效
vim ~/.bashrc
alias ls="ls -a color=auto"
source ~/.bashrc #重新加载让别名生效
12.unalias:取消别名
#取消所有别名
unalias -a
13.which:查找命令的真实路径
"找出命令的安装路径"
用法:which 命令名+++
- 显示指定命令的绝对路径,告诉你系统中实际执行那个命令。
比如:
which bash
# 输出: /user/bin/bash
说明 bash 命令安装在 /usr/bin/bash 目录下。
14.env: 获取系统环境变量
- PATH:可执行程序的所在路径
- PWD:当前目录的路径
- SHELL:当前使用的Shell名词
- LANG:当前系统使用的语音
- HOME:当前用户的家目录
XDG_SESSION_ID=1
HOSTNAME=localhost.localdomain
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.81.11 63823 22
SELINUX_USE_CURRENT_RANGE=
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
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.81.11 63823 192.168.81.10 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/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号