Linux基础命令【掌握】
linux目录结构
Linux的目录结构: 是一个树型结构。没有盘符,也就是没有C盘、D盘等
Windows系统根目录: 可以拥有多个根目录, 如 C:/、D:/、E:/ 举例: c:/目录1/目录2/文件
Linux系统根目录: 只有一个根目录 /, 所有文件都在它下面 举例: /目录1/目录2/文件
注意:
1- linux【绝对路径】中,第一个/代表根目录,后面其他的/代表两个目录之间的间隔符 举例: /home/zhangsan
2- linux【相对路径,开头肯定不是/】
2.1- ./ 表示当前目录
2.2- ../ 表示上一级目录
总结:Linux的【绝对路径一定是以/开头】。
常用命令[重要!!!多用!!!]:
cd : 切换目录位置
pwd: 打印当前所在位置的绝对路径
ls : 展示当前目录下所有文件
clear: 清屏 快捷键:ctrl+L
~ : 家目录 普通用户的家目录是:/home/普通用户名 root用户的家目录是: /root
快速回家: cd ~ 注意: ~可以省略
快速回到上一次所在的位置: cd -
两个小技巧: tab补全文件名称 history或者↑和↓能够上下翻看历史命令

目录 作用 /bin Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令 /boot 系统引导程序所需要的文件目录,存放的是启动 Linux 时使用的一些核心文件 /dev Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,磁盘,光驱 /etc 用来存放所有的系统管理所需要的配置文件和子目录,系统配置,启动程序 /home 普通用户的家目录,在 Linux 中,每个普通用户都有一个自己的目录,一般该目录名是以用户的账号命名的 /lib Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 /mnt 临时挂载储存设备的挂载点,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了 /opt optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个MySQL数据库则就可以放到这个目录下。默认是空的。 /proc 存储的是当前内核运行状态的一系列特殊文件。操作系统运行时,进程信息和内核信息存放在这里。 /root Linux超级权限用户root的家目录 /sbin 管理系统相关的命令【超级管理员用】 /tmp 临时文件目录,这个目录被当作回收站使用 /usr 用户或系统软件应用程序目录,类似于 windows 下的 program files 目录。
linux基础命令
linux命令格式
command [-options] [parameter]
说明:
- command : 命令名, 相应功能的英文单词或单词的缩写
- [-options] : 选项, 可用来对命令进行控制, 也可以省略
- parameter : 传给命令的参数, 可以是 零个、一个 或者 多个
基础四大命令
ls: 查看当前目录了下所有内容。list
cd 目录名: 切换目录。change directory
pwd: 查看当前所在位置。print work directory
clear: 清屏
补充:
history 查看历史执行命令
ls命令
ls [-a -l -h] [路径] : 查看指定路径下文件列表 注意: 默认都是当前路径
参数 -a : 展示出隐藏文件/目录 注意: .开头就是隐藏文件
参数 -l : 以详细信息展示文件 注意: ls -l 可以简化为ll
参数 -h : 配合-l使用,人性化展示文件大小
cd和pwd和clear命令
cd [你要去的路径] : 切换到指定路径下
家目录: 普通用户的家目录:/home/普通用户名 root用户的家目录:/root
如何快速回家: cd ~ 注意: ~可以省略
如何快速切回到刚才所在的位置: cd -
pwd : 查看当前路径
clear: 清屏 快捷键: ctrl+L
相对路径和绝对路径
1. 相对路径和绝对路径
绝对路径: 以根目录'/'做起点,描述路径的方式,路径以/开头
相对路径: 以当前目录做起点,描述路径的方式,路径不需以/开头
你只要能够明确告诉命令你需要去什么地方,就可以了。
2. 特殊路径符有哪些?
. 表示当前目录, 比如: cd . 或 cd ./Desktop
.. 表示上一级目录,比如: cd .. 或 cd ../..
总结:.或者..后面需要继续跟上其他路径,必须要使用/分隔
帮助手册
help查看帮助: 命令 --help 解释:会列出命令的帮助文档
举例: ls --help
man查看手册: man 命令 解释: man(manual, 手册)命令查看详细手册
举例: man ls
按空格翻页,q退出帮助手册
mkdir命令
mkdir [-p] 目录路径 : 创建指定目录
-p:可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
创建一级目录: mkdir 目录路径
创建多个同级目录: mkdir 目录路径1 目录路径2 ...
创建父子嵌套目录: mkdir -p 目录路径1/目录路径2/...
注意: mkdir只能用来创建文件夹,不能创建文件。
例如
mkdir a
mkdir b c
mkdir -p e/f
touch命令
touch 文件路径: 创建指定【空内容】的文件
创建一个文件: touch 文件路径
创建多个文件: touch 文件路径1 文件路径2 ...
例如
touch 1.txt
touch ./b/2.txt ./b/3.txt
cat_more_less命令
查看文件内容
cat [-n] 文件 : cat查看文件内容,一般建议查看小文件
-n :显示行号
more [-num] 文件: more查看文件内容,一般建议查看大文件(可以翻页)
按回车: 下一行
空格: 下一页
b : 上一页
q : 退出。ctrl+C也可以
-num: 展示条数 举例: more -10 文件
less [-N] 文件: less查看文件内容,一般建议查看大文件(可以翻页,可以搜索)
-N : 显示行号
空格: 下一页
b : 上一页
q : 退出
/内容: 搜索指定内容,而且可以使用正则表达式 N: 下一个 shift+N:上一个
总结: 使用最多的情况
1- 大文件,为了保险起见 more 文件路径
2- 小文件(<=100MB)直接就 cat 文件路径
cp命令
复制的英文单词: ==copy==
cp [-r] 要复制的文件或者文件夹 目标位置 : 复制文件或者文件夹到指定目标位置
注意: 复制文件夹必须要加-r
注意: cp复制文件后,源文件依然存在
mv命令
移动的英文单词: ==move==
mv 要移动的文件或者文件夹 目标位置: 移动文件或者文件夹到指定目标位置
注意: 目标位置的文件/文件夹不存在就会直接改名 如果想要把文件移动到目录中,此目录一定要存在,否则当成了普通文件改名
注意: mv移动文件后,源文件不存在。类似Windows的剪切操作
总结: mv具备两个功能,1- 移动文件或文件夹到新的地方;2- 对文件或文件夹进行重命名的操作
rm命令【慎重使用】
移除的英文单词: ==remove==
rm [-r -f] 要删除的文件或者文件夹: 删除指定的文件或者文件夹
注意: -r 删除文件夹的时候必须要加该参数 -f: 主要用于强制删除文件或者文件夹
r:repeat循环;f:force强制
删除文件(有提示): rm 文件路径。不能用来删除文件夹
删除文件(无提示): rm -f 文件路径
删除目录(有提示): rm -r 目录路径
删除目录(无提示): rm -rf 路径
注意:
1- 实际工作一定要特别注意rm -rf的使用。Linux系统没有回收站
2- 如果在提示中输入的内容出错,按住CTRL或者Shift键,然后按退格键Backspace去删除内容。y表示确认删除;n表示不删除
echo命令
echo 要打印的内容
注意: 默认打印到控制台,但是经常配合重定向符号使用
注意: echo配合反引号``可以先识别出关键字,然后把对应的内容输出
重定向符号
> : 覆盖写入。
>> : 追加写入。会自动的带上回车换行符
注意: 一般都是配合echo使用
演示案例:
echo "hello" > 1.txt
cat 1.txt
echo "hello python" >> 2.txt
echo "hello linux" >> 2.txt
cat 2.txt
head和tail
两个命令都是用来查看文件内容。
head [-num] 文件路径: 查看文件的头部几行 默认前10行 当然-num可以指定任意行数
tail [-num] 文件路径: 查看文件的尾部几行 默认后10行 当然-num可以指定任意行数
tail -f 文件路径: 持续跟踪查看指定文件内部变化。工作中一般用来查看日志文件的内容变化
案例
head -3 linux.md
tail -3 linux.md
tail -f 1.txt
管道符 |
管道使用格式: 命令1 | 命令2 | 命令3 ...
解释: 把命令1的结果传递给命令2,然后再把命令2的结果传递给命令3,依次类推...
注意: 管道一般配合grep命令使用较多
sort: 排序
grep命令
grep [-n] 关键字 文件路径: 在指定文件中搜索指定关键字。用来对内容进行搜索
注意: -n 主要用于显示搜索到结果的行号
注意: 管道|一般配合grep命令使用较多
示例:
grep linux a.txt | grep ip
先对a.txt文件内容搜索linux关键词,然后将搜索结果作为输入给到grep ip命令使用,也就是再搜索ip关键词
grep linux a.txt | wc -l
先对a.txt文件内容搜索linux关键词,然后将搜索结果作为输入给到wc -l命令使用,用来有多少行内容。wc是wordcount
cat a.txt | wc -l
统计a.txt文件有多少行
which和find
find不能查找文件内容,grep可以查找文件内容
which 命令: 查找命令所在位置
主要: find命令也可以结合通配符*使用,不加路径代表当前路径下查找
find [查找路径] -name 名称: 【掌握】,工作中主要使用它。根据文件名查找
find [查找路径] -size [+ -]大小: 根据文件大小查找。大小单位可以指定为k、M、G
+: 大于
-: 小于
例子:
find /a -size +2k
find /a -size +2M
find [查找路径] -type [d f] -name 名称: 根据文件类型查找
d: 文件夹
f: 文件
案例
# 查a开头的文件
find /a -type f -name a*
# 查a开头的文件夹
find /a -type d -name a*
# 查大于2k的文件
find /a -size +2k
# 查小于2M的文件
find /a -size -2M
软连接/硬连接
软连接(类似快捷方式): ln -s 要被连接文件或者目录的路径 存放软连接目标路径位置
作用:简化访问路径
注意:
如果软连接的被指向的源文件或者目录丢失,软连接就失效了
**如果软连接与原始的文件或目录不在同一个地方,那么文件或目录的路径要写【绝对路径】
硬连接(类似复制备份): ln 要被连接文件或者目录的路径 存放的硬连接目标路径位置。【了解即可】
注意: 如果硬连接的被指向的源文件或者目录丢失,硬连接不受影响。作用类似cp复制文件/文件夹的命令
案例
# 软连接
ln -s /b/c/d/a.txt /a_link
# 硬链接
ln /b/c/d/b.txt /b_link
压缩和解压缩
tar命令【掌握】
普通打包
打包并使用gzip压缩
打包并使用bzip2压缩
参数
-c,创建压缩文件,用于压缩模式
-v,显示压缩、解压过程,用于查看进度
-x,解压模式
-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
-z,gzip模式,不使用-z就是普通的tarball格式
-C,选择解压的目的地,用于解压模式
# 工作中使用最多
gzip压缩格式: tar -zcvf 包名.tar.gz 多个文件或者目录
gzip解压格式: tar -zxvf 包名.tar.gz -C 目标位置路径
普通打包格式: tar -cvf 包名.tar 多个文件或者目录
普通解包格式: tar -xvf 包名.tar -C 目标位置路径
注意: 上面的命令并不会进行压缩,只是把文件或文件夹归集/收集到一起了
拓展:
bzip2压缩格式: tar -cjvf 包名.tar.bz2 多个文件或者目录
bzip2解压格式: tar -xjvf 包名.tar.bz2 -C 目标位置路径
zip和unzip命令
打包并使用zip压缩
参数
-r: 压缩目录的时候递归进入
-d: 选择解压的目的地
zip压缩格式: zip -r 包名.zip 多个文件或者目录
zip解压格式: unzip 包名.zip -d 目标位置路径
VI编辑器
vi: 是visual interface的简称, 是Linux中最经典的文本编辑器
vim: 编辑器是从vi发展出来的文本编辑器, 支持代码补全、编译及显示效果等方面编程的功能提别丰富, 在程序员中被广泛使用, 被称为编辑器之神。
查看文件内容: cat 文件
修改文件内容: vi 文件 或者 vim 文件

