目录
序言
本笔记是我在b站学习Linux时的笔记,这大概是我23年学的内容了,最近重新学习了,并把以前的学习笔记整理了一下,分享给大家。
以前我是写makedown笔记的,最近有点想试试csdn的富文本笔记(这个笔记就是富文本笔记写的),这两种编辑模式都有一些缺点,如果官方把这两种编辑模式做一下兼容就好了。
1.Linux基础命令
1.1.前置知识
1.1.1.命令通用格式
- 在Linux中,命令有其通用的格式
command [-options] [parameter]
command | 命令 |
options | 选项(命令的执行方式已经执行细节,[ ]里为可选) |
parameter | 参数(可为地址) |
1.1.2.路径
- 绝对路径:以根目录"/"为起点
- 相对路径:以当前工作目录里的文件夹为起点
- 特殊路径符:
符号 | 含义 |
. | 表示当前目录 |
.. | 表示上一级目录 |
~ | 表示HOME目录 |
1.1.3.模糊匹配(通配符)
匹配符 | 功能 |
test* | 匹配任何以test开头的内容 |
*test | 匹配任何以test结尾的内容 |
*test* | 匹配任何包含test的内容 |
1.1.4.vi\vim文本编辑
- vi\vim是Linux中最经典的文本编辑器
如果文件路径表示的文件不存在,此命令会创建新文件,并且编辑新文件
vim文本编辑工作模式图:
- 使用vim文本编辑器时,可以利用快捷键提高编辑效率(下面快捷键都是在命令模式下使用)
常用快捷键
i | 在当前光标位置进入输入模式 |
a | 在当前光标位置之后进入输入模式 |
I | 在当前行的开头,进入输入模式 |
A | 在当前行的结尾,进入输入模式 |
0 | 在当前光标下一行进入输入模式 |
0 | 在当前光标上一行进入输入模式 |
esc | 任何情况下输入esc都能回到命令模式 |
不常用快捷键(了解即可)
0 | 移动光标到当前行的开头 |
$ | 移动光标到当前行的结尾 |
/ | 进入搜索模式 |
n | 向下继续搜索 |
N | 向上继续搜索 |
1.2.无选项命令
命令 | 用途 |
touch | 创建文件,无选项 |
cat | 查看内容,无选项 |
more | 查看内容,但与cat相比,可通过空格键翻页(通过q退出查看) |
mv命令 | 用于移动文件\文件夹 |
pwd命令 | (Print Work Directory),查看当前所在的工作目录 |
cd命令 | (Change Directory),表示要切换到哪个目录下,不写参数,表示回到用户的HOME目录 |
exit命令 | 可用于从root用户返回普通用户 |
su - root | 临时切换root用户 |
echo命令 | 命令行内输出指定内容关键字最好用""包起来 |
1.3.有选项命令
1.3.1.ls命令
Is命令的作用是列出目录下的内容
语法: ls [-a -l -h] [Linux路径]
选项 | 含义 |
[-a]选项 | 所有文件 |
[-l]选项 | 以竖向的形式展示内容,并展示更多信息 |
[-h]选项 | 表示以易于阅读的形式,列出文件大小(必须要搭配 -l) |
1.3.2.mkdir命令
(Make Directory)
- 在工作目录下创建文件夹
语法:mkdir[-p] Linux路径
[-p]选项 | 一次性创建多个层级的目录 |
注意:创建文件夹涉及到权限问题,普通用户在HOME外无法成功
1.3.3.cp命令
cp命令可以用于复制文件或文件夹,cp命令来自英文单词:copy
语法:cp[-r]参数1 参数2
[-r]选项 | 复制文件夹使用,表示递归 |
- 参数1:Linux路径,表示被复制的文件或文件夹
- 参数2:Linux路径,表示要复制去的地方
1.3.4.rm命令
rm命令可用于删除文件、文件夹,后面可以更任意个参数
[-r]选项 | 用于删除文件夹 |
[-f]选项 | 用于强制删除(只有root用户可以使用) |
C盘格式化(慎用):rm -rf / 或者 rm -rf /*
1.3.5.which命令
通过which命令,查看所使用的一系列命令的程序文件存放位置
1.3.6.find命令
搜索指定名的文件
语法:find 起始路径 [-name] "被查找的文件名"
[-name]选项 | 以文件名方式搜索 |
- 为保证搜索到更多的文件,可以临时切换到root用户
- 也可以通过通配符搜索
搜索指定文件大小的文件
语法:find 起始路径 [-size] + -n [KMG]
[-size]选项 | 以文件大小方式搜索 |
- +、- 表示大于和小于
- n表示大小数字
- kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
1.3.7.grep命令
grep命令,从文件中通过关键字过滤文件行
[-n]选项 | 表示在结果中显示匹配的行的行号 |
- 关键字最好用""包起来
- 参数可作为内容输入端口
1.3.8.wc命令
可以通过wc命令统计文件的行数、单词数量等
语法:wc [-c -m -l -w] 文件路径
[-c]选项 | 统计bytes数量 |
[-m]选项 | 统计字符数量 |
[-l]选项 | 统计行数 |
[-w]选项 | 统计单词数量 |
1.3.9.管道符 |
将管道符左边命令的结果,作为右边命令的输入
1.3.10.反引号[`]
被`包围的内容,会被作为命令执行
1.3.11.重定向符
左侧命令的结果,写入到符号右侧指定的文件中
1.3.12.tail命令
可以查看文件尾部内容,跟踪文件的最新更改
tail[-f -num]Linux路径
[-f]选项 | 表示持续跟踪 |
[-num]选项 | 表示查看尾部多少行(默认10行),(num为具体数字) |
2.Linux实用操作
2.1.history命令
查看以前的输入命令
近期历史命令执行:!+ 命令的开头字母
早期历史命令执行:Ctrl + R 然后输入命令所含关键字即可(如果想要修改后执行,按左右键修改)
2.2.Linux系统的应用商店
安装包:
系统 | 文件 |
Windows系统 | exe文件、msi文件 |
Mac系统 | dmg文件、pkg文件 |
CentOS | rpm文件 => yum |
Ubunu | deb文件 => apt |
2.3.yum命令(需要root权限)
语法:yum [-y] [ install | remove | search] 软件名称
选项[-y] | 自动确认,无需手动确认安装或卸载过程 |
ubumtu系统中apt用法和yum一致,同样需要root权限
2.4.systemctl命令
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
语法:systemctl start | stop | status | enable | disable 服务名
系统内置的服务比较多,比如:
NetworkManager | 主网络服务 |
network | 副网络服务 |
firewalld | 防火墙服务 |
sshd | ssh服务(FinalShell远程登录Linux使用的就是这个服务) |
部分软件安装后没有自动集成到systemctl中,我们可以手动添加。
2.5.软连接(快捷方式)
语法:ln -s 参数1 参数2
[-s]选项 | 创建软连接 |
- 参数1:被链接的文件或文件夹
- 参数2:要链接去的目的地
2.6.date命令
语法:date [-d][+格式化字符串]
[-d]选项 | 按照给定的字符串显示日期,一般用于日期计算 |
格式化字符串
格式化符 | 含义 |
%Y | 年 |
%y | 年份后两位数字 (00~99) |
%m | 月份 (01~12) |
%d | 日 (01~31) |
%H | 小时 (00~23) |
%M | 分钟 (00~59) |
%S | 秒 (00~60) |
%s | 时间戳(自 1970-01-01 到现在的秒数) |
最好使用双引号包围格式化字符串,作为整体
格式化:"+"、"-"
year年
month月
day天
hour小时
minute分钟
second秒
校准时间(ntp程序)
通过阿里云提供的服务网址配合ntpdate(安装ntp后会附带这个命令)命令自动校准
语法:ntpdate -u ntp.aliyun.com
修改时区:
删除本地存储时区:rm -f /etc/localtime
修改为上海时区:sudo 1n -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.7.IP地址(ifconfig)
网卡 | |
主网卡 | ens33 |
本地回环网卡 | lo |
虚拟机专用网卡 | virbr0 |
127.0.0.1 | 这个IP地址用于指代本机 |
0.0.0.0 | 特殊IP地址,可以用于指代本机 |
可以在端口绑定中用来确定绑定关系
在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问
2.8.主机名(hostname)
修改主机名:hostnamectl set-hostname
- 在联网询问公开DNS服务器之前,会先查看是否有本机记录
查看本机的记录(私人地址本)
Windows查看:C:\Windows\System32\drivers\etc\hosts
Linux查看:/etc/hosts
配置主机名映射
1.以管理员身份运行
2.在文件中打开
3.改为所有文件
4.打开host文件
改写
然后用改写的的主机名和IP使用有同样的效果
2.9.ping命令
ping [-c num] ip或主机名
[-c]选项 | 检查的次数,不使用-c选项,将无限次数持续检查 |
2.10.wget命令(在网页上下载)
非交互式的文件下载器,可以在命令行内下载网络文件
wget [-b] url
[-b]选项 | 后台下载,会将日志写入到当前工作目录的wget-log文件 |
2.11.curl命令
curl可以发送http网络请求
curl [-0] url
[-0]选项 | 用于下载文件 |
2.12.虚拟端口
- 通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通
公认端口(1~1023) | 通常用于一些系统内置或知名程序的预留使用(如SSH服务的22端口,HTTPS服务的443端口),非特殊需要,不要占用这个范围的端口 |
注册端口(1024~49151) | 通常可以随意使用,用于松散的绑定一些程序\服务,一般用于用户自定义 |
动态端口(49152~65525) | 程序对外进行对外进行网络请求时,临时找一个临时端口(发起访问,也会找一个临时端口) |
2.13.查看端口
- 可以通过Linux命令去查看端口的占用情况
使用nmap命令,安装nmap:yum -y install nmap
查看命令: nmap 端口号
- 通过netstat命令,查看指定端口和进程的占用情况
安装netstat:yum -y install net-tools
查看命令:netstat -anp | grep 端口号
2.14.进程
- 程序运行在操作系统中,是被操作系统所管理的,为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程,并都分配一个独有的:进程ID(进程号)
查看全部进程: ps -ef
UID | 进程所属的用户ID |
PID | 进程的进程号ID |
PPID | 进程的父ID(启动此进程的其它进程) |
C | 此进程的CPU占用率(百分比) |
STIME | 进程的启动时间 |
TTY | 启动此进程的终端序号,如显示?,表示非终端启动 |
TIME | 进程占用CPU的时间 |
CMD | 进程对应的名称或启动路径或启动命令 |
- 对进程进行操作:
使用管道符配合grep来进行过滤:ps -ef | grep tail
关闭进程:kill [-9] 进程ID
[-9]选项 | 表示强制关闭进程 |
2.15.主机状态监控
系统资源监控
top命令查看CPU、内存使用情况,类似Windows的任务管理器(每5秒刷新)
[-p]选项 | 只显示某个进程的信息 |
[-d]选项 | 设置刷新时间,默认是5s |
[-c]选项 | 显示产生进程的完整命令,默认是进程名 |
[-n]选项 | 指定刷新次数,比如 top -n 3,刷新输出3次后退出 |
磁盘监控
df命令,可以查看硬盘的使用情况
语法:df [-h]
[-h]选项 | 单位显示 |
使用iostat命令的-x选项,可以显示更多信息
iostat [-x] [num1] [num2]
- num1:刷新间隔,
- num2:刷新几次
- rKB/s: 每秒发送到设备的读取请求数
- wKB/s: 每秒发送到设备的写入请求数
- %util: 磁盘利用率
网络监控
sar命令:
语法: sar -n DEV num1 num2
- rxpck/s: 每秒钟接受的数据包
- txpck/s: 每秒钟发送的数据包
2.16.环境变量
操作系统在运行的时候,记录的一些关键性信息,用以辅助系统运行
HOME | /home/itheima,用户的HOME路径 |
USER | itheima,当前的操作用户 |
PWD | 当前工作路径 |
当执行任何命令,都会按照PATH顺序,从路径中搜索要执行的程序的本体
$符号:
- 在Linux系统中,$符号被用于取”变量”的值
- 取得环境变量的值就可以通过语法:$环境变量名 来取得
例如: echo $PATH
当和其它内容混合在一起的时候,可以通过{}来标注取的变量是谁
3.用户和权限
3.1.su命令
用于账户切换:su[-][用户名]
3.2.exit命令
- exit命令退回上一个用户,也可以使用快捷键:Ctrl + D
3.3.sudo命令
- 可为普通的命令授权,临时以root身份执行
- 在此之前,需要为普通用户配置sudo认证
切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
在文件的最后添加:
3.4.用户组管理
- groupadd 创建
- groupdel 删除
3.5.用户管理
useradd 命令: 创建用户
useradd [-g -d] 用户名
不指定-g,会创建同名组并自动加入
不指定-d,HOME目录默认在:/home/用户名
userdel 命令:删除用户
userdel [-r] 用户名
不使用-r,删除用户时,HOME目录保留
id 命令:查看用户所属组
id 用户名
usermod -aG命令:修改用户所属组
usermod -aG 用户组 用户名
getent命令:
getent passwd | 可以查看当前系统中 用户 |
getent group | 可以查看当前系统中 用户组 |
3.6.权限
- 第一部分:权限,读(r),写(w),执行(x)
- 第二部分:所属用户
- 第三部分:所属用户组
先用户组,再用户
3.7.chmod命令
修改权限信息(只有文件、文件夹的所属用户或root用户可以修改)
语法:chmod [—R]权限 文件或文件夹
[-R]选项 | 对文件夹内的全部内容应用同样的操作 |
chmod u=rwx,g=rx,o=x hello.txt
快捷写法:chmod 751 hello.txt
7 | 111 | rwx |
5 | 101 | r-x |
1 | 001 | --x |
r记为4(2的2次方),w记为2(2的1次方),x记为1(2的0次方)
3.8.chown命令
修改文件、文件夹的所属用户和用户组(以此命令只适用于root用户执行)
chown [-R][用户][:][用户组]文件或文件夹