Linux

Linux学习笔记

linux

背景

两大派别

redhat系列和debian系列
redhat系列主要涉及服务器等领域
debian系列主要涉及个人PC等领域
两大派别

文件系统层次结构

linux根目录——“ / ”,文件系统被组织成一个倒置的目录树,根目录为顶部
文件系统层次结构

目录名 存放内容
bin (binaries) 存放二进制可执行文件
sbin (super user binaries) 存放二进制可执行文件,只有root才能访问
etc (etcetera) 存放系统配置文件
usr (unix shared resources) 用于存放共享的系统资源
home 存放用户文件的根目录
root 超级用户目录
dev (devices) 用于存放设备文件
lib (library) 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt (mount) 系统管理员安装临时文件系统的安装点
boot 存放用于系统引导时使用的各种文件
tmp (temporary) 用于存放各种临时文件
var (variable) 用于存放运行时需要改变数据的文件

Linux操作

命令行

基本语法

切换控制台 ctrl+alt+F1~F6

1是图形化界面,其他是CLI界面

命令的语法

命令 -选项 参数
    多个选项可以连写:-a -b -c == -abc
    简写单减号 -l 全拼双减号 --length

获取帮助

Linux中有两种常见的命令帮助方式:
help和man page
help:通常是–help或-h
man:Linux提供的手册,包含大多数详细命令

路径

绝对路径:
指定文件在文件系统层次结构中的确切位置。从根目录(/)开始,并指定必须遍历的每个子目录才能到达特定文件。简单规则识别:带有正斜杠(/)的路径名作为第一个字符的是绝对路径。
绝对路径的命令查看方式——pwd

相对路径:
例如,/var目录中的用户可以相对的将消息日志文件称为log/message

导航路径:

软/硬链接

名称 命令 作用
硬链接 ln 被链接的源文件 链接文件 每个文件都以一个硬链接开始。当创建指向一个文件的硬链接时,将创建指向该相同数据的另一个名称(硬链接本质),修改内容会同步到所有其它硬链接,删除不影响其它硬链接
软链接 ln -s 被链接的源文件 链接文件 建立文件的软链接,用通俗的方式讲类似于 Windows 下的快捷方式

输入和输出

重定向正确信息

命令 > file
    如果file不存在则创建,存在则覆盖
命令 >> file1
    如果file不存在则创建,存在则追加

重定向错误信息

命令 2> file / 2>> file
    将错误信息覆盖/追加到file
命令 &> file / &>> file
    重定向正确和错误的内容到file中

管道

命令1|命令2
    把命令1的结果传递给命令2作为参数

过滤指令grep

grep 关键字 file
grep -i 关键字 file 忽略大小写
    -n 显示行号
    -v 反向过滤
    -A/B/C5 显示关键字及后面/前面/前后5行

权限管理

命令:ls -l 简称 ll
前十一个字符代表权限,读r、写w、执行x
drwxr-xr-x.

1 2-4 5-7 8-10 11
文件(-),目录(d),链接(l),设备(C),块设备(b) 第一组rwx代表文件所有者权限 第二组rwx代表与文件所有组同一组用户权限 第三组rwx代表其他所有用户权限 .代表没有ACL扩展权限,+代表有ACL扩展权限

权限修改

命令:chmod 777 file
r=读取 //值=4
w=写入 //值=2
x=执行 //值=1
每一组为3个二进制,值为1-7,代表不同的权限组合

ssh远程连接

命令:ssh 用户名@主机名/IP

调整文件:/etc/ssh/sshd_config
禁止密钥登录:PubkeyAuthentication no
禁止密码登录:PasswordAuthentication no
禁止root用户登录:PermitRootLogin no

额外:
    远程拷贝 scp 命令和cp一样
    scp 被拷贝的文件 拷贝到哪去

HTTP服务

Apache是世界使用排名第一的Web服务器软件。是Linux上的web应用的标准服务工具 httpd

Apache服务的各个目录文件

目录或文件 描述
/etc/httpd Apache服务的根目录
/etc/httpd/conf/httpd.conf Apache服务的主配置文件
/var/www/html Apache服务的文档根目录
/var/log/httpd Apache服务的日志目录
/var/log/httpd/access_log Apache服务的访问日志文件
/var/log/httpd/error_log Apache服务的错误日志文件

网卡配置

 BIOS介绍
BIOS

命名规则

板载网卡:从BIOS中获取的可用情况下,eno1
PCI-E热插拔插槽:从BIOS中获取的可用情况下,ens1
根据设备连接的物理位置:PCI总线号+槽位号,enp2s0
传统kernel:eth0

图形化配置

使用nmtui
nmtui
nmtui1

文件配置