vi操作文件三大步
打开文件: vim 文件路径 注意: 如果文件存在就打开,不存在就创建
编辑文件: 输入i进入文件进行编辑
保存文件:
1.先进入命令模式: 按ESC键
2.进入底线命令模式: 输入冒号:
3.输入命令:
:q(退出): 只是对文件内容看了一下,没有做任何编辑(删除、修改、新增)操作
:q!(强制退出): 我虽然对文件编辑了,但是编辑的内容不想要
:wq(保存并退出): 使用最多。正常的保存然后退出
:wq!(强制保存并退出): 我需要保存对文件的编辑内容,但是该文件是一个只读的文件。
需求:
使用vi编辑器,创建一个名称为hello.py文件,然后输入内容为: print(‘hello ai大模型’),最后wq保存
注意: 如果文件不存在,不会报错,会自动创建,编辑完内容后手动输入:wq保存即可
要求保存后再次使用vim命令查看内容是否保存成功,然后q退出
[root@localhost ~]# vi hello.py
# 输入i进入插入模式: 编写或者粘贴内容
print('hello ai大模型')
# 内容输入完后,按ESC退出到命令模式
# 然后在命令模式输入:wq保存并退出
:wq
"hello.py" 1L, 23C written
[root@localhost ~]# vim hello.py
print('hello bigdata')
# 如果仅查看了内容,没有修改,可以使用q直接退出,但是如果不小心修改了内容又不想保存,使用q!强制退出
:q
[root@localhost ~]#
vi其他命令
VIM扩展教程:https://www.runoob.com/linux/linux-vim.html
复制一整行: yy
粘贴: p
删除一整行: dd
跳到文件的第一行: gg
跳到文件的最后一行: shift+G
撤销刚才的操作: u
如果vim没有正常的退出,也就是出现了隐藏的swap交换文件,如何解决:
1- 执行ll -a的命令,检查有没有隐藏文件
2- 执行 rm -rf 隐藏文件名称,手动删除隐藏文件
3- 重新正常的编辑原始文件即可
Linux高级命令【熟悉】
用户基本操作
需要在超级管理员root用户下操作
添加用户(不指定组): useradd 用户名 [-g 组名]
注意: 默认在/home目录下创建了一个以用户名命名的文件夹,此文件夹就是对应用户的家目录
注意: 如果添加用户的时候没有指定所属组,默认自动生成了一个以此用户名命名的组
删除用户: userdel [-r] 用户名
注意: 如果不加-r,用户被删除后,它的家目录依然存在
注意: 如果用户所属组是添加用户的时候自动生成的,那么删除用户的对应的组也会自动删除
查看所有用户普通方式: cat /etc/passwd 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
查看所有用户快捷方式: getent passwd
拓展_如何在root用户下给普通用户添加密码: passwd 用户名
注意: 会提示输入2次密码
切换用户
在前面,我们接触过su命令切换到root账户。
su命令就是用于账户切换的系统命令,其来源英文单词:Switch User-符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d
切换到指定用户语法: su [-] 用户名
注意: 使用普通用户,切换到其它用户需要输入密码,如切换到root用户
注意: 使用root用户切换到其它用户,无需密码,可以直接切换
退出当前用户: exit 或者 ctrl+d
用户授权
在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。
但是我们实际一般不知道root密码,即使知道也不建议长期使用root用户,避免带来系统损坏。实际我们找到用户root权限的管理者,申请root权限后, 使用”sudo 命令”格式
root用户如何给普通用户授权?
1.root用户下打开sudoers文件
进入/etc/sudoers普通方式: vi /etc/sudoers
进入/etc/sudoers快捷方式: visudo
2.在文件最后添加以下内容并保存
格式: 普通用户名 ALL=(ALL) NOPASSWD:ALL
举例: zhangsan ALL=(ALL) NOPASSWD:ALL
3.普通用户下使用root权限
格式: sudo 其他命令 注意:即使前面授权了使用的时候,没有添加sudo,依然是权限不够

