xshell全屏和退出全屏:
ALT+回车
清屏:
clear
查看当前用户是谁:
whoami
查看当前路径:
pwd
切换当前目录:
#切换到当前用户主目录
cd /cd ~
#切换到指定路径
cd /目标目录路径
#切换到相对路径
cd 相对路径
#切换到上一级路径
cd ..
#切换到上一次访问的路径
cd -
查看当前目录下有什么:
#显示文件名
ls
#长格式显示文件和目录的详细信息,以及属性
ls -l / ll
#显示所有文件和目录,包括隐藏文件(以.开头的文件)
ls -a / la
# -h:与-l 选项配合使用,以更易读的方式显示文件大小
ls -lh
查看详细信息时,各个属性代表什么
-rw-r--r-- 1 user group 1024 Mar 15 10:30 file.txt
1. 文件类型与权限(共 10 个字符)
这是最左侧的 10 个字符,分为两部分:文件类型(第 1 个字符)和权限(后 9 个字符)。(1)第 1 个字符:文件类型
• -:普通文件(如文本文件、图片、可执行程序等)。
• d:目录(文件夹)。
• l:符号链接(软链接,类似 Windows 的快捷方式)。
• b:块设备文件(如硬盘、U 盘等存储设备)。
• c:字符设备文件(如键盘、鼠标、终端等)。
• p:管道文件(用于进程间通信)。
• s:套接字文件(用于网络通信)。(2)后 9 个字符:权限(分 3 组,每组 3 个)
权限分为 3 类用户组,每组 3 个字符对应不同权限:
• 第 1-3 位:文件所有者(user)的权限。
• 第 4-6 位:文件所属组(group)的权限。
• 第 7-9 位:其他用户(others)的权限。每组权限的 3 个字符分别代表:
• r(read):读权限(可查看内容)。
• w(write):写权限(可修改内容,目录的写权限允许创建 / 删除文件)。
• x(execute):执行权限(文件可运行,目录的执行权限允许进入该目录)。
• 若为-,表示该权限未被授予。示例:
-rw-r--r-- 表示:
• 文件类型是普通文件(-)。
• 所有者(user)有读(r)和写(w)权限,无执行权限(-)→ rw-。
• 所属组(group)只有读权限(r--)。
• 其他用户(others)只有读权限(r--)。2. 链接数(硬链接计数)
第 2 列的数字(如示例中的 1)表示文件的硬链接数量:
• 对于普通文件:通常为 1(默认只有自身一个硬链接)。
• 对于目录:默认值为该目录下直接子目录的数量 + 2(. 代表自身,.. 代表父目录,各算一个硬链接)。例如,一个空目录的链接数是 2,若包含 3 个子目录,则链接数为 3 + 2 = 5。
3. 文件所有者(user)
第 3 列的名称(如示例中的 user)表示该文件的所属用户,只有该用户(或 root)默认拥有最高权限管理文件。4. 文件所属组(group)
第 4 列的名称(如示例中的
group
)表示该文件所属的用户组,组内用户共享该组的权限。5. 文件大小
第 5 列的数字(如示例中的
1024
)表示文件的大小,默认单位是字节(B):
- 若配合
ls -lh
命令,会以人类可读的单位(K、M、G 等)显示(如4.0K
、1.5M
)。- 对于目录:这里显示的是目录本身元数据的大小(通常是 4096 字节),而非目录内所有文件的总大小(需用
du
命令查看)。6. 最后修改时间
第 6-8 列(如示例中的
Mar 15 10:30
)表示文件内容最后一次被修改的时间(月 日 时:分)。
- 若文件修改时间超过 6 个月,会显示年份(如
Mar 15 2022
)。- 若需查看创建时间或访问时间,可配合
ls -l --time=ctime
(状态改变时间)或ls -l --time=atime
(访问时间)。
隐藏文件:以.开头的文件
创建目录:
#创建单目录
mkdir 目录名
#创建多级目录
mkdir -p Test/a/b/c
创建一个空文件,也是要占用磁盘空间的
文件=属性+内容
创建文件:
touch 文件名
删除文件或目录:
#普通删除文件
rm 文件名
#强制删除,不提示删除信息
rm -f 文件名
#删除目录,-r代表递归删除目录里的内容
rm -r 目录名
#强制删除目录
rm -rf 目录名
#删除多个文件
rm 文件1 文件2 文件3
#删除指定模式的文件(通配符)
#删除以.txt结尾的所有文件
rm *.txt
#删除以file开头的文件
rm file*
#删除doc后只跟一个字符的文件
rm doc?
查看文件状态:
stat 文件名
各字段含义
File:文件名或路径。
Size:文件大小(字节),目录显示的是元数据大小(非内容总大小)。
Blocks:文件占用的磁盘块数(每个块通常为 512 字节)。
IO Block:文件系统的 I/O 块大小(通常为 4096 字节)。
regular file:文件类型(与
ls -l
第 1 个字符对应,如目录为directory
,软链接为symbolic link
等)。Device:存储文件的设备编号(
801h
为十六进制,2049d
为十进制)。Inode:文件的 inode 编号(文件系统中唯一标识文件的编号)。
Links:硬链接数量(与
ls -l
第 2 列一致)。Access (权限):
0644
:八进制权限表示(对应-rw-r--r--
)。Uid
:文件所有者的 ID 和用户名。Gid
:文件所属组的 ID 和组名。时间戳(关键区别于
ls -l
):
- Access(atime):文件最后被访问(读取)的时间。
- Modify(mtime):文件内容最后被修改的时间(
ls -l
默认显示此时间)。- Change(ctime):文件元数据(如权限、所有者)最后被修改的时间。
- Birth(birthtime):文件创建时间(部分 Linux 系统支持,如 ext4、btrfs)。
常用选项
stat -c "%y %n"
:只显示修改时间(mtime)和文件名(简化输出)。stat -f 目录名
:显示目录所在文件系统的信息(如总空间、可用空间)
查看目录结构:
tree [目录路径] # 不指定路径时,默认显示当前目录
常用选项
-L 级别
:限制显示的目录层级深度bash
tree -L 2 # 只显示当前目录下2级内容
-d
:只显示目录(不显示文件)bash
tree -d # 仅展示目录结构
-f
:显示文件 / 目录的完整路径bash
tree -f # 每个条目前显示绝对路径
-i
:不显示树枝连接线(简洁模式)bash
tree -i # 纯文本列表形式展示
-P 模式
:只显示匹配通配符的文件 / 目录bash
tree -P "*.txt" # 只显示所有txt文件
-I 模式
:排除匹配通配符的文件 / 目录bash
tree -I "node_modules" # 排除node_modules目录
-h
:以人类可读的单位显示文件大小bash
tree -h # 显示文件大小(如4K、2M)
部分系统默认未安装 tree,可通过包管理器安装:
• Ubuntu/Debian:sudo apt install tree
• CentOS/RHEL:sudo yum install tree
命令的本质:
命令的本质就是可执行程序
给命令起临时别名:
alias 别名='原命令 [选项/参数]'
查看手册:
man 1 命令名
1代表一号手册
拷贝:
#复制文件到指定位置
cp 源文件 目标路径
# 复制多个文件到目录
cp 文件1 文件2 ... 目标目录
#复制目录(必须加-r选项)
cp -r 源目录 目标目录
#拷贝目录并重命名
cp -r project/ project_backup/
常用选项
选项 功能说明 -r
/-R
递归复制目录(必须用于目录复制) -i
覆盖文件前提示确认(避免误覆盖) -f
强制覆盖已存在的文件(不提示) -u
仅复制源文件比目标文件新的内容(更新复制) -v
显示复制过程(verbose 模式,适合调试) -p
保留文件的权限、所有者、时间戳等属性 -a
归档模式(等同于 -dR --preserve=all
),适合完整备份目录(保留链接、权限等所有属性)
剪切:
mv 命令主要用于移动文件或目录,也可用于重命名文件或目录,其基本语法为:
mv [源文件/目录] [目标路径/新名称]
# 将 file1.txt、file2.txt 移动到 backup 目录
mv file1.txt file2.txt backup/
后面为目录,就是移动,是文件名就是重命名
查看日志:
cat 日志文件 # 一次性查看所有文件
tac 日志文件 # 一次性反向查看文件
more 日志文件 # 查看日志,日志会将屏幕打满后就不显示,但是支持上翻下翻,q退出
less 日志文件 # 进入分页查看模式
# 在 less 中按 / 输入关键词搜索,按 q 退出
tail -日志行数 日志文件 #查看末尾的几条日志
tail 日志文件 #默认打印末尾的10条日志文件
head -日志行数 日志文件 #查看开头的几条日志
head 日志文件 #默认打印开头的10条日志文件
head -510 日志文件 | tail -10 #查看500-510行日志,|是管道,将|前面的结果交给后面处理
查看日志操作 | wc -l #日志条数
date指令:
# 显示格式:年-月-日 时:分:秒
date +"%Y-%m-%d %H:%M:%S" # 输出:2025-08-06 10:30:45
# 显示星期和日期
date +"%a, %b %d, %Y" # 输出:Wed, Aug 06, 2025
通过 + 符号 followed by 格式符,可按需求输出特定格式的时间,常用格式符如下:
• %Y:四位年份(如 2025)
• %m:两位月份(01-12)
• %d:两位日期(01-31)
• %H:24 小时制小时(00-23)
• %M:分钟(00-59)
• %S:秒(00-59)
• %a:缩写星期(如 Wed)
• %b:缩写月份(如 Aug)
cal(日历):
cal #显示当前月份
# 查看2024年2月的日历
cal 2 2024
cal 2025 # 显示2025年全年日历
cal -3 # 输出当前月上一个月下一个月
cal -y # 显示2025年全年日历
cal -j 8 2025 #显示今天是一年中的第几天
cal -m # 显示几天是一周中的第几天
查找:
find:
# 在当前目录(.)下查找名为 "example.txt" 的文件
find . -name "example.txt"
# 忽略大小写查找(-iname)
find /home -iname "Example.TXT"
# 查找所有 .log 后缀的文件
find /var -name "*.log"
whereis
/ which
:查找命令位置
专门用于查找系统命令的可执行文件、源码或手册页。
which
:查找命令的可执行文件路径(优先显示环境变量$PATH
中的结果):which python # 输出:/usr/bin/python which ls # 输出:/bin/ls
whereis
:同时显示命令的可执行文件、源码和手册页位置:whereis gcc # 输出:gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz
基本重定向符号
>
:覆盖写入
将echo
的输出内容写入指定文件,若文件已存在则覆盖原有内容echo "Hello World" > test.txt # 创建或覆盖 test.txt,写入 "Hello World"
>>
:追加写入
将内容添加到文件末尾,不影响原有内容。echo "Another line" >> test.txt # 在 test.txt 末尾添加新内容
特殊用法
重定向空内容(清空文件):
echo "" > test.txt # 清空 test.txt 的内容
grep:
grep -n "匹配的字符" 文件名 #查找包含匹配字符的行
grep -v "匹配的字符" 文件名 #排除包含匹配字符的行
grep -i "匹配的字符" 文件名 #查找包含匹配字符的行,忽略大小写
打包和压缩:
zip/unzip指令:
zip file.zip file.txt #压缩单个文件
zip files.zip file1.txt file2.txt #压缩多个文件
zip -r dir.zip dir/ #压缩目录
unzip file.zip #解压缩到当前目录
unzip file.zip -d target_dir #解压缩搭配指定目录
unzip -l file.zip #查看压缩包内容,不解压
tar:
- 核心作用:将多个文件 / 目录打包成单个归档文件(
.tar
),或从归档文件中提取内容。- 常用选项:
-c
:创建新归档(打包)。-x
:提取归档中的文件(解包)。-t
:列出归档中的内容(查看)。-f [文件名]
:指定归档文件名(必须放在选项最后)。-v
:显示操作过程(详细模式)。- 压缩相关:
-z
:结合gzip
压缩 / 解压(文件后缀.tar.gz
或.tgz
)。-j
:结合bzip2
压缩 / 解压(文件后缀.tar.bz2
)。-J
:结合xz
压缩 / 解压(文件后缀.tar.xz
)。
tar -cvf archive.tar file1.txt dir1/ # 将 file1.txt 和 dir1 打包为 archive.tar #只打包不压缩
#带压缩的打包
# gzip 压缩(最常用)
tar -czvf archive.tar.gz file1.txt dir1/
# bzip2 压缩
tar -cjvf archive.tar.bz2 file1.txt dir1/
# xz 压缩(压缩率最高,速度较慢)
tar -cJvf archive.tar.xz file1.txt dir1/
#查看文件
# 查看普通 tar 包
tar -tvf archive.tar
# 查看压缩的 tar 包(根据压缩类型加 -z/-j/-J)
tar -tzvf archive.tar.gz # gzip 压缩包
tar -tjvf archive.tar.bz2 # bzip2 压缩包
#解压解包
# 普通 tar 包
tar -xvf archive.tar
# 压缩包(根据类型加 -z/-j/-J)
tar -xzvf archive.tar.gz # gzip 解压
tar -xzvf archive.tar.gz -C /path/to/destination # 解压到 /path/to/destination 目录
Linux和Windows压缩包互传:
sz(发送)和rz(接收)
查看是否安装sz和rz
安装sz和rz
sudo apt update
sudo apt install lrzsz
Linux传送到Windows
Windows传到Linux:(也可以Windows直接拖拽到xshell)
远程拷贝:
# 本地到远程
scp [选项] 本地文件/目录 远程用户@远程主机IP:远程路径
# 远程到本地
scp [选项] 远程用户@远程主机IP:远程文件/目录 本地路径
# 远程到远程
scp [选项] 远程用户1@主机1:路径1 远程用户2@主机2:路径2
常用选项
-r
:递归复制目录(必须用于复制目录时)。-P
:指定远程主机的 SSH 端口(默认是 22)。-p
:保留文件的权限、修改时间等属性。-v
:显示详细的传输过程(用于调试)。-q
:静默模式,不显示传输进度。
本地到远程:
# 将本地 file.txt 复制到远程主机的 /home/user 目录
scp file.txt user@192.168.1.100:/home/user/
远程到本地:
# 将远程主机的 /var/log/syslog 复制到本地当前目录
scp user@192.168.1.100:/var/log/syslog ./
拷贝目录需要加 -r:
# 本地目录 dir → 远程主机的 /home/user 目录下
scp -r dir/ user@192.168.1.100:/home/user/
# 远程目录 → 本地当前目录
scp -r user@192.168.1.100:/home/user/docs ./
怎么在Linux环境查看你的体系结构和系统内核版本:
uname -a
uname -r
重要的⼏个热键 [Tab], [ctrl]-c, [ctrl]-d
• [Tab]按键---具有『命令补全』和『档案补⻬』的功能
• [Ctrl]-c按键---让当前的程序『停掉』
• [Ctrl]-d按键---通常代表着:『键盘输⼊结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以⽤来取代exit
关机
语法:shutdown [选项] 常⻅选项:
• -h:将系统的服务停掉后,⽴即关机。
• -r:在将系统的服务停掉之后就重新启动
• -t sec:-t 后⾯加秒数,亦即『过⼏秒后关机』的意思