linux系统中网卡配置文件存放在 /etc/sysconfig/network-scripts 目录下,以 ifcfg- 文件开头
编辑对应网卡的配置文件,就可以进行网络配置
文件配置网卡
配置完成后需要重启网络服务生效
重启网络服务

常用网络维护命令——ifconfig

ifconfig用于查看网卡情况
ifconfig

常用网路维护命令——tcpdump

tcpdump是端口抓包命令,结合wireshark工具分析报文情况

1
2
3
4
5
6
7
tcpdump抓包命令:
抓网卡的包:tcpdump -i ens160 -w /tmp/xxx.cap
抓IP的包:tcpdump -i ens160 host 192.168.1.123 -w /tmp/xxx.cap
抓指定端口的包:tcpdump -i ens160 host 192.168.1.123 and port 80 -w /tmp/xxx.cap
抓指定协议的包:tcpdump -i ens160 host 192.168.1.123 and icmp -w /tmp/xxx.cap
抓10000个包后退出:-c 10000
后台抓包,控制台退出也不影响:nohup tcpdump -i eth1 port 110 -w /tmp/xxx.cap &

YUM

YUM是前端软件包管理器。基于RPM包管理,能从指定服务器自动下载RPM包并且安装,自动处理依赖关系,并且一次性安装所有依赖的软件包

YUM是C/S架构(客户端/服务端),服务端首先要是一个文件服务器,里面放着RPM包、元数据文件、conf文件、binary信息,并通过文件共享服务让外部客户端可以访问到存储RPM包的目录

仓库文件

/etc/yum.repos.d/xx.repo。repo文件是客户端要访问yum源的配置文件,指定我们要从哪里下载需要的安装或者升级软件包。一般从网站上下载现成的repo配置文件,比如阿里云镜像站

YUM常用命令

1
2
3
4
5
6
7
8
9
10
yum info 软件包名称 //查看软件包信息
yum search //搜索软件包
yum list //通过软件名查看有几个下载路径

yum install 软件包 //安装
yum install --downloadonly --downloaddir=/path //仅下载不安装
yum update 软件包 //升级
yum remove 软件包 //移除

yum whatprovides 命令 //查询命令需要安装什么软件包

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 最常用
pwd 显示当前工作目录(print working directory)
touch 创建空文件
mkdir 创建目录(make directoriy)
-p 父目录不存在情况下先生成父目录 (parents)
cp 复制文件或目录(copy)
-r 递归处理,将指定目录下的文件与子目录一并拷贝(recursive)
mv 移动文件或目录、文件或目录改名(move)
rm 删除文件(remove)
-r 同时删除该目录下的所有文件(recursive)
-f 强制删除文件或目录(force)
rmdir 删除空目录(remove directoriy)
cat显示文本文件内容 (catenate)
echo

systemctl list-unit-files | grep... //查看系统服务列表
systemctl start/stop/restart 服务名 //服务启动,停止,重启
systemctl enable/disable 服务名 //开启自动启动,禁止服务
systemctl status 服务名 //查看服务状态



# 补充
wc 统计文本的行数、字数、字符数(word count)
-m 统计文本字符数
-w 统计文本字数
-l 统计文本行数
more、less 分页显示文本文件内容
find 在文件系统中查找指定的文件
find /etc/ -name "aaa"
grep 在指定的文本文件中查找指定的字符串
ln 建立链接文件(link)
-s 对源文件建立符号连接,而非硬连接(symbolic)
top 显示当前系统中耗费资源最多的进程
ps 显示瞬间的进程状态
-e /-A 显示所有进程,环境变量
-f 全格式
-a 显示所有用户的所有进程(包括其它用户)
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程
kill 杀死一个进程
kill -9 pid
df 显示文件系统磁盘空间的使用情况
du 显示指定的文件(目录)已使用的磁盘空间的总
-h文件大小以K,M,G为单位显示(human-readable)
-s只显示各档案大小的总合(summarize)
free 显示当前内存和交换空间的使用情况
netstat 显示网络状态信息
-a 显示所有连接和监听端口
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-p 显示建立相关链接的程序名
ifconfig 网卡网络配置详解
ping 测试网络的连通性

快捷键

1
2
3
4
单击TAB补全 双击TAB显示可选的可补充命令行
ctrl + c(停止当前进程)
ctrl + r(查看命令历史)
ctrl + l(清屏,与clear命令作用相同)

vim编辑器

末行模式

查询,忽略大小写的查询 set ic
保存w
退出q
设置参数set
替换 []s/old/new/g,%全文替换,(n1,n2)范围内替换

命令模式

复制yy,黏贴p,剪切dd
撤销u,前进ctrl+r,删除字符nx
替换r R,保存ZZ,G最后一行gg第一行

查看用户相关信息

1
2
cat etc/passwd 查看用户信息
cat etc/group 查看用户组