【LInux入门手册】目录结构 常用指令与操作 vim与tmux

Linux系统

Linux系统的组成

Linux系统一般由内核、Shell、文件系统、应用程序这四个部分组成。

  • 内核:操作系统核心,具有很多最基本的功能。如虚拟内存。多任务、共享库、需求加载、可执行程序和TCP/IP网络功能。主要模块:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、系统初始化和系统调用等。
  • Shell:系统的用户界面,用户与内核交互操作的接口。Shell本身是一个命令解释器,Shell语言也具有许多其他编程语言的特点。
  • 文件系统:文件存放在磁盘等存储设备上的组织方法。常见的文件系统有:xfs、ext4、ext3、ext2、msdos、vfat和iso9660等。
  • 应用程序:一堆程序集。文本编辑器、办公软件、XWindow、数据库、internet工具等。

Linux版本

Linux版本一般指内核版本和发行版本。一般安装在服务器上的是发行版本。

Linux内核版本:Linux操作系统中最核心的功能框架部分,一个用来和硬件打交道并为用户提供有限服务集的支撑软件。内核版本号用于区分历次修改的内核版本,由点分割开的三段数字组成,如5.10.0-kali7-amd64,可使用uname -r命令查看。

Linux发行版本:最著名的是由RedHat公司发布的RedHat系列和社区组织开发的Debian系列。

  • Red Hat: Red Hat Enterprise Linux简称RHEL。由Bob Young和Mare Ewing在1995创建。
  • Oracle:简称OEL。它与RHEL二进制兼容。
  • Centos:不包含封闭源代码软件的RHEL。具有更高的稳定性。在企业中也十分常用。
  • Debian: 由Ian Murdock于1993创建。采用Linux内核却也用了大部分来自于GNU操作系统工具。因此又称为Debian GNU/Linux。
  • Ubuntu:基于Debian系统的近乎完美的Linux发行版,对硬件支持最好、最全面,并且采用自行加强的内核,具有更高的安全性。

Linux目录结构

Linux世界中,一切皆文件。
linux会把所有的硬盘映射成文件去管理。
linux的文件系统采用级层式树状目录结构,最上层是根目录。
linux目录与win最大的不同是,linux的根目录是规定好的,不可改变的,我们只能从根目录下新建文件。
最好对根目录十分熟悉。

  • /bin Binary 存放经常使用的指令

  • /sbin Super User 系统管理员实用的系统管理数据

  • /home 存放普通用户的主目录,以用户的账户命名

  • /root 系统管理员的用户主目录

  • /lib 系统开机所需要的最基本的动态链接共享库 库文件,类似于win中的dll

  • /lost+found 一般是空的 且会隐藏起来 系统非法关机后会存放一些文件

  • /ect 所有系统管理所需要的配置文件和子目录

  • /usr 默认应用程序和文件 类似于program files

  • /boot linux启动相关核心文件

  • /proc 虚拟目录 是系统内存的映射

  • /srv Service 存放一些服务启动之后需要提取的数据

  • /sys linux2.6内核的一个变化 存放新文件系统sysfs

  • /tmp 临时文件

  • /dev 设备信息 类似win的设备管理器 把所有硬件用文件形式储存

  • /media 自动识别的硬件挂载

  • /mnt 外部文件系统挂载

  • /opt 安装软件所存放的目录

  • /usr/usual 另一个安装软件目录 一般是通过编译源码方式安装的程序

  • /var 存放着不断扩充着的东西 习惯将经常被修改的目录放在这个目录下 包括各种日志文件

  • /selinux Security-enhanced Linux 安全子系统 控制程序只能访问特定文件 有三种工作模式

  • . . 上一层目录

  • . 当前目录

  • /~ 当前用户的家目录


常用操作

基本指令

  • ctrl+c 杀死程序

  • ctrl+u 清除本行

  • Tab 补全 Tab两次 显示补全选项

  • ↑键 显示上一条指令

  • history 查看历史执行过的指令

history 10 显示最近使用过的10个指令
!5 执行编号为5的指令

文件目录类

  • pwd 显示当前所在的绝对路径

绝对路径:从根目录开始的路径
相对路径:从当前目录开始的路径 可以理解为树上两点的路径

  • ls 列举当前目录 蓝色-文件夹 白色-普通文件 绿色-可执行文件

