linux 基础
这个本来应该之前就要学的,但是之前只是把 wsl 当作一个工具的启动器,所以没有专门记录过 linux 该怎么用 orz
搞了一个 vps 之后感觉还是要学一下
linux
linux 系统的特性就是一切皆是文件,是一种类 unix 系统
目录结构
| 目录 | 作用 |
|---|---|
/bin |
Binary 的缩写,这个目录存放着经常使用的命令 |
/sbin |
存放着系统管理员使用的系统管理程序 |
/home |
存放着普通用户的主目录,在 linux 中每个用户都有自己的一个目录,一般这个目录以用户账户命名 |
/root |
系统管理员的主目录 |
/lib |
系统开机需要的动态链接共享库,作用类似于 windows 中的 DLL 文件,也就是依赖 |
/lost+found |
一般是空的,当系统非法关机后,就会存放一些文件 |
/etc |
所有的系统管理员所需要的配置文件和子目录 |
/usr |
用户的很多应用程序和文件都放在这个目录下,类似 windows 下的 program files 目录 |
/boot |
存放的是启动 linux 时使用的一些核心文件 |
/proc |
虚拟目录,是系统内存的映射,可以访问这个目录来获取系统信息 |
/sys |
这个是 linux 2.6 内核后有的,用来存放新的文件系统 sysfs |
/tmp |
存放临时文件 |
/mnt |
为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在 /mnt 下,然后就可以查看里面的内容 |
/opt |
给主机安装额外软件的目录 |
/var |
存放不断扩充的对象,经常修改的目录放在这个目录下,比如日志文件 |
快捷方式
- 通过 上下方向键
↑↓调取之前执行过的命令 Tab补齐命令或参数ctrl + R用于查找使用过的命令ctrl + L清除屏幕并移到页面顶部ctrl + C终止正在执行的命令ctrl + A光标跳转到命令行的开头ctrl + E光标跳转到命令行的结尾
VI/VIM 编辑器
vi 是 unix 操作系统和类 unix 系统中最强大的文本编辑器
vim 是从 vi 中发展出来的一种编辑器,两者完全兼容
一般模式
当使用 vi 打开一个文件时就默认进入一般模式,这个模式可以移动光标、删除字符、复制粘贴,但是不能自由编辑
| 语法 | 功能 |
|---|---|
yy |
复制光标当前行 |
u |
撤销上一步 |
dd |
删除光标当前行 |
x |
剪切一个字母,相当于 del |
X |
剪切一个字母,相当于 backspace |
G |
移动到页尾 |
1+G |
移动到页头 |
H |
移动到屏幕顶行 |
L |
移动到屏幕底行 |
编辑模式
在一般模式中输入 i、l、o、O、a、A 可以进入编辑模式,他们的差别就是光标的位置,在编辑模式中 ESC 就可以退回一般模式
指令模式
在一般模式时,输入 /、:、? 光标就会移动到最下面一行,可以输入指令操作
| 命令 | 功能 |
|---|---|
:w |
保存 |
:q |
退出 |
:! |
强制执行 |
:wq! |
强制保存退出 |
/要查找的单词 |
n 查找下一个,N 往上查找 |
:noh |
取消高亮显示 |
:set nu |
显示行号 |
:set nonu |
关闭行号 |
:s/old/new |
将当前行第一个匹配到的 old 替换为 new |
:s/old/new/g |
将当前行匹配到的所有 old 替换为 new |
:%s/old/new |
替换文档每一行匹配到的第一个 old 替换为 new |
:%s/old/new/g |
将文档中的所有 old 替换为 new |
系统管理
systemctl system control 系统控制
systemctl start|stop|restart|status 服务名
防火墙
查看防火墙状态
systemctl status firewalld临时关闭防火墙
systemctl stop firewalld
文件目录类命令
pwd:显示当前工作目录的绝对路径
pwd -P # 查看快捷方式对应的物理路径ls:列出目录的内容ls [选项] [目录参数]选项 说明 -a全部文件,包括隐藏文件(开头为 .的文件)一起列出来 -l长数据串列出,包含文件的属性于权限等数据 
cd:切换目录cd [参数]参数 说明 cd ~ \cd回到自己的家目录 cd -回到上一次的目录 cd ../回到上一级的目录 cd -P跳转到实际物理路径,而非快捷方式 mkdir:创建一个新的目录mkdir [要创建的目录] mkdir -p [创建多级目录]rmdir:删除一个空目录rmdir [要删除的目录]touch:创建空文件rmdir [文件名]cp:复制文件或目录复制 source 文件到 dest
cp [选项] source dest选项 说明 -r递归复制整个文件夹 -P进入软连接实际物理路径 rm:删除文件或目录rm [选项] [文件名]选项 说明 -r递归删除目录中的所有内容 -f强制执行删除操作,不会提示用户是否确认删除 -v显示命令的详细执行过程 mv:移动文件与目录或重命名mv [oldName] [newName] # 重命名文件 mv [文件/目录] [文件/目录]cat:查看文件内容cat [选项] [文件名]选项 说明 -n显示所有行的行号,也包括空行 more:文件内容分屏查看器适合查看超过一个屏幕的文件,支持上下翻页的文件内容
more 是一个基于 vi 编辑器的文本过滤器
more [文件名]操作 说明 space 、↓向下翻一页 b 、↑向上翻一页 enter向下翻一行 q代表离开 more ,不再显示该文件内容 =输出当前行的行号 :f输出文件名和当前行的行号 less:分屏显示文件内容用来分屏查看文件内容,他的功能与 more 指令类似,但是比 more 指令更强大,less 显示文件不是将整个文件加载之后才显示,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容
less [文件名]操作 说明 space 、↓向下翻一页 b 、↑向上翻一页 /字符串向下搜寻字符串的功能 n:向下查找;N:向上查找 ?字符串向上搜寻字符串的功能 n:向下查找;N:向上查找 q离开程序 echo:输出内容到控制台echo [内容]head:显示文件头部内容默认情况下显示文件的前 10 行内容
head [文件] head -n 5 [文件] # 查看5行的内容tail:输出文件尾部内容默认显示后 10 行内容
tail -n 5 [文件] # 查看5行的内容 tail -f [文件] # 实时追踪该文档的所有更新>:输出重定向ls -l > [目标文件] # 将命令结果写入到目标文件中,会覆盖>>:追加内容cat 1.txt >> [目标文件] # 将命令结果追加到目标文件中ln:创建软连接类似于 windows 里的快捷方式,有自己的数据块,主要存放了连接其他文件的路径
ln -s [源文件或目录] [软连接名称]
history:查看已执行过的历史命令history history -c # 清除命令历史记录
用户管理命令
useradd:添加新用户useradd [用户名] # 添加新用户 useradd -g [组名] [用户名] # 添加新用户到某个组passwd:设置用户密码passwd [用户名] # 为指定的用户设置密码id:查看用户是否存在id [用户名]cat /etc/passwd:查看创建了哪些用户所有创建的用户在
/etc/passwd文件中都会有记录su:切换用户su [用户名] # 切换到目标用户,只能获得目标用户的执行权限,不能获得其环境变量 su - [用户名] # 切换到目标用户并获得目标用户的环境变量及执行权限userdel:删除用户userdel [用户名] # 删除用户,会保留用户的主目录 userdel -r [用户名] # 删除用户及其主目录whoami:查看登录用户信息sudo:设置用户具有 root 权限sudo [管理员命令]
文件权限类命令
ll 相当于ls -l查看文件属性以及 文件属性说明这里的最前面的 10 个字符表示文件类型与权限


