目录
[1. 常用按键操作](#1. 常用按键操作)
[2. ls指令](#2. ls指令)
[3. pwd指令](#3. pwd指令)
[4. cd指令:更改用户所在目录](#4. cd指令:更改用户所在目录)
[5. touch指令](#5. touch指令)
[6. mkdir指令](#6. mkdir指令)
[7. 删除相关指令](#7. 删除相关指令)
[8. man指令](#8. man指令)
[9. cp指令:拷贝](#9. cp指令:拷贝)
[10. 文件和打印相关](#10. 文件和打印相关)
[10.1 基本概念](#10.1 基本概念)
[10.2 重定向操作](#10.2 重定向操作)
[10.3 多终端实验](#10.3 多终端实验)
[10.4 文件类型](#10.4 文件类型)
[11. mv指令](#11. mv指令)
[12. cat和tac](#12. cat和tac)
[13. more和less](#13. more和less)
[14. head和tail](#14. head和tail)
[15. date和cal](#15. date和cal)
[16. find指令](#16. find指令)
[17. grep指令](#17. grep指令)
[18. bc指令](#18. bc指令)
[19. uname指令](#19. uname指令)
[20. 打包压缩和文件传输](#20. 打包压缩和文件传输)
[20.1 zip和unzip](#20.1 zip和unzip)
[20.2 Linux和Windows互传文件](#20.2 Linux和Windows互传文件)
[20.3 tar压缩](#20.3 tar压缩)
[21. Shell简介](#21. Shell简介)
1. 常用按键操作
-
上下键:切换之前输入的指令
-
Ctrl+C:结束当前命令
-
按2次Tab键:搜索/补全指令
-
Ctrl+R:搜索历史命令
-
Ctrl+D:退出当前用户
2. ls指令
首先,建立空文件一样会在磁盘上占空间。文件=内容+属性,操作文件要么对内容操作,要么对属性操作。
常用选项:
-
ls:默认显示当前目录内容 -
ls -l:显示文件名与详细信息(默认当前目录,也可以指定) -
ls -a:显示所有文件(包括隐藏文件) -
ls -al或ls -la:显示所有文件的详细信息
注意:
-
在Linux中,绝大多数指令与参数顺序无关,是否连着也无关

-
进入一个路径时,用
ls -a会显示.和..两个隐藏文件-
.代表当前目录 -
..代表上级目录
-
-
ls -l:查看目录本身信息
3. pwd指令
显示用户所在的当前目录。
注意 :Windows的路径由\隔开,而Linux由/隔开。
4. cd指令:更改用户所在目录
Linux文件结构为一棵从根目录开始的多叉树:
-
叶子节点为文件、空目录
-
非叶子节点为非空目录
路径类型:
-
绝对路径:从根目录到目标文件(在配置文件中使用)
-
相对路径:以非根目录为参照
常用用法:
-
cd ~:转到用户的家目录-
任何Linux用户都用特定用户名在家目录下登录
-
普通用户:
/home/...... -
Root用户:
/root
-
-
cd -:回到上一次的目录
Windows桌面本质:家目录下的桌面文件夹。哪个用户登录就将那个用户对应的文件夹放到屏幕上。
5. touch指令
创建文件(不可创建目录)。
相关指令:
-
stat:查看文件时间信息
-
当再次touch已存在的文件时,文件时间会更新

6. mkdir指令
创建目录。
选项:
mkdir -p:创建一串路径(包括中间不存在的目录)
查看方式:
-
tree:输出"图形化"目录结构 -
tree a*:输出a开头的目录结构
相关指令:
-
which:查看指令在系统中的安装位置(指令的本质为可执行文件) -
alias:给指令取别名(暂时别名,关机失效)-
例如:
alias a='ls -la'(记得加引号) -
ll即是ls -l的别名
-
-
nano:简易文本编辑器-
安装:
yum install nano -
可以用它写代码
-
如果出现异常,可以用Ctrl+C结束
-
7. 删除相关指令
-
rmdir:默认删除空目录 -
rm:删除文件 -
rm -r:删除目录及其内容 -
rm -f:强制删除,不提示 -
*:通配符,表示当前目录下所有文件 -
rm -rf *:删除当前目录下所有文件(谨慎使用!)
8. man指令
查看指令的帮助文档。
man man:查看man指令本身的用法
9. cp指令:拷贝
基本用法:
-
cp test.cpp a:将test.cpp拷贝到a目录里 -
cp test.cpp a/test2.cpp:将test.cpp拷贝到a目录里,并改名为test2.cpp
目录拷贝:
-
cp -r:拷贝目录 -
cp -r a nn:将a目录拷贝并命名为nn -
如果目标目录nn已存在,会将a拷贝到nn目录中

10. 文件和打印相关
10.1 基本概念
在Linux中,一切皆文件,包括键盘、显示器等。使用时文件必须被打开,printf、cin等本质为对文件操作,这些必备的文件通常系统默认打开(有stdin、stdout、stderr)。
10.2 重定向操作
-
echo "内容" > 文件:将文字输入到文件中
-
>特点:后续文件不存在会新建,先清空再写入 -
因此,
> 文件:直接清空文件
-
-
echo "hello" >> test.txt:追加重定向,不会清空原内容 -
cat:查看文件内容
输入重定向:
-
cat < 文件:将文件内容输入到屏幕 -
cat直接回车:命令行阻塞,从键盘直接读取内容到屏幕显示(Ctrl+C结束)
10.3 多终端实验
用多终端实验验证Linux屏幕本质上是文件:
bash
ls /dev/pts # 查看当前终端数量
echo "hello world" > /dev/pts/0 # 向自己的终端输出
echo "hello world" > /dev/pts/1 # 向另一个终端输出
结论:Linux的显示器等本质上是文件,且系统可以说是由文件构成的。
10.4 文件类型
Linux文件类型不看后缀,要看ll命令第一列:
-
-:普通文件 -
d:目录文件 -
c:字符设备文件 -
b:块设备文件 -
l:链接文件 -
p:管道文件
虽然-文件统称为普通文件,但细分为代码、文本等。如果直接编译txt文件是编不过去的。
11. mv指令
剪切或文件重命名:
- 剪切还是重命名取决于后面的是目录还是文件
12. cat和tac
-
cat:将文件内容顺序打印出来 -
tac:倒序打印文件内容
应用:查看系统日志。系统的日志可能会有几万甚至几十万行,如果我们要查看最开始的日志,可以用tac倒序打印。
13. more和less
-
more:仅打印满屏幕,按回车继续打印 -
less:可以上下翻动查看内容
14. head和tail
打印指定头/尾行数。
案例 :要打印文件的第100到110行:
方法一:使用临时文件
bash
head -110 file > tmp1
tail -10 tmp1 > tmp2
cat tmp2
方法二:使用管道
bash
cat /var/log/messages | head -110 | tail -10 | tac
步骤解析:
-
cat /var/log/messages:读取路径的文件到管道 -
| head -110:读取管道前110行 -
| tail -10:读取后10行(即第100-110行) -
| tac:反向输出
15. date和cal
-
date:显示当前时间 -
date +%s:显示时间戳
时间戳用处:
-
转换时间为标准时间
-
用户->日志->时间戳
转换标准时间:
bash
date -d @1766151715
cal指令:
cal 2022:打印2022年日历
16. find指令
在树形目录里查找文件。
与which区别:which只在指定目录查找。
常用用法:
-
find -name 文件名:查找对应名称的文件 -
find ~ -name *.cpp:在~目录(家目录)找.cpp结尾的文件
17. grep指令
过滤信息,用于查找日志、进程等。
bash
cat /var/log/messages | grep "Reached" # 查找日志里包含Reached的行
选项:
-
-i:忽略大小写 -
-v:打印不匹配的行
复杂示例:
bash
cat /var/log/messages | grep "Reached" -vi | tail -10
# 打印日志里没有Reached的记录的后10条
18. bc指令
简易计算器。
bash
echo "1+3*4" | bc # 计算字符串的结果
19. uname指令
查询系统相关信息。
选项:
-
-a:打印全部信息 -
-r:内核版本+芯片架构
20. 打包压缩和文件传输
20.1 zip和unzip
压缩:
bash
zip -r 压缩完文件名 要压缩的文件
# 示例:zip -r 25-12-21.zip 25-12-21
解压:
bash
unzip 25-12-21.zip -d /root # 解压到指定目录
20.2 Linux和Windows互传文件
-
先下载相关工具:
yum install -y lrzsz -
Linux传到Windows:
sz 25-12-21.zip -
Windows传到Linux:
rz -e # 或直接拖拽文件到终端
20.3 tar压缩
压缩:
tar czf 1.tar 25-12-21 # 将25-12-21压缩成1.tar
解压:
tar xzf 1.tar -C /root # 将1.tar解压到/root(注意C要大写)
21. Shell简介
Linux包括系统内核和外壳程序(命令行)。
Shell可以简单理解为命令行解释器。
外壳程序作用:
-
方便用户使用系统
-
保护内核(拦截错误指令)
-
创建子进程运行命令