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