sudo命令使用
普通用户如何已经被root用户赋权,就可以用sudo临时使用root权限
格式: sudo 其他命令 注意:即使前面授权了使用的时候,没有添加sudo,依然是权限不够
用户组操作
添加用户组: groupadd 组名
删除用户组: groupdel 组名
查看所有用户组快捷方式: getent group
查看所有用户组普通方式: cat /etc/group 组名称:组认证(显示为x):组ID
修改文件/目录的所属组: chgrp 组名 指定文件/目录路径
同时修改所属用户和所属组: chown 用户名:组名 要修改的文件
chown的各种使用:
chown 用户名:组名 要修改的文件
chown 用户名 要修改的文件
chown :组名 要修改的文件


ll命令图解【掌握】

权限详解【掌握】

chmod【掌握】
修改权限
修改权限方式1: chmod [-R] u=rwx,g=rwx,o=rwx 文件或者目录 以符号方式给文件设置最高权限 -R: 对文件夹内的全部内容应用同样的操作
修改权限方式2: chmod [-R] +rwx 文件或者目录 注意: w只能给当前用户加上
【掌握】修改权限方式3,推荐: chmod [-R] 777 文件或者目录 以数字方式给文件设置最高权限
注意: 以上多种方式最常用的命令就是给一个文件添加执行权: chmod +x 文件

虚拟机的快照
快照: 能把拍照当时的所有情况定格,方便以后恢复快照,恢复到当时的情况
建议: 拍摄快照的时候保持关机状态,因为这样会节省很多空间!!!
拍摄快照

恢复快照


