linux 基础
- 一、linux 系统的文件
- 二、Linux 的基本指令
- 三、进阶指令(重点)
- 1、df 指令
- 2、free指令
- head命令
- tail指令
- 5、less命令
- 6、wc指令
- **7、date指令(重点)**
- 8、cal指令
- 9、clear /Ctrl+L指令
- 10、管道(重要)
- Linux的高级指令
- top退出输入q
- 15、netstat -tnlp指令
- 打包、压缩与解压缩
- 练习题
- 四、模式之间的切换
- 七、实用功能
- 八、扩展
- 九、作业
- Linux自有服务
- 二、用户与用户组管理(重点)
- which(重要)
- which 命令可以查看命令的所在位置 which ls #输出 #/bin/ls which useradd #输出 #/usr/sbin/useradd
- 修改用户的主/附加组
- 修改文件权限
- 三、网络设置
- 四、ssh服务(重点)
- 1.远程终端
- 新的改变
- 功能快捷键
- 合理的创建标题,有助于目录的生成
- 如何改变文本的样式
- 插入链接与图片
- 如何插入一段漂亮的代码片
- 生成一个适合你的列表
- 创建一个表格
- 创建一个自定义列表
- 如何创建一个注脚
- 注释也是必不可少的
- KaTeX数学公式
- 新的甘特图功能,丰富你的文章
- UML 图表
- FLowchart流程图
- 导出与导入
一、linux 系统的文件
1. 文件与文件夹
什么是文件?
文件一般都是独立的个体,可以用特定的工具打开,是储存在长期储存设备或临时储存设备的一段数据流,并归属与计算机文件系统管理之下。例如:
什么是文件夹?
文件夹是协助人们管理计算机文件的 ,每一个文件夹对应一块磁盘空间
为什么先讲文件?
- 日常运维工作中,大部分的是见都是对文件的操作。
- Linux 是基于文件形式存在的操作系统
- Linux 一切皆文件
在日常学习中对文件的操作有:
创建文件、编辑文件、保存文件、关闭文件、重命名文件、删除文件、恢复文件
2.Linux系统文件目录结构
目录结构
/Bin:
- 全称binary,含义是二进制,该目录存储的都是二进制文件,文件都是可被运执行。
(例如:cat、cp、chmod 、df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar)
/dev:
- 该目录主要存放的是外接设备文件,(包括硬盘、分区、键盘、鼠标、USB等) 只要通过存取这个目录下的某个档案,就等于存取某个装置。(例如:/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*)
/boot :
- 主要放置开机使用到的文档,包括Linux核心档案以及开机选项与开机所设定的档案Linux kernel常用的档名为:vmlinuz ,如果使用的是grub这个开机管理程式,则还会存在/boot/grub/这个目录。
/etc :
- 系统的所有设定文档几乎都放在这个目录内,例如人员的账号密码,各种服务的起始档,一般来说这个目录下个档案属性是可以让一般人员查阅的,但是只有root有权利修改。
(FHS建议不要放置可执行档(binary)在这个目录中。 比较重要的档案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。 另外,其下重要的目录有:/etc/init.d/ :所有服务的预设启动script都是放在这里的,例如要启动或者关闭iptables的话: /etc/init.d/iptables start、/etc/init.d/ iptables stop
/etc/xinetd.d/ :
这就是所谓的super daemon管理的各项服务的设定档目录。
/home :
- 只是系统预设的使用者家目录,除了root(home directory)新增一个一般账户时,预设者使用的家目录都会规范到这里,比较重要的是家目录有两种代号:
~:代表当前使用者的家目录
而 ~guest:则代表用户名为guest的家目录。
/lib:
- 系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库而已 。 什么是函式库呢?妳可以将他想成是外挂,某些指令必须要有这些外挂才能够顺利完成程式的执行之意。 尤其重要的是/lib/modules/这个目录,因为该目录会放置核心相关的模组(驱动程式)。
/media:
- media是媒体的英文,顾名思义,这个/media底下放置的就是可移除的装置可移除的装置。 包括软碟、光碟、DVD等等装置都暂时挂载于此。 常见的档名有:/media/floppy, /media/cdrom等等。
/mnt:
- 如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。在古早时候,这个目录的用途与/media相同啦。 只是有了/media之后,这个目录就用来暂时挂载用了。
/opt:
- 这个是给第三方协力软体放置的目录第三方协力软体放置的目录 。 什么是第三方协力软体啊?举例来说,KDE这个桌面管理系统是一个独立的计画,不过他可以安装到Linux系统中,因此KDE的软体就建议放置到此目录下了。 另外,如果妳想要自行安装额外的软体(非原本的distribution提供的),那么也能够将你的软体安装到这里来。 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。
/root:
- 系统管理员(root)的家目录。 之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中.
/sbin :
- Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。
/srv:
- srv可以视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。 举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。呵呵,看来平时我们编写的代码应该放到这里了.
/tmp:
- 这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊。 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除。
/etc:配置文件
/bin:重要执行档
/dev:所需要的装置文件
/lib:执行档所需的函式库与核心所需的模块
/sbin:重要的系统执行文件
这五个目录千万不可与根目录分开在不同的分区
二、Linux 的基本指令
1. 指令与选项
-
什么是Linux指令?
-
指对Linux系统管理的命令,Linux命令在系统中有两种类型:内置Shell命令和Linux命令。
-
如新建一个名字为a的文本文档
- 一个完整的指令的标准格式:Linux通用的格式
指令主体(空格)[选项] (空格) [操作对象]
一个指令可以包含多个选项
操作对象也可以是多个
例如:你去超市买瓶娃哈哈水
这个指令中买东西是指令主题,买的水是操作对象,娃哈哈是操作的选项
二、基础指令(重点)
command [ -options ] [ parameter ]
- command:命令名,相应功能的英文单词或单词的缩写
- [-options]:选项,可以用来对命令进行控制 ,也可以省略
- [parameter] :传给命令的参数,可以是零个、一个或多个。
查阅命令信息
command --help
- 显示
command
的命令帮助信息
man command
- 查阅
command
命令使用手册
常用命令分类
- 查看目录内文件
ls
- 切换目录
cd
- 创建和删除目录
touch
rm
mkdir
- 拷贝和移动文件
cp
mv
- 查看文件内容
cat
more
grep
- 其他
echo
- 重定向
>
和>>
- 管道
|
1. ls指令
- 含义ls (list)
- 用法一:ls
- 含义:(列出当前工作目录下的所有文件/文件夹的名称)
参数 | 含义 |
---|---|
-a | 显示指定目录下所有目录与文件,包括隐藏文件 |
-l | 以列表方式显示详细文件信息 |
-h | 配合-l使用以更人性化的方式显示文件大小 |
ls通配符的使用
通配符 | 含义 |
---|---|
* | 代表任意多个字符 |
? | 代表之表示1个字符 |
[ ] | 表示可以匹配字符组中任意个 |
[abc] | 匹配a、b、c中的任意个 |
a-f | 匹配a-f范围的任意个 |
- 用法2:ls 路径
- 列出指定路径的所有文件/文件夹的名称。(重要)
l路径分为绝对路径、相对路径
相对路径:相对路径首先得有个参照物(一般是当前位置)
相对路径的写法:./【表示当前目录】…/【表示上一级目录】
绝对路径写法:不需要参照物从 “/” 开始寻找
用法3:ls 选项 路径
含义:列出路径下所有文件夹/文件,并以指定格式进行显示。
常见语法:
ls -l:列出各文件的详细信息,如创建者、创建时间、文件的读写权限
ls -a:列出文件下所有文件,包括以“.”开头的隐藏文件(Linux中以"."开头的是隐藏文件,如果存在"…"代表存才父目录)
用法4:ls -lh 路径
含义:列出文件指定路径下所有文件,并以可读性较高的形式显示文件大小。
2. pwd指令
用法:打印当前工作目录
3.cd指令
|
命令 | 作用 |
---|---|
cd | 切换到当前用户家目录 |
cd ~ | 切换到当前用户的家目录 |
cd . | 保持在当前文件目录不变 |
cd … | 切换为上级目录 |
cd - | 可以在最近两次工作目录切换 |
用法:切换当前工作目录
语法:cd 路径
当前如果在“/”下:需要使用绝对路径
如:切换到/ 目录下的usr下的etc目录下
若在其他目录
如:在/下的sys目录下,想切换到/下的bin目录下
可以使用相随路径:
补充:
Linux有一个特殊的符号“~”,表示当前用户的家目录
切换的方法为:cd ~
4、mkdir指令
指令:mkdir (make directory 创建目录)
指令 | 作用 |
---|---|
-p | 递归创建文件夹 |
新建目录下的名称不能与当先目录已有的目录或文件同名
语法一:mkdir 路径 (路径可以是文件夹名称也可是完整的路径)
在当前目录下创建一个目录:
如:在指定路径建(桌面)一个文件夹:
语法2:mkdir -p
用法:一次性创建多层目录时需要-p,否则会报错。
语法3:mkdir 路径一 路径二 路径三(表示创建多个文件)
5、touch 指令
作用
- 如果文件不存在,创建文件
- 如果文件存在,修改文件的末次修改时间
语法:touch 文件路径(路径可以是直接的文件名也可以是路径)
如:在桌面创建一个文件名为海潮的txt文件
可以用touch 同时创建多个文件
如:指定目标地新建文件
6、cp指令
选项 | 含义 |
---|---|
-i | 覆盖文件的话提示 |
-r | 复制的是文件夹的话,如果想递归复制就cp -r |
作用:复制文件/文件夹到指定的位置
语法:cp 被复制的文档路径 被复制到的路径
如:用cp命令复制一个txt文档
注意:Linux在复制过程中可以对文件进行重命名
格式: cp 被复制文件路径 被复制到的路径/新文件名
注意复制文件为文件夹时 cp后要加-r【-r表示递归复制】否则目录将被忽略
7.mv指令
作用:移动文档到新的位置
语法:mv 需要移动的文档路径 移动到的文档路径
重命名的语法和移动是一样的
tree命令
如何安装tree命令下载安装tree
选项 | 含义 |
---|---|
-d | 只显示目录不显示文件 |
8、rm命令
选项 | 含义 |
---|---|
-f | 强制 删除,忽略不存在的文件。无提示 |
-r | 递归的删除目录/文件,删除文件夹必须加次参数 |
作用:删除文档/文件
语法:rm 需要移除的文档路径
rm -f :强制删除,不提示是否删除
rm -r:递归删除
删除一个普通的文件
案例:递归删除文件夹
递归删除会进入文件夹先删除文件夹内的文件再删除外部文件夹,一层一层删除
案例:强制删除一个文件夹
删除文件夹需要-r,若不想提示直接-rf,不bb直接删除
案例:删除一个目录下有公共特性的文件
Linux中 * 表示通配符,表示任意字符,h * 表示以h开头的文件后续字符不管。
9.vim 指令
指令:vim(vim是一款文档编辑器)
语法:vim 文件路径
作用:打开一个文件(可以存在,也可以不存在)
案例:用vim打开文件
保存并退出:wq
强制退出:q!
退出前需要退出编辑模式 ESC 以确保状态为命令模式
10、输出重定向
一般的命令输出都会显示在终端,有时候需要将命令的结果保存到文件中以便于之后的分析、统计,这时候就需要用到输出重定向技术
“>”:覆盖输出:会覆盖原先的文件内容
“>>”:追加输出:不会覆盖原先的内容,会在原先内容后进行追加。
语法:正常的执行命令 >/>> 文件的路径.
案例:使用覆盖重定向保存ls -l 的执行结果到桌面的文档。
注意文件可以不存在,不存在则新建
11、 cat指令
选项 | 含义 |
---|---|
-b | 对非空行数去行编号 |
-n | 对输出的所有行进项编号 |
功能:cat 有直接打开文件的功能
语法1:cat 文件路径
作用2:合并文件
语法2:cat 待合并的文件1 待合并文件2 >合并后文件路径 文件名
more
- 适合查看文件内容较多的文件
操作键 | 功能 |
空格键 | 显示文件的下一页 |
enter | 一次滚动一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
grep指令
- grep是强大的文本搜索工具
- 允许对文本进行模式查找
选项 | 含义 |
---|---|
-n | 显示匹配行即行号 |
-v | 显示不包含匹配文本的所有行(相当求反) |
-i | 忽略大小写 |
- 常用的两种模式查找
参数 | 含义 |
---|---|
^a | 搜索以a开头的行 |
ke$ | 搜索以ke结尾的行 |
三、进阶指令(重点)
1、df 指令
命令 | 作用 |
---|---|
df-h | 显示磁盘的剩余空间 |
du-h [目录名] | 显示目录下的文件大小 |
tree -h | 显示当前目录下以树形图显示且文件大小 |
作用:查看磁盘的空间
语法:df -h
-h表示 可读性较高的形式显示文件大小
2、free指令
作用:查看内存使用情况
语法:free -m
-m表示以mb单位查看
swap:用于临时内存,当系统真实内存不足时临时使用磁盘空间充当内存
head命令
作用:查看文档的前n行,如果不指定n 默认查看前10行
语法:head -n 文档路径 n表示行数
tail指令
作用:查看文档的末尾n行 不指定n默认尾10行
语法1:tail -n 文件路径
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
用法2:可以通过通过tali指令查看文件动态变化内容(变化内容不能是手动改变的)
语法:tail -f 文件路径
该命令一般用于查看系统日志
5、less命令
作用:查看文件 数字+回车:向下看几行 空格:看结尾 回车:下一行
输入:q 退出
6、wc指令
作用:统计文件内容信息(包含行数、单词数、字节)
语法:wc -lwc 需要统计的文件路径
l line 表示行数 以"/n"作为焕行结束标志(其实是统计“/n” 数量)
w words 表示单词数 (依照空格来判断单词数 一个空格就是两个单词)
c bytes 表示字节数
7、date指令(重点)
作用:表示操作时间日期(读取、设置)
语法一:直接输入date 输出形式:2019年1月1日 星期二 13:24:12
语法二:date +%F 等价于(date +%Y-%m-%d)【大小写不可用错】
输出形式:2019-01-01
语法三:date “+%F %T” ""表示让年月日时分秒成为不可分割的整体
等价于 date “+Y-%m-%d %H%M%S”
输出形式: 2019-01-01 12:13:24
语法四:获取之前或之后时间(备份使用)
date -d “-2day” “+%Y-%m-%d” %H:%M:%S
%F: 表示完整的年月日
%T:表示完整的时分秒
%Y:表示4位数年份
%m :表示两位月份
%d:表示日期
%M:表示分钟
%S: 表示秒数
8、cal指令
用来操作日历
语法:cal 等价于 cal -l 直接输出当前月份的日历
语法:cal -3 表示输出上一个月 这个月 下个月的日历
语法4:cal -y 年份 表示输出某一年的日历 (不输默认当年)
9、clear /Ctrl+L指令
作用:清除终端已存在的命令信息(并没有清除只是页面下翻)
10、管道(重要)
管道符:|
作用:管道符一般可用于“过滤”,“特殊“,扩展处理””
语法:管道符一般不可以单独使用,必须搭配前面将的一些指令来做,其主要是辅助作用。
过滤案例(100%使用):需要管道符查询出根目录下包含“y”字母的文档名称
命令:ls /| grep y
针对上面的命令说明:以管道符为分界,将管道符前输出的结果丢给管道符后面,作为后面的输入。
grep 是非常高效的查询工具 多用于过滤
2、特殊用法案例:
通过管道的方法来实现less的等价效果
之前通过less查看文件: less 文件路径
现在可以cat 路径|less
例子:查询一下根下bin目录有多少个文件
Linux的高级指令
软链接
命令 | 作用 |
---|---|
ln -s 被链接的源文件 链接的文件 | 建立文件的软链接 |
注意:
没有-s 建立的是一个硬链接
源文件要使用绝对路径,不能使用相对路径
3、hostname指令
作用:操作服务器的主机名(读取、设置)
语法一:hostname 输出完整的主机名
语法二:hostname -f 输出当前主机的FQDN(全限定域名)
2、ID命令
作用:查询用户的基本信息(包括用户id 组id 附加组id)该指令不指定用户则默认当前用户
语法1:id 默认显示执行当前命令的用户信息
语法二:id 用户名
如何验证上述信息是否正确?
验证用户信息:
cat /etc/passwd |grep haichao
验证组信息:
cat /etc/group |grep haichao
列的含义:
UID:执行该进程的用户id
PID:进程id
PPID:该进程的父级进程id,如果一个程程序的父级id找不到该程序进程称之为僵尸进程(parent process ID)
C:CPU的占用率,其形式是百分数
STIME:进程的启动时间
TTY:终端设备,发起该进程的设备识别符号,如果显示为? 则表示该进程不是由终端发起的
TIME:进程的执行时间
CMD:该进程名称活着对应的路径
3、whoami命令
作用:“我是谁”显示当前用户名,一本用于shell脚本,用于获取当前用户名方便记录日志。
语法:whoami
4、ps -ef指令(重点)
命令 | 作用 |
---|---|
pa aux | 查看进程的详细状况 |
top | 动态显示运行中的进程并且排序 |
kill [-9]进程代号 | 种种指定的代号进程。 -9表示强行终止 |
ps 默认只会显示当前用户通过终端启动的应用程序
- ps 选项说明
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
x | 显示没有终端控制的进程 |
top退出输入q
指令:ps
作用:主要用于查看服务器的进程信息
选项含义:
-e 等价于:-A ,表示列出全部进程
-f表示列出全部的列(显示全段文字)
执行结果:
例如查看火狐浏览器的进程:
5、top指令
作用:查看服务器进程占的资源(100%)
语法:top (动态显示)
退出命令:q
PID: 进程id
USER:进程对应的用户
PR:优先级
VIRT:虚拟内存
RES:常驻内存
SHR:共享内存
计算机实际使用内存=常驻内存RES-共享内存SHR
S表示进程的状态status(sleeping s表示睡眠 r表示运行)
%cup:表示cpu的占用率
%mem:表示内存的占用率
TIME:表示执行的时间
COMMAD:进程的名称或者路径
在top运行的时候可以用以下快捷键
M:表示进程按照内存占用率大小排序
P:表示进程按CPU占用率排序
1:当前服务器有多个CPU的时候可以使用1快捷键来切换知否展示各个CPU的详细信息。
6、du -sh指令
作用:查看目录的真实大小
语法:du -sh 目标目录
s:只显示汇总的大小
h:以可读性较高的形式显示
7、find指令
命令 | 作用 |
---|---|
find [路径] -name “*。py” | 查找指定路径下扩展名是,py的文件 |
作用:用于查找文件
语法:find 路径范围 选项 选项的指
选项:
-name:按照文档名称搜索(支持模糊搜索)
-type:按照文档类型进行搜索
文档类型:“-”表示文件(在使用find时要用f来替换)d表示文件夹
案例:用find搜索根下名字为haichao的文件
案例:搜索e桌面目录下所有后缀名为txt的文件
**注意在*之前需要有一个转义符\否则会报路径必须在表达式之前的错误。
案例:搜索桌面下所有的文件
案例:搜索桌面下所有的文件夹
8、service指令(重点)
作用: 用于控制一些软件的服务启动/重启/停止
语法:service 服务名 star/restart/stop
额我也启动不起来
未完——
9、kill指令(重点)
作用:杀死进程(当遇到僵尸进程或者某些原因要关闭进程的时候)
语法:kill 进程pid(语法需要配合ps一起使用)
第一步用ps找到PID
第二部:kill pid
语法二:killall 进程名称
比kill好用
例如杀死火狐进程:
10、ifconfig指令(重点)
作用:用于操作网卡相关的指令
语法:ifconfig (获取网卡信息)
ens33表示linux的一个网卡,ens33是器名称。
LO(loop,本地回还网卡,其一般地址都是127.0.0.1)也是一个网卡的名称。
注意:inet 就是网卡的ip地址
11、reboot 指令
作用:重启计算机
语法一:reboot
语法二:reboot -w模拟重启计算机 但不重启(只写关机与开机的日志)
12、shutdown
作用:关机
语法一:shutdown -h now 关机提示“” 或者 shutdown -h 时间(时:分)“关机提示”
取消关机:shutdown -c
还有几个关机命令:
init 0
halt
poweroff
13、uptime 指令
作用:输出计算机的持续在线时间(计算机从开机到现在)
14 、uname 指令
作用:获取与计算机系统相关的信息
语法:uname
语法二:uname -a (表示获取所有的系统信息)类型、全部主机名、内核版本、发布时间、开源计划
15、netstat -tnlp指令
作用:查看网络连接状态
语法:netstat -tnlp
-t表示只列出tcp协议的连接
-n表示将地址转换为ip地址,将协议转化为端口号来显示
l:表示过滤出“state”(状态)列中其值为listen(监听)的连接
-p:表示发起进程连接的进程pid名称
16、man指令
作用:manual 手册(包含linux中 全部指令的手册 英文)
语法:man (按q退出)
案例:通过man 查询cp指令的用法
打包、压缩与解压缩
打包/解包
命令 | 作用 |
---|---|
tar -cvf 打包后文件名.tar 被打包的文件 /被打包的文件路径 | 打包文件(只打包不压缩) |
tar -xvf 打包文件.tar | 将打包的文件解包到当前路径下 |
tar 选项说明
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程显示进度 |
f | 指定档案文件名称,f后一定是tar文件,所以一定要放在最后 |
注意:f 必须放在最后其他随意
压缩/解压缩
- gzip
命令 | 作用 |
---|---|
tar -zcvf 打包后的文件名.tar.gz 被压缩的文件或路径 | 打包并压缩文件 |
tar -zxvf 打包文件.tar.gz | 将文件解包到当前路径 |
tar -zxvf 打包文件.tar.gz -C 目标路径 | 解压到指定路径 |
-C 解压到指定目录,注意:要解压的目录必须存在
- bzip2
bzip2 与 gzip 用法相似
命令 | 含义 |
---|---|
tar -jcvf 打包后的文件名.tar.bz2 被压缩的文件 或 路径 | 压缩文件 |
tar -jxvf 打包文件.tar.bz2 | 解压文件 |
练习题
1、如何通过命令行重启linux 操作系统
reboot
2、如何在命令行行快速删除光标前/后的内容
前ctrl+u
后:ctrl+k
3、文件备份,如何将/etc/passwd备份到 /tmp目录下
查看一下有没有成功
4、查看系统左后创建的3个用户
5、统计当前系统有多少个用户
6.如何在桌面创建文件?
如何查看etc所占的磁盘空间
如何删除/tmp下所有文件
尝试启动Apache服务 ,并检查是否成功
service httpd start
ps -ef|grep httpd
编辑器之神vim编辑器
重点是光标的移动、模式切换、删除、查找、替换、复制、粘贴、撤销
二、vim的三大模式(重点)
vim三大模式:命令行模式、编辑模式(输入模式)末行模式(尾行模式)
命令行模式:在该模式下是不能对文件直接进行编辑的,可以输入快捷键进行操作(删除、复制、移动光标、粘贴等)【打开vim默认进入的模式】
编辑模式:对文本进行编辑
末尾行模式:可在末尾行输入命令进行操作(搜索、替换、保存、退出、撤销、高亮等)
vim打开文件的方式(4种)
语法一:vim 文件路径
语法二:vim +数字 文件的路径(打开指定的文件并将光标移动到该行)
语法三:vim +/关键词 文件路径(打开指定文件,并将关键词高亮)
语法四:vim 文件路径一 文件路二 … (同时打开多个文件)
重点:先复制出一个/etc/passwd文件,复制到当前的家目录下(不要在原目录下改)
**退出方式:q **
三、命令模式
1.光标移动
1.光标移动到行首
按键:shift+6
2.光标移动到行尾
按键:shift+4
3.光标移动到首行
按键:gg
光标移动到尾行:
按键:G
翻屏:
向上:ctrl+b
向下:ctrl+f
二、复制操作
1.复制光标所在行
按键:yy
粘贴在想要位置按下p
2、以光标所在行为准(包含当前行)向下复制指定的行数
按键:数字yy
3.可视化复制
按键:ctrl +v(可视块)
V(可视行)
v(可视)
然后按上下左右进行选择,按下y进行复制,按下p进行粘贴
三、剪切删除
1、剪切删除光标所在行
按键:dd(删除之后下一行上移)
注意:dd是严格意义上的粘贴,如果只剪切不粘贴就是删除
2、剪切删除光标所在行为准(包含当前行)向下删除指定的行
按键:数字dd
3.剪切/删除光标所在行之后的内容,但是删除后下以行不上移
按键;D(删除后当前行编程空白)
4可视化删除
按键:ctrl +v(可视块)
V可视行
v可视
上下左右移动,按下D表示删除选中行,d表示删除选中块
4、撤销/恢复
撤销:输入:(不属于命令模式)
恢复:ctrl +r 恢复之前的撤销操作
5、扩展1
1、快速将光标移动到指定的行
按键:数字G
2.以当前光标为准向上/向下移动n行
按键:数字↑ 数字↓
3.在末行模式下快速移动到指定行
:行数
四、模式之间的切换
五、末行模式
进入方式:由命令模式进入,按下“:”或者“/(表示查找)”
退出方式:
1、按下esc
2、连续按两次esc(删除末行全部字符)
保存操作:
输入“:w” 保存文件
输入:“w 路径”另存为
退出:
输入“:q”退出文件
保存并退出:
输入“:wq”
强制退出:
输入“:q!”表示强制退出,刚才操作不保存
调用外部命令
输入:“:!外部命令”
(外部命令执行完后,按任意键即返回vim)
6.搜索
输入:“/关键词”
例如我想在passwd 文档中搜索haichao关键词
在搜索结果切换上/下一个结果N/n(next)
如果要取消高亮则输入“:nohl”
7、替换
:s/搜索的关键词/新的内容 (替换光标所在行第一处符合条件的内容)
:s/搜索的关键词/新的内容/g(替换光标所在行符合条件的内容)
** :%s/搜索的关键词/新的内容**替换整个文档中每行第一个符合条件的内容
:%s/搜索的关键词/新的内容/g替换整个文档的符合条件的内容
%表示整个文件
g表示全局(global)
8、显示行号(临时)
输入“:set nu”
如果想取消输入“:set nonu”
扩展2:使用vim打开多个文件 在末行切换文件
查看当时已经打开的文件名称“:files”
在%a a(active)
#:表示上一个打开的文件
切换文件的方式
1、如果要指定切换文件的名称,可以输入“:open”
2、 可以通过其他命令来切换上一个文件/下一个文件
输入:“:bn”切换到下一个文件(back next)
输入:“:bp”切换到上一个文件(back prev)
六、 编辑模式
七、实用功能
1.代码着色
案例:首先创建简单的c语言
显示着色:syntax on
不显示着色 :syntax off
注意文件只有在 /etc 目录下才会显示颜色
二、vim 中 计算器的使用
1、进入编辑模式
2、按下ctrl +r,然后输入“=”,此时光标会变到最后一行
3、输入需要输入的内容 按下回车
八、扩展
1、vim的配置(重点)
vim是一款编辑器,编辑器是有配置文件的
vim配置有三种情况
a、文件打开在末输入的配置(临时)
b、个人配置文件(~/.vimrc 如果没有可以新建)
c、全局配置文件(vim自带, /etc/vimrc)
a、
- 在配置文件中进行配置
- 比如显示行号 set nu
如果针对同一个配置项,个人配置文件中存在,则以个人配置文件为准,如果个人配置文件中不存在这一项,则以全局配置文件为准
2、异常退出
在你编辑文档时没有:wq退出,而是因为断电等其他因素退出则会显示:
解决办法:将交换文件(在编辑中产生的文件)删除即可
rm -f .passwd.swp
3、别名机制(实用)
作用:相当于创建属于自己的自定义命令
例如:在Windows下有cls命令。在linux没有这个命令但是可以通过别名机制来解决这个问题,创造自己的cls命令
别名机制依靠一个别名映射文件:~/.bashrc
注意:要想让命令生效必须重新登录当前用户
4、退出方式
之前的退出方式有 :q 、:wq
vim还支持一种退出方式“:x”
说明:
- “:x”在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存后退出
- 如果文件没有被修改但是使用:wq退出的话,文件的修改时间会被更改
- 如果文件没有被修改使用:x退出的话,文件修改时间不会更改
- 因此建议使用“:x”,来进行对文件的保存修改
- 但是不要使用X(大写),X表示蒂对文件进行加密操作
九、作业
- 使用别名机制,创建一个快捷指令kj,要求按下kj回车之后能实现:统计apache的服务进程数量。
- ps -ef |grep Apache|wc -l
chmod
chomd可以修改用户/用户组对文件目录的权限
命令格式如下:
chomd +/-rwx 文件/目录名
Linux自有服务
自有服务: 不需要用户独立安装的服务,系统自带的服务
一、运行模式
运行模式也可以称为运行级别
在linux存在一个进程init(initialize,初始化)进程id 是1
查看进程init
该进程存在一个配置文件:inittab(系统运行级别配置文件 位置 /etc/inittab)
文件的主要内容:
0 — 表示关机级别(不要将默认的运行级别设置成这个值)
1 — 单用户模式
2 — 多用户模式,不带NFS(Network File Syetem)
3 — 多用户模式,完全的多用户模式(不带桌面的,纯命令行模式)
4 — 没有被使用的模式(被保留模式)
5 — X11,完整的图形化界面模式
6 — 表示重启级别(不要将默认的运行级别设置成这个值)
与该级别相关的几个命令:
#init 0 表示关机
#init 3 表示切换到不带桌面的模式
#init 5 切换到图形界面
#init 6 重启电脑
注意:init指令需要超级管理员的权限,普通用户无法执行。
这些命令其实都是调用的init进程,将数字(运行级别)传递给进程,进程去读配置文件执行对应的操作
二、用户与用户组管理(重点)
创建用户/设置密码/删除用户
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组名 | 添加新用户 | -m 自动建立用户的家目录 -g 后跟用户所在的组,否则建立一个与用户名相同的组 |
passwd 用户名 | 设置用户的密码 | 普通用户可以passwd 修改自己的密码 |
user -r 用户名 | 删除用户 | 同时自动删除用户的家目录 |
cat /etc/passwd | grup 用户名 | 确认用户信息 |
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的密码。
用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。
要想实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除、修改以及用户密码的管理。用户组的管理
注意三个文件:
/etc/passwd 存储用户的关键信息
/etc/group 存储用户组的关键信息
/etc/shadow 存储用户的密码信息
修改文件的所属组:
chgrp -R 组名 文件/目录名
①添加用户
常用语法:#useradd 选项 用户名
常用选项:
-m:创建用户的同时 建立用户的家目录
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义
-c comment:添加注释
扩展:认识passwd文件
用户名:密码:用户ID: ID:注释:家目录:解释器shell
用户名:创建新用户名称,后期登录的时候需要输入;
密码:此密码位置一般情况都是“x”,表示密码的占位;
用户ID:用户的识别符;
用户组ID:该用户所属的主组ID;
注释:解释该用户是做什么用的;
家目录:用户登录进入系统之后默认的位置;
解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;
注意:在不添加选项的时候,执行useradd之后会执行一系列的操作
a. 创建同名的家目录;
b. 创建同名的用户组;
案例:添加选项,创建用户iphonex,让iPhonex属于1001,组,附加组1000,uid666
2、修改用户:
常用语法:usermod 选项 用户名
修改用户名:usermod -l 新用户名 旧的用户名
修改用户登陆shell:usermod -s /bin/bash 用户名
3、设置密码
常用语法:passwd 用户名
切换用户:su 用户名
如果不指定,则切换到root
切换注意事项:
切换后工作路径是不变的
4、删除用户
常用语法:userdel 选项 用户名
常用选项:
-r删除用户同时删除家目录
2、用户组管理
每个用户都有一个用户组,系统可以对一个用户组中所用的用户进行集中管理,不同linux对用户组的规定不同 ,如linux下的用户属于他同名的用户组,这个用户组在用户创建时创建
用户组的管理涉及用户组的添加、修改、删除。组的增加、修改、删除就是对/etc/group 文件的更新
文件结构:
用户组名:密码:用户组id:组内用户名
组内用户名:表示附加组是该组的用户
密码:x表示占位符,用户组可以设置密码但是一般不设置
1、用户组添加
常用语法:groupadd 选项 用户组名
常用选项:-g表示自己设置一个自定义的用户组id数字
如果自己不指定则从1000 递增
2.用户组编辑
常用语法:groupmod 选项 用户组名
常用选项:
-g:类似修改用户里的“-u”-g表示自定义用户组id
-n:类似于修改“-l”表示设置新的用户组名称
3.用户组删除
常用语法grupdel 用户组名
注意当要删除一个组,但是这个组是用户的主组的话,则不允许被删除,如果一定要删除,则要先移除该组的所用用户
which(重要)
提示
- /etc/passwd 是用于保存文件信息的文件
- usr/bin/passwd 是用于修改用户密码的程序
which 命令可以查看命令的所在位置
which ls
#输出
#/bin/ls
which useradd
#输出
#/usr/sbin/useradd
bin 和 sbin
- 在linux中,绝大多数的可执行文件都是保存在/bin 、/sbin/bin、/usr/bin
- /bin 是二进制执行文件目录,主要用于具体应用
- /sbin是系统管理员专用的二进制代码存放目录,主要用于系统管理
- /usr/bin后期安装的软件
- usr/sbin/超级用户的一些管理程序
修改用户的主/附加组
usermod
usermod 可以设置用户的主组/附加组,登陆shell命令格式如下:
主组;通常在新建用户时指定,在/etc/passwd 的第四列GID对应的组
附加组:在/etc/group 中的最后一列,用于指定用户的附加权限
提示:设置用户的附加权限之后,需要重新登陆才能生效
修改用户的主组:(passwd中的GID)
usermod -g 组 用户名
修改用户的附加组
usermod -G 组 用户名
修改用户的登陆shell
usermod -s /bin/bash
修改文件权限
命令 | 作用 |
---|---|
chown | 修改拥有者 |
chgrp | 修改组 |
chmod | 修改权限 |
-
命令格式如下:
#修改文件|目录的拥有者 chown 用户名 文件名 |目录名 #递归修改文件|目录的组 chagrp -R 组名 文件名|目录名 递归修改文件的权限 chmod -R 755 文件名|目录名
三、网络设置
首先要知道网卡的配置文件; /etc/sysconfig/network-scripts
目录中网卡的配置文件格式:
ifcfg-网卡名称
onboot:是否开机启动
bootproto:ip地址分配方式,DHCP表示动态主机分配协议
hwaddr:硬件地址。mac地址
如果需要重启网卡需要怎么操作?
service network restart
在有的分支版本中可能没有service命令来快速操作服务,但是有一个共性的目录:/etc/init.d
这个目录中放着很对服务的快捷方式。
此处重启网卡命令还可以使用:
#/etc/init.d/network restart
扩展一、如果要修改网卡的配置问价,但是配置文件的目录层次很深,此时可以在较浅的目录中创建一个快捷方式(软连接)去查找
- ln -s原始文件的路径 快捷方式的路径
扩展二、如何去重启单个网卡
停止某个网卡:ifdown 网卡名
开启某个网卡:ifup 网卡名
实际工作中不要随意禁网卡
四、ssh服务(重点)
ssh(安全壳外协议)该协议有两个常用的作用:远程连接协议、远程文件传输协议
协议使用端口号:默认22
是可以被修改的,修改的话需要修改ssh服务的服务配置文件:
/etc/ssh/ssh_config
修改端口注意:
端口范围:0-65535
不能使用别的服务器已经占的端口
服务的 启动 重启 重启
service sshd start/stop/restart
/etc/init.d/sshd start/stop/restart
1.远程终端
终端主要帮助运维的工作人员远程连接服务器,常见的终端工具有:xshell、secureCRT、putty等(以putty为例)
1、获取服务器的ip地址,可以通过ifconfig命令查看,顺手测试ip的连接相通性
2、ssh服务文件传输
可视化的界面传输工具:Fillezilla、xshell
ssh [-p port] user@remote
user 是远程机器上的用户名,不指定的话默认当前用户
remote 是远程机器的地址,可以是ip/域名,或者是后面会提到的别名
port 是指ssh server 监听的端口 不指定默认22
scp
本地复制到远程
scp [-P port]当前路径文件 user@remote:目标路径
远程复制到本地
scp [-p port] user@remote:远程路径 本地路径
- scp 就是
secure copy
是在linux下用来远程拷贝文件的命令 - 他的格式与ssh基本相同,需要注意的是,指定端口时是大写
P
示例:
1、把当地目录下的01.py复制到 远程家目录 的Desktop/01.py
注意:后面路径如果不是绝对路径,则默认指定为用户家目录为起始路径
scp -P 22 01.py root@192.168.154.133:Dedktop/01.py
2、把远程家目录下的Desktop/01.py 复制到当前本地
scp -P 22 root@192.168.154.133:Desktop/01.py 01.py
复制文件夹scp -r
选项 | 含义 |
---|---|
-r | 若给出的源文件是目录 |
-P | 若端口号不是22,-P后面加端口号 |
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