Linux查缺补漏
存储
动态分配 用多少占多少,可以有最大限制
进程是资源分配的最小单位,
线程是程序运行的最小单位
分区
磁盘需要有索引index(相当于笔记本的目录),存储分区信息
#格式化 划分出几个扇区,把索引建好,把分区建好
U盘中文件不能超过
4G
mount
-help
df
-h 目录 #查看目录挂载的分区,h代表人性化显示
sda,b,c 代表磁盘
1,2,3
挂载磁盘
#创建一个新磁盘
创建一个新磁盘后,会有一定的空间被预分配,有助于加速磁盘
ls
/dev
/sd
*
挂载完成后,多了一个sdb,原来是sda,sda1(系统盘)
fdisk #磁盘管理(创建分区,删除分区,查看分区)
fdisk
/dev
/sdb #管理新创建的磁盘
m #查看帮助
n #创建一个新分区,可以全回车,及分一个分区;也可以分多个。
w #保存并退出
mkf
mkfs
.ext4
mkfs
.ext4
/dev
/sdb1(分区) #格式化分区,可以格式化为不同的类型
或mkfs
-t ext3
/dev
/sdc2
mount 分区 目录 #挂载分区
mkdir
/data
mount
/dev
/sdb1
/data
/ #如果要过载另一个磁盘分区,会覆盖前面的磁盘分区。
注意:挂载好磁盘分区后在里面新建一个文件,然后通过umount卸载磁盘分区,后重新过载,之前创建的文件还存在。
用df
-h
/ 与 df
-h
/data进行比较
umount
/dev
/sdb1 #卸载磁盘分区
交换分区
虚拟磁盘,当内存不够用时,可以使用虚拟磁盘当作内存使用,/swap分区。
安装系统的本质:创建各种文件夹,并拷贝文件(这些工作安装启动引导帮我们做了)
文件描述符
linux下全是文件,文件用文件描述符表示
cerro标准错误:0
cout标准输出:1
cin标准输入:2
socket也是文件:socket 0~65535
数据库底层为b+树
write
/dev
/screen hello write
1 hello
read
/dev
/keyboard2 read0
ulimit
-n 查看最大文件数,理论上最大不超过
65536个,系统会自动占
3个。
mysql的索引底层结构是b+树,减少对磁盘的I/O操作。
网络(《图解TCP/IP》这本书挺好的)
在创建一个新的磁盘后,磁盘会自动预分配一定的磁盘空间,加快运行速度。(相当于缓存)
F4 #切换终端
sync #同步磁盘
mount
-l #看自己曾经的挂载
IP地址
子网掩码
192.168.0.100(A) -> 101.7.101.22(B)
如果A与B在同一个局域网,会通过Mac地址去查找;如果不在,会经过网关
网关:192.168.0.1 没有网关只能访问局域网里面的东西,无法访问外网。
电脑通信有两种办法:1.局域网Mac地址 2.广域网IP地址
DNS可以将网址转换成IP地址
当电脑不配置DNS时,可以上网,但只能通过IP地址来通信
ping baidu
.com #会出现百度的IP地址,直接输入IP地址一样可以进入百度页面
#ping域名可以发现IP地址
DNS污染:ping Google时返回的IP地址是经过gfw墙修改过的,是错的。
ipconfig #Windows查看IP地址命令
ip addr #Linux查看IP地址命令
cat
/etc
/sysconfig
/network
-scripts
/ifcfg
-enp0s3 #查看以特网网络配置文件,可以进行改动,开机自动获取IP地址
dhclient #获取IP地址
用Net时保险,但用桥接效率更高。可以在网络界面进行设置。
桥接,连接同一个路由器,分配一个新的IP地址
NAT连接,共用同一个带宽。
HOST
-ONLY仅与宿主机连接
ifdown 网卡名 #关闭网卡
ifup #开启网卡
最小化默认开启了ssh服务,可以连接xshell
,关闭ssh服务 systemctl stop sshd 然后重新连接会连接不上。
要想连接xshell,需要新建一个网卡,设置为仅主机(Host
-Only)网络。
telnet #查询端口开启情况
用yum install net
-tools 进行下载
netstat
-anlp :grep
22 #查看端口
systemctl start 服务名 #启动命令
安装神器:zsh,一个漂亮的字符界面(自行百度)
yum install
-y git wget curl zsh
#自动安装,涉及到外网拦截的问题
sh
-c
"$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
#手动安装
git clone https
://github
.com
/robbyrussell
/oh
-my
-zsh
.git
~/.oh
-my
-zsh #下载源码
cp
~/.oh
-my
-zsh
/templates
/zshrc
.zsh
-template
~/.zshrc #复制配置
网络调试技巧
1.ping测试网络是否已经连接
2.telent测试端口是否开启,在window下`telent
192.168.56.102:22`测试。如果`telent`找不到命令,需要在应用与功能里开启`telent`
3.防火墙
用户与组
操作
groupadd 组名 #添加组
useradd 用户名 #添加用户
usermod 用户名
-g 组名 #添加用户到组
cat
/dev
/group #查看组
passwd 用户 #设置密码
whoami #查看当前用户
id #查看用户信息
yum install tree
-y #tree命令
tree #查看组结构
权限
可执行文件不一定可以执行,可能没有执行权限
chmod
+x 文件名 #提升权限
chmod
-x 文件名 #降低权限
file 文件名 #查看文件类型
文件属性:新建文件后会保存一些信息(创建时间,文件权限)。最前面的字母,d表示目录,l表示软连接
linux中文件后缀名与文件类型无关
export PATH
=/root
/:$PATH #配置环境变量PATH
vim
/etc
/profile #持久化自己设计的环境变量,在最后加上配置就行
cat
/etc
/shadow #查看密码
Linux操作技巧
处理文件
vim
1.txt #编辑文件
进入字符模式后 yy #复制
p #粘贴,
100p为粘贴
100遍
o #跳到下一行
cat
1.txt #查看文件内容
more
1.txt #可以翻页查看文件内容,用回车翻页
less
1.txt #同上
tail
1.txt #默认查看文件后
10位
tail
1.txt
-n20 #查看文件后
20位
tail
-F
1.txt #监听查看文件后
10位,会一直等待
管道符(|)
grep hello 1.txt -n #查找文件内容,并显示行数
cat 1.txt | grep hello #查找不能直接打开的文件内容,'|'的含义是把前面的输出作为后面的输入。
cat 1.txt | grep hello | cat | cat | cat | cat #同样可行
重定向(>)
echo hello > nginx.log #覆盖添加
echo hello >> nginx.log #追击添加
lts长期支持版本 long time support
后台运行ctrl + z
然后调到前台fg