第 0 位:表示文件类型
-:代表文件d:代表目录l:代表连接文件
第 1-3 位:文件所有者拥有的权限
第 4-6 位:该文件所属组拥有的权限
第 7-9 位:其他用户对该文件拥有的权限
chmod:改变文件或目录权限chmod [权限设置] [文件名]使用数字方式设置权限,会用三位数字,分别表示:用户、组、其他人
权限 含义 数字 r读取 4 w写入 2 x执行 1 数字 权限 7 rwx 6 rw- 5 r-x 4 r– 0 — chown:改变所有者chown [所有者][:组] [文件或目录]
搜索查找类命令
find:查找文件或目录find 从指定的目录向下递归遍历其各个子目录,将满足条件的文件显示在终端
find [path] [选项]选项 说明 -name按文件名查找文件 -user查找属于指定用户名的所有文件 -size [+-]n[bcwkMG]按照指定文件大小查找文件
例:-size +10M查找大于 10 M的文件-size -10b查找小于 10 b 的文件grep:过滤查找配合
|使用cat 1.txt | grep "123"which:在 PATH 下查找命令位置
压缩和解压类命令
gzip/gunzip:压缩、解压gzip [文件] # 压缩文件,压缩后源文件会消失 gunzip [文件.gz] # 解压文件,解压后源文件也会消失zip/unzip:压缩、解压zip [选项] [压缩后文件名] [文件] unzip [选项] [解压文件名]unzip选项 功能 -d [目录]指定解压后文件的存放目录 zip选项 功能 -r压缩目录 tar:打包、解压tar [选项] [压缩后文件名] [文件]选项 说明 -c产生 .tar打包文件 -v显示详细信息 -f指定文件名 -z用 gzip 对文件进行压缩或者解压 -x解包 .tar文件 -C解压到指定目录
Strings 命令
一个在 misc 中挺常用的命令
最基本的用法就是指定一个文件,可以指定里面的字符串
strings <文件名>
strings 更强大的地方在他的选项
长度控制
-n用来指定要打印的最小字符串长度,默认情况下,应该是 4 个字符
只输出长度大于等于 8 的字符串
strings -n 8 <文件名>字符集控制
-estrings 默认处理的是 ascii 或 utf-8 的编码,-e允许指定要搜索的字符编码格式-e l:搜索 utf-16 小端序的字符串-e b:搜索 utf-16 大端序的字符串-e S:搜索单字节字符串 ascii 或 utf-8-e L:搜索 32 位小端序的字符串,通常是 utf-32 小端序优化输出
-t这个选项是输出字符串在文件中的偏移量
-t d:以十进制打印偏移量-t o:以八进制打印偏移量-t x:以十六进制打印偏移量