参数
-l 显示详细信息
-h 人性化地显示详细信息
-a 显示所有文件 包括隐藏文件
-la 显示所有文件的详细信息(ls -la 等价于 ll) 一个组合

  • cd __ 进入某个路径 可以后接绝对路径或者相对路径

cd 或者 cd~ 默认返回当前用户的家目录
cd .. 返回上层目录

  • cp A B 将A复制到B

cp -r A B 把整个A文件夹全都复制到B目录里去
cp A/a.txt B 把A中的a.txt复制到B目录里
cp A/a.txt B/b.txt 把a.txt复制到B里并且重命名为b.txt
cp A/* B 将A中所有的非隐藏文件复制到B中

  • mv A B 将A移动到B 或将A重命名为B

与cp指令同理

  • mkdir __ 创建目录 默认只能创建一层

mkdir _ / _ /_ -p 创建多级目录

  • touch __ 创建空文件
  • cat __ 展示文件的内容

只能浏览而不能编辑 一般为了浏览方便会在后面加上管道指令 |more

  • rm __ 删除普通文件

rm ___ -r 删除文件夹
rm -fr .* 删除当前目录下所有隐藏文件
rmdir __ 删除空目录
rm -rf 强制递归删除整个文件夹 -r 递归 -f强制删除不提示

  • more 基于vim编辑器的文本过滤器 可以单独使用也可以组合使用

[space] 翻页
[enter] 翻行
q 立刻离开
ctrl+f 向下滚动一屏
ctrl+b 向上滚动一屏
= 退出当前行的行号
:f 输出文件名和当前行的行号

  • less 分屏查看内容 与more相似 但效率更高 更强大

[space] 向下翻页
[pageup ] [ pagedown ]
/ 向下查找 n下一项 N上一项
? 向上查找 n上一项 N下一项
q 立刻离开

  • echo 输出内容到控制台
    shell中的echo命令详细介绍

  • head 显示文件开头部分的内容

head filename 默认查看文件前10行内容
head -n 5 查看文件头5行的内容

  • tail 显示文件结尾部分的内容

tail filename 默认查看文件后10行内容
tail -n 5 查看文件后5行的内容
tail -f filename 实时追踪文件最新内容

  • > 输出重定向 和>>追加
    shell中的关于文件重定向和追加详细介绍
    注意>会直接覆盖文件

  • ln软连接

In -s 原文件或目录 软连接名在当前目录下创建一个原文件的软连接
实现动态连接文件

时间日期指令

  • date 显示当前时间

date +%Y 显示年
date +%m 显示月
date +%d 显示日
date “+%Y-%m-%d %H:%M:%S” 格式化显示年月日时分秒
date -s 字符串时间 更改时间 例2022-11-11 11:11

  • cal 显示日历

cal 1983 显示1983的日历

搜索查找类

  • find 搜索范围 选项从指定目录向下递归查找符合条件的文件

-name 文件名
-user 用户名
-size <+,-, >文件大小 +n大于 -n小于 n等于 (大小单位 k M G )

  • locate filename快速定位文件路径

该指令利用实现建立的locate数据库进行快速查询而无需遍历整个文件系统 所以第一次运行前必须执行一遍updatedb指令 且需要定期更新

  • which command查看某个指令在哪个目录下

  • grep 参数 查找内容 filename

-n 显示匹配行及行号
-i 忽略大小写

  • 经常结合管道符执行 例如 cat filename | grep -n “Hello” (等价于 grep -n “Hello” filename)

压缩和解压类

  • gzip filename 压缩文件

  • gunzip filename 解压文件

  • zip xxx.zip xxx 压缩文件或目录

-r 递归压缩目录

  • unzip xxx.zip解压文件或目录

-d 指定解压后文件的存放目录 例 unzip -d 指定路径 xxx.zip

  • tar 参数 xxx.tar.gz 打包内容

-c 产生打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包的同时压缩
-x 解包.tar文件

关机

  • shutdown 默认一分钟后关机 (-h :halt)

shutdown -h 1默认 同上
shutdown -h now立刻关机
shutdown -r now立刻重启(-r:reboot)
sync将内存数据同步到磁盘 在重启和关闭前必须执行一遍 不过目前的shutdown/reboot/halt指令默认在关机前执行了sync 但还是最好执行一遍

运行级别

0-关机
1-单用户 【找回丢失密码】
2-多用户 无网络
3-多用户 有网络
4-系统未使用保留给用户
5-图形界面
6-系统重启
一般级别3和5比较常用,但是在工作中最常用的是级别3,与级别5相比更省资源

  • init [num] 指定运行级别
  • systemctl get-default 查看当前在那个运行级别

帮助指令

  • man [command]
    可以看到指令的所有参数和使用方法,参数可以组合使用,顺序随意

  • help [command]
    获得shell命令的内置帮助信息


两个最常用工具——vim与tmux

vim编辑器

模式:正常模式 命令行模式 输入模式

【LInux入门手册】目录结构 常用指令与操作 vim与tmux_第1张图片

来自b站韩顺平老师
正常转输入
  • i 光标前
  • l 光标所在行首
  • a 字符后面
  • A 光标所在行尾
  • o 光标行下新建
  • O 光标行上新建
  • s 删除光标所在字符
  • r 替换光标所在字符
输入转正常

ESC键

快捷键操作

正常模式
  • yy 拷贝当前行 ; [num]yy 拷贝从当前行向下的[num]行
  • p 粘贴 在光标的下一行
  • dd 删除当前行 ; [num]dd删除从当前行向下的[num]行
  • u 撤销
  • ctrl+r 重做
  • v 选中文本
  • d 剪切选中的文本
  • shift+> 选中文本整体右移
  • shift+< 选中文本整体左移
  • [num]+ 向后跳num个字符
  • [num]+ 向后跳num行
  • [num]+shift+g 去到指定行
  • G 最末行
  • g 最首行
  • h ← j ↓ k ↑ l →
  • /PATTERN 从当然位置向后查找
  • ?PATTERN 从当前位置向前查找
  • n 查找下一个
  • ctrl+q 取消当前命令 异常处理
  • gg=G 全文代码格式化
  • gg+d+G 全删
  • gg+d+[num] 删从第一行到第[num]行
  • $ 跳到行尾
命令行模式
  • :set nu 显示行号
  • :set nonu 隐藏行号
  • :[num1],[num2]s/[word1]/[word2]/g 指定行查找替换
  • :1,$s/[word1]/[word2]/g 全文查找替换
  • :1,$s/[word1]/[word2]/gc 全文查找替换并询问
  • :noh 取消关键词高亮
  • :set paste 粘贴模式 取消代码缩进
  • :set nopaste 取消粘贴模式 设置代码缩进
命令行模式下关闭保存
  • :w 保存
  • :q 退出
  • :wq 和 : x 保存退出
  • :q! 强制退出
  • :w! 强制保存 管理员权限

关于一个异常处理

每次打开vim编辑文件时,会自动创建一个隐藏临时文件.filename.swp
若尝试打开一个已经存在swp的文件 则会报错 此时如果你愿意无视vim善意的警告的话 可以直接rm掉swp


Tmux

两大作用:分屏、允许断开Terminal连接后 继续运行进程

结构

session
	window
		pane  - 包含一个shell对话框

操作

  • tmux 新建一个session 其中包含一个window window里包含一个pane pane里包含一个shell框
  • 左右分pane ctrl+A 松开 再%
  • 上下分pane ctrl+A 松开 再"
  • ctrl+D 关掉当前pane 若当前window所有的pane已关闭 则关闭当前window 若当前session的所有window已关闭 则关闭当前session
  • 鼠标点击可以选择pane
  • ctrl+A松开 方向键 可以选择相邻pane
  • 鼠标拖动分界线
  • ctrl+A同时方向键 调整分界线
  • ctrl+A松开 +Z 当前pane全屏/取消全屏
  • ctrl+A松开 +D 挂起当前session
  • tmux a 打开之前挂起的session
  • ctrl+A松开 +A 选择其他session /+W 选择其他window
    • ↑ 上一项session/window/pane
    • ↓ 下一项session/window/pane
    • ← 展开当前项 session/window
    • → 闭合当前项 session/window
  • ctrl+A松开 +C 在当前session创建一个新的window
  • ctrl+A松开 +Pageup 翻阅当前pane
  • 鼠标滚轮翻阅当前pane
  • 按住shift选中文本

所有的终端基本都是
ctrl+insert复制 shift+insert粘贴


若文章中有任何错误或问题,请评论区指教。

你可能感兴趣的:(linux,linux,vim,centos,运维)