linux 基础


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

文件目录类命令

  1. pwd :显示当前工作目录的绝对路径

    image

    pwd -P # 查看快捷方式对应的物理路径
  2. ls:列出目录的内容

    ls [选项] [目录参数]
    选项 说明
    -a 全部文件,包括隐藏文件(开头为 . 的文件)一起列出来
    -l 长数据串列出,包含文件的属性于权限等数据

    image

  3. cd:切换目录

    cd [参数]
    参数 说明
    cd ~​ \ cd 回到自己的家目录
    cd - 回到上一次的目录
    cd ../ 回到上一级的目录
    cd -P 跳转到实际物理路径,而非快捷方式
  4. mkdir:创建一个新的目录

    mkdir [要创建的目录]
    mkdir -p [创建多级目录]
  5. rmdir:删除一个空目录

    rmdir [要删除的目录]
  6. touch:创建空文件

    rmdir [文件名]
  7. cp:复制文件或目录

    复制 source 文件到 dest

    cp [选项] source dest
    选项 说明
    -r 递归复制整个文件夹
    -P 进入软连接实际物理路径
  8. rm:删除文件或目录

    rm [选项] [文件名]
    选项 说明
    -r 递归删除目录中的所有内容
    -f 强制执行删除操作,不会提示用户是否确认删除
    -v 显示命令的详细执行过程
  9. mv:移动文件与目录或重命名

    mv [oldName] [newName] # 重命名文件
    mv [文件/目录] [文件/目录]
  10. cat:查看文件内容

    cat [选项] [文件名]
    选项 说明
    -n 显示所有行的行号,也包括空行
  11. more:文件内容分屏查看器

    适合查看超过一个屏幕的文件,支持上下翻页的文件内容

    more 是一个基于 vi 编辑器的文本过滤器

    more [文件名]
    操作 说明
    space​ 、 向下翻一页
    b​ 、 向上翻一页
    enter 向下翻一行
    q 代表离开 more ,不再显示该文件内容
    = 输出当前行的行号
    :f 输出文件名和当前行的行号
  12. less:分屏显示文件内容

    用来分屏查看文件内容,他的功能与 more 指令类似,但是比 more 指令更强大,less 显示文件不是将整个文件加载之后才显示,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容

    less [文件名]
    操作 说明
    space​ 、 向下翻一页
    b​ 、 向上翻一页
    /字符串 向下搜寻字符串的功能
    n​:向下查找;N:向上查找
    ?字符串 向上搜寻字符串的功能
    n​:向下查找;N:向上查找
    q 离开程序
  13. echo:输出内容到控制台

    echo [内容]
  14. head:显示文件头部内容

    默认情况下显示文件的前 10 行内容

    head [文件]
    head -n 5 [文件]  # 查看5行的内容
  15. tail:输出文件尾部内容

    默认显示后 10 行内容

    tail -n 5 [文件]  # 查看5行的内容
    tail -f [文件]    # 实时追踪该文档的所有更新
  16. > :输出重定向

    ls -l > [目标文件]  # 将命令结果写入到目标文件中,会覆盖
  17. >>:追加内容

    cat 1.txt >> [目标文件]   # 将命令结果追加到目标文件中
  18. ln:创建软连接

    类似于 windows 里的快捷方式,有自己的数据块,主要存放了连接其他文件的路径

    ln -s [源文件或目录] [软连接名称]

    image

  19. history:查看已执行过的历史命令

    history
    history -c   # 清除命令历史记录

用户管理命令

  1. useradd:添加新用户

    useradd [用户名]				# 添加新用户
    useradd -g [组名] [用户名] 	# 添加新用户到某个组
  2. passwd:设置用户密码

    passwd [用户名]  			# 为指定的用户设置密码
  3. id:查看用户是否存在

    id [用户名]
  4. cat /etc/passwd:查看创建了哪些用户

    所有创建的用户在 /etc/passwd 文件中都会有记录

  5. su:切换用户

    su [用户名]		# 切换到目标用户,只能获得目标用户的执行权限,不能获得其环境变量
    su - [用户名]	# 切换到目标用户并获得目标用户的环境变量及执行权限
  6. userdel:删除用户

    userdel [用户名]			# 删除用户,会保留用户的主目录
    userdel -r [用户名]		# 删除用户及其主目录
  7. whoami:查看登录用户信息

  8. sudo:设置用户具有 root 权限

    sudo [管理员命令]

文件权限类命令

  1. ll​ 相当于 ls -l 查看文件属性以及 文件属性说明

    这里的最前面的 10 个字符表示文件类型与权限

    • 第 0 位:表示文件类型

      • -:代表文件
      • d:代表目录
      • l:代表连接文件
    • 第 1-3 位:文件所有者拥有的权限

    • 第 4-6 位:该文件所属组拥有的权限

    • 第 7-9 位:其他用户对该文件拥有的权限

  2. chmod:改变文件或目录权限

    chmod [权限设置] [文件名]

    使用数字方式设置权限,会用三位数字,分别表示:用户、组、其他人

    权限 含义 数字
    r 读取 4
    w 写入 2
    x 执行 1
    数字 权限
    7 rwx
    6 rw-
    5 r-x
    4 r–
    0
  3. chown:改变所有者

    chown [所有者][:组] [文件或目录]

搜索查找类命令

  1. find:查找文件或目录

    find 从指定的目录向下递归遍历其各个子目录,将满足条件的文件显示在终端

    find [path] [选项]
    选项 说明
    -name 按文件名查找文件
    -user 查找属于指定用户名的所有文件
    -size [+-]n[bcwkMG] 按照指定文件大小查找文件
    例:
    -size +10M 查找大于 10 M的文件
    -size -10b 查找小于 10 b 的文件
  2. grep:过滤查找

    配合 | 使用

    cat 1.txt | grep "123"
  3. which:在 PATH 下查找命令位置

压缩和解压类命令

  1. gzip/gunzip:压缩、解压

    gzip [文件]			# 压缩文件,压缩后源文件会消失
    gunzip [文件.gz]		# 解压文件,解压后源文件也会消失
  2. zip/unzip:压缩、解压

    zip [选项] [压缩后文件名] [文件]
    unzip [选项] [解压文件名]
    unzip选项 功能
    -d [目录] 指定解压后文件的存放目录
    zip选项 功能
    -r 压缩目录
  3. tar :打包、解压

    tar [选项] [压缩后文件名] [文件]
    选项 说明
    -c 产生 .tar 打包文件
    -v 显示详细信息
    -f 指定文件名
    -z 用 gzip 对文件进行压缩或者解压
    -x 解包 .tar 文件
    -C 解压到指定目录

Strings 命令

一个在 misc 中挺常用的命令

最基本的用法就是指定一个文件,可以指定里面的字符串

strings <文件名>

strings 更强大的地方在他的选项

  • 长度控制 -n

    用来指定要打印的最小字符串长度,默认情况下,应该是 4 个字符

    只输出长度大于等于 8 的字符串

    strings -n 8 <文件名>
  • 字符集控制 -e

    strings​ 默认处理的是 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 :以十六进制打印偏移量


文章作者: Marin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Marin !
  目录