赞
踩
1.Linux目录结构
以单根的方式组织文件/
文件夹的主要功能
bin 执行命令
boot 启动目录
dev 物理设备都在这里面
etc 配置文件 使用最多的文件夹
home 普通用户的家目录
root 超级管理员的家。root用户可以进入
tmp 临时文件
usr 安装程序
var 可变的,日志文件啥的
命令的组成:
命令 选项 参数
ls -l /
查看文件详细信息
ls -l
lrwxrwxrwx 1 root root 7 3月 8 20:53 bin -> usr/bin
第一个字符代表文件类型:
- 普通文件
d 普通文件夹
l 链接文件
cd 绝对路径/相对路径
touch 路径和文件名 创建文件
mkdir 路径和目录名 创建文件夹
mkdir -p /home/dir1/dir2/dir3 只要没有的文件,连续创建文件夹
cp 路径和源文件 路径和目标文件夹 拷贝一个文件
cp -r 路径和文件夹 路径和文件夹 拷贝整个文件夹
mv 路径和源文件 路径和目标文件 移动(可以改名,原地移动-可以实现不移动直接改名)
删除文件的命令:
rm -rf 文件或者目录的路径 删除指定的文件和目录
rm -rf 文件或者目录的路径 文件或者目录的路径 删除指定的文件和目录
rm -rf 路径/* 路径下的所有文件
rm -rf 路径/b.* 路径下以b开头的所有文件
rm -rf 路径/*.txt 路径下以.txt结尾的所有文件
查看文件的命令:
cat 路径和文件名 查看文件
head -6 1.txt
tail -5 1.txt
more 1.txt 翻页的功能
grep c 1.txt 对1.txt文件过滤关键字c
重定向:
ls / > 1.txt 把/下面的东西,写入到1.txt里面去
cat /etc/hosts > 1.txt
gedit 1.txt 图形文件编辑器(记事本)
vim vim 1.txt 进入命令模式 i 进入编辑模式 esc 进入命令模式 :wq 命令-保存并退出 :set nu 标注行号 yy 复制选中或一行 5yy dd 删除一行 5dd p 粘贴 u 撤销 V 进入可视化模式,进行区域选择 光标定位: hjkl 上下左右 0 $ 行首行位 gg G 页首页尾 3G 进入第三行 /字符串 在文本中查找指定字符串,n往下翻,N往上翻 查找替换 :范围 s/原内容/新内容/全局 :1,5 s/root/qianfeng/g 另存为 :w /tmp/aaa.txt :set list 显示控制字符 :set nonu 取消行号
vim 是一个应用程序
cmd(windows)==shell(linux) 命令行解释器,是一个程序,也就是所说的黑窗口
临时文件
vim /1.txt
/.1.txt.swap 这一份,是服务器给你的备份
如果非正常保存退出时,就会生成这个临时文件
1.查看隐藏文件 ls -a /
2.使用rm -rf 删除他就可以了
mkdir /home/dir2 /home/dir3
mkdir /home/{dir4,dir5}
mkdir -p /home/{qianfeng/{dir1,111},nizhan}
touch /home/dir10/{file1,file2,.files3}
rm -rf /home/dir10/* 删除不掉隐藏文件
etc 配置文件
cat /etc/passwd
head -1 /etc/passwd
root : x : 0 : 0 : root: /root : /bin/bash
用户名: 密码占位符: uid : gid: 描述: HOME : shell
uid 0 root
1-499 系统用户
1000- 普通用户
jfp:x:1000:1000:jfp:/home/jfp:/bin/bash
2.用户组信息存储的文件
用户基本信息文件
/etc/passwd
用户密码信息文件
/etc/shadow
组信息文件
/etc/group
cat /etc/shadow
jfp:$6$PkQes9/qjHapKBGq$cRju207rwTewKAwMvHCM4wjhyU/eZ8NYs/huHxN2MXcovTFLPm7XEgKYfXLHrpkurx7QRolGmvWesaglSIuV10 :19424 : 0 : 99999 :7:::
用户名:密码加密值 :最后一次修改的时: 密码修改需要的间隔时间 :密码有效期:警告时间(7):不活动时间:失效时间:保留
cat /etc/group
jfp:x:1000: 组名:组密码:组ID:组成员
useradd user01
id user01 查看用户的详细信息
passwd user01 修改密码
ls /var/spool/mail/user01 存放的是邮件
useradd user02 -u 1503 创建用户,指定相应的信息,指定uid
useradd user03 -d jfp 指定新用户的家目录
useradd --help 查看useradd怎么用
userdel -r user01 -r删除的比较干净
usermod -s /sbin/nologin user01 改变用户的shell命令
groupadd hr
cat /etc/group 查询组的信息
groupadd net01 -g 2000 指定gid
关于组,只要搞清楚用户属于哪个组就行了。基本组和附加组理解概念。
组的类型
基本组 随用户的创建而创建,组名和用户名相同
附加组 假如,把zhangsan加入到wangwu的组中,成为他的成员。那么,zhangsan用户,得到两个不同类型的组。对于zhangsan来说,zhangsan组是zhangsan的基本组,wangwu组是zhangsan的附加组。
查看基本组
cat /etc/passwd
user01:x:1001:1001::/home/user01:/bin/sh 根据uid gid来查询
1 useradd是创建用户的命令。
2 usermod是修改用户的命令。
3 groupadd是创建组的命令。
4 -u制定用户的UID。
5 -g制定用户的基本组。
6 -G制定用户的附加组。
7 /etc/passwd可以查看的是用户的基本组。
8 /etc/group可以查看用户的附加组。id命令也可以
系统默认基本组就是用户名,比如用户AAA 组就是AAA useradd AAA grep AAA /etc/passwd useradd BBB grep BBB /etc/passwd groupadd CCC grep CCC /etc/group grep AAA /etc/passwd 使用这条命令,查看用户的uid gid来确定用户的基本组 usermod AAA -g CCC 修改用户AAA的基本组为CCC 可以说明,用户和组之间没有强制的关联 usermod BBB -G CCC 用户的BBB的附加组是CCC grep BBB /etc/passwd 查看基本组 grep CCC /etc/group 查看附加组,最后有两个成员,一个AAA,一个BBB
su
sudo
以root的身份授权普通用户xulei
useradd xulei -G wheel 指定附加组wheel,这个组的权限比较大
passwd xulei 设置密码
以xulei的身份登录
useradd gougou10 创建用户,权限不够
sudo useradd gougou10 提权创建用户
基本权限UGO
基本权限ACL
特殊权限
权限类型
读 r 4
写 w 2
执行 x 1
cd /tmp
touch file1
ls -l file1
-rw-r--r-- 1 root root 0 6月 26 18:50 file1
- rw- r-- r-- 1
文件类型 u g o 链接数
命令 [对象 +/-/= 权限] 文件或目录
chmod [(u g o a) +/-/= (r w x -)]
chmod 671 file.txt 使用数字直接修改权限
更改属主 属组 chmod 644 file1.txt ls -l /tmp/file1.txt -rw-r--r-- 1 root root 0 6月 27 20:32 file1.txt 该文件属于root用户,root组 chown设置一个文件属于谁,属主 groupadd hr useradd user01 chown user01.hr file1.txt ls -l /tmp/file1.txt -rw-r--r-- 1 user01 hr 0 6月 27 20:32 file1.txt 当user01这个用户登录的时候,是可以直接拥有这个文件的权限的 chgrp 组名 文件 -R是递归的意思 chmod 改权 chown 改主/组 chgrp 改组 针对hr部门的访问目录设置权限: 1.root用户和hr组的员工可以读、写、执行 groupadd hr useradd hr01 -G hr 让hr01用户进组 useradd hr02 -G hr mkdir /home/hr ls -d -l hr drwxr-xr-x 2 root root 4096 6月 27 20:55 hr chown root.hr /home/hr drwxr-xr-x 2 root hr 4096 6月 27 20:55 hr chmod 770 /home/hr
chmod chown
如果有个文件,需要我们设置四个用户对文件有不同的权限,如下结果。请问使用chmod和chown能否实现? NO
用户1 读 file1.txt
用户2 读写 file1.txt
用户3 读写执行 file1.txt
用户4 读执行 file1.txt
基本权限ACL 访问控制列表 Access control list 限制用户对文件的访问 ACL是UGO的补充 ACL文件权限管理∶设置不同用户,不同的基本权限(r、w、x)。(直接对用户进行设置,更加的细粒度) UGO设置基本权限:只能一个用户,一个组和其他人(对文件进行设置,然后让这个文件属于谁,比较粗粒度) setfacl -m u:alice:rw /home/test.txt 对于文件test.txt,设置u alice 有rw权限 查看文件有哪些alc权限 getfacl test.txt # file: test.txt # owner: root # group: root user::rw- user:root:rwx (自己设置的) group::r-- mask::rwx other::r-- setfacl -x u:alice /home/test.txt 对于文件test.txt,删除u alice acl权限 setfacl -b /home/test.txt 对于文件test.txt,删除所有acl权限
watch -n1 'ls -l /tmp/file.txt' 实时检测文件的一些属性变换
特殊权限: suid(sgid) 针对文件/程序时,具备临时提升权限 ll file1.txt -rw-r----- 1 root root 0 6月 27 20:32 file1.txt | 属主的执行位 属主的能力rw- other的能力--- 如果属主的执行位是s,则其他人临时拥有属主的能力 1.suid是针对文件所设置的一个特别的权限。 功能:使调用文件的用户,临时具备属主的能力。 cat这个命令 root用户使用时可以看任何文件,但是普通用户使用cat时,有些文件是不能看的 ll /usr/bin/cat chmod u+s /usr/bin/cat 这个时候使用普通用户使用cat时,和root具有一样的权利
给文件加上特殊的属性
chattr +... 文件夹名
touch file100
chattr +i file100 这个文件不能修改、删除...
chattr -i file100 这个文件不能修改、删除...
新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限
umask
0022
touch file800
chmod u+s file800 属主的执行位变成s,如果属主的执行位有执行权限,如果没有,则变成S
chmod 7777 file800 四个数,平时使用三个
0777-0022=0755 文件夹 0755-0111=0644 文件
umask 0000 修改umask的值
4.进程是已启动的可执行程序的运行实例,进程有以下组成部分:
.一个文件;
·被配内存的地址空间;
·有权限限制;
·程序代码的一个或多个副本(也叫执行线程);
·像人一样拥有状态;
程序︰二进制文件,静态/bin/date,/usr/sbin/httpd ,/usr/sbin/sshd,/usr/local/nginx/sbin/ngix
进程:是程序运行的过程,动态,有生命周期及运行状态。
ps aux | head -2 查看进程信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 168968 13088 ? Ss 01:55 0:06 /sbin/init sp
用户 *
进程ID *
CPU占用率
内存占用率
占用虚拟内存
占用实际内存
TTY 进程运行的终端
进程的状态 *
进程的启动时间
进程文件 进程名 *
1.什么是程序
具有执行代码和执行权限的文本文件。
2.什么是进程
是运行起来的程序。获得计算机各方面的资源(CPl,MEM,DISK,NETWORK,PID,STAT)
3.进程的生命周期
由系统程序,fork出来的子程序。具备一定父的资源(权利,内存空间,PID)。直到运行完毕,退出系统。
4.进程有哪些状态?
R一run
T一stop
s-sleep
Z一zombie
ps aux | grep vim 查看大部分进程信息 并过滤
ps a显示现行终端机下的所有程序
ps u以用户为主的格式来显示程序状况。
ps x不以终端机来区分。
ps aux --sort - %cpu 按cpu降序排序进程
ps -ef 查看进程的父子关系
ps axo user,pid,ppid 显示进程信息的指定列
top 实时检测进程的信息 top - 20:12:57 up 18:17, 1 user, load average: 0.27, 0.06, 0.02 Tasks: 305 total, 1 running, 304 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.6 us, 0.5 sy, 0.0 ni, 97.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 3877.8 total, 527.4 free, 1072.4 used, 2278.0 buff/cache MiB Swap: 2048.0 total, 2046.5 free, 1.5 used. 2520.8 avail Mem PID USER PR NIVIRT RES SHR s %CPU %MEM TiME+ COMMAND top - 20:12:57 up 18:17, 1 user, load average: 0.27, 0.06, 0.02 程序名 系统时间 运行时间 登录用户数 CPU负载 5 10 15分钟占用多少 Tasks: 305 total, 1 running, 304 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.6 us, 0.5 sy, 0.0 ni, 97.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 用户 系统 优先级 空闲 等待 硬件 软件 虚拟机 MiB Mem : 3877.8 total, 527.4 free, 1072.4 used, 2278.0 buff/cache MiB Swap: 2048.0 total, 2046.5 free, 1.5 used. 2520.8 avail Mem
top -d 1 -p 1235 按照进程号查询进程,每d秒更新一次
kill -l 查看所有支持的信号
编号信号名
1) SIGHUP重新加载配置
kill -l 8878(进程号)
2) SIGINT键盘中断Ctrl+C
3) SIGQUIT键盘退出Ctrl+\,类似SIGINT
20)SIGTSTP键盘暂停Ctrl+Z
9) SIGKILL强制终止,无条件
kill -9 进程号
15)SIGTERM终止(正常结束),缺省信号
kill -15 进程号
18) SIGCONT继续
19) sIGSTOP暂停
1.什么是程序 具备一个讦算机指令的文件,可以被计算机执行 2.什么是进程 一个运行了的程序。将获得计算机的资源。CPU时间,内存空间,磁盘空间,磁盘10,网络带宽。权限,PID。 3.在linux系统中,我们如何查看进程? ps auxtop 4.ps aux命令展示了进程的哪些方面的信息。 user :用户 PID:进程的编号 %CPU:占用CPU时间的百分比。%MEM:占用内存空间的百分 VSZ RSS:(略)虚拟内存和实际内存占用的大小TTY:终端的类型ptsOpts1 STAT:(重要)运行,睡眠,停止,退出,僵死 START:进程启动的时间 TIME:占用cpu的时间 commmand:科序的路径和名称 top 第一行:程序名,系统时间,CPU占用率(1.5.15)第二行:任务数。 第三行:CPU占用率。 第四行:内存空间。K_M_G 第五行:交换分区(硬盘的一部分空间。存放常用数据) 5.我们如何控制进程的运行。 kill 信号 PID
优先级:
ps axo pid,command,nice --sort=-nice | head 5
PID COMMAND NI
46 [khugepaged] 19
43425 /usr/bin/python3 /usr/lib/u 19
43440 /usr/bin/python3 -Es /usr/b 19
45 [ksmd] 5
默认情况下,启动进程时,通常会继承父进程的nice级别,默认为0
sleep 6000 & 后台去执行6000秒
ps axo pid,command,nice | grep sleep
nice -n -5 sleep 7000 &
ps axo pid,command,nice | grep sleep
renice -20 2669(进程号)
ps axo pid,command,nice | grep sleep
top -d 1 -p 45487 45608
sleep 2000 & 把一个程序丢到后台自己运行
ps aux | grep sleep 查看所有进程
jobs 查看后台进程,显示作业号
fg 4 把作业4调回前台
kill %4 消灭四号作业
虚拟文件系统(proc):采集服务器自身内核、进程运行的状态信息
cat /proc/cpuinfo cpu
cat /proc/meminfo 内存
cat /proc/cmdline 内核
BOOT_IMAGE=/boot/vmlinuz-5.15.0-75-generic(内核基本上是一样的,不同的linux操作系统都是在内核上做文章)
date > time.txt 重定向,把date日期的显示结果输送到文件夹里面
FD
不同的程序有不同的一套FD
计算机里面有两个文件
1.一个文件代表键盘 一个文件代表显示屏
2.由于路径太长,我们使用数字代替路径
3.0:stdin
4.1:stdout 2:stderr
给文件建立软连接快捷方式
ln -s 123.txt 333
cat 123.txt 和下面效果一样
cat 333
ls -l
通过VIM程序,来观察一个进程的FD信息
vim 66566.txt 一直开着这个窗口
新打开一个窗口
ps aux |grep vim 查看vim的进程号48153
ls -l /proc/48153/fd
0 1 2 3 四个文件
lrwx------ 1 jfp jfp 64 Jul 3 18:36 0 -> /dev/pts/0
lrwx------ 1 jfp jfp 64 Jul 3 18:36 1 -> /dev/pts/0
lrwx------ 1 jfp jfp 64 Jul 3 18:36 2 -> /dev/pts/0
lrwx------ 1 jfp jfp 64 Jul 3 18:36 3 -> /home/jfp/Desktop/.123.txt.swp
echo 123 > /dev/pts/0 会把123写入到66566这个文件夹里面
输出重定向:
正确输出 1>==> 覆盖
1>>==>> 追加
1代表这个程序的FD 标准输出 >引导
date 1> /dev/pts/0 会输入上面的66566这个文件夹里面去
date 1> /dev/pts/1(当前屏幕的终端) 可能会输入到当前的窗口上
错误输出 2>
2>>
ls /home/ /aaaaaa &> list.txt 正确错误都输入到文件里面
ls /home/ /aaaaaa &> /dev/null 啥也不显示
输入重定向
vim word.txt
mail -s "test01" alice <word.txt
piping管道
cat /etc/passwd | grep "root" | head -1
tee管道
cat /etc/passwd |tee file888.txt | tail -1
参数传递 Xargs
cp rm 一些特殊的命令不服其他的程序
touch /home/file{1,5}
vim files.txt
/home/file1
/home/file3
/home/file5
cat files.txt |xargs rm -rvf 删除文件夹里面的内容
把一段话一次输入到一个文件里面去
vim 123.sh
cat > /2001/1.conf <<EOF
1111111111
2222222222
3333333333
EOF
chmod +x 123.sh
./123.sh
cat 1.conf
磁盘简介 kernel对不同接口硬盘命名方式 IDE(并口) SATA(串口) /dev/sda /dev 设备文件目录 s代表sata就是串口 d代表磁盘 a代表第一块 /dev/sdb 分区方式 MBR MBR支持最大的磁盘容量是<2TB。设计时分配4个分区 如果希望超过4个分区,需放弃主分区,改为扩展分区和逻辑分区。 GPT
管理磁盘
添加磁盘:VM添加硬盘
管理磁盘流程3部曲:分区(MBR或者GPT) --->-格式化/文件系统Filesystem ----挂载mount
新硬盘;毛坯房
分区:隔间
格式化/文件系统:放家具/打造格子柜
挂载:
查看磁盘信息: ll /dev/sd* brw-rw---- 1 root disk 8, 0 Jul 5 12:05 /dev/sda brw-rw---- 1 root disk 8, 1 Jul 5 12:05 /dev/sda1 brw-rw---- 1 root disk 8, 2 Jul 5 12:05 /dev/sda2 brw-rw---- 1 root disk 8, 5 Jul 5 12:05 /dev/sda5 brw-rw---- 1 root disk 8, 16 Jul 5 12:05 /dev/sdb brw-rw---- 1 root disk 8, 32 Jul 5 12:05 /dev/sdc lsblk sda 8:0 0 100G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 99.5G 0 part / sdb 8:16 0 5G 0 disk sdc 8:32 0 5G 0 disk sdd 8:48 0 5G 0 disk sde 8:64 0 5G 0 disk sdf 8:80 0 5G 0 disk sdg 8:96 0 5G 0 disk sdh 8:112 0 5G 0 disk sr0 11:0 1 1024M 0 rom
创建分区: MBR:把房子分成卧室和客厅 启动分区工具 fdisk /dev/sdb 进入会话模式 提示1: Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xd42a103a. Command (m for help): 按n键 提示2: Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p 提示3: Partition number (1-4, default 1):1 提示4: First sector (2048-10485759, default 2048): 2048 提示5: Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-10485759, default 10485759):+2G 提示6: Created a new partition 1 of type 'Linux' and of size 2 GiB. Command (m for help): w 提示7: The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. 刷新分区表: partprobe /dev/sdb 查看分区结果: fdisk -l /dev/sdb Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors Disk model: VMware Virtual S Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xd42a103a Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 4196351 4194304 2G 83 Linux lsblk sda 8:0 0 100G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 99.5G 0 part / sdb 8:16 0 5G 0 disk └─sdb1 8:17 0 2G 0 part sdc 8:32 0 5G 0 disk sdd 8:48 0 5G 0 disk sde 8:64 0 5G 0 disk sdf 8:80 0 5G 0 disk sdg 8:96 0 5G 0 disk sdh 8:112 0 5G 0 disk sr0 11:0 1 1024M 0 rom
创建文件系统:房子里的格子柜
mkfs.ext4 /dev/sdb1
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: 13ed8da4-4eb5-473c-8803-a3280023ba31
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
挂载
创建挂载点,一个分区一个挂载点
mkdir /mnt/disk1
mount -t ext4 /dev/sdb1 /mnt/disk1
查看挂载信息
df -hT 查看磁盘使用情况
/dev/sda1 vfat 511M 4.0K 511M 1% /boot/efi
tmpfs tmpfs 388M 20K 388M 1% /run/user/1000
/dev/sdb1 ext4 2.0G 24K 1.8G 1% /mnt/disk1
分区 文件系统 大小 占用 空间 占比 挂载点
上面只是对一个磁盘sdb创建了一个主分区。我们接着对该磁盘sdb进行分区操作,分区的时候都选择主分区,一共设置四个最多可以设置的主分区。如果想要设置更多的分区,就必须放弃一个主分区,设置扩展分区。
创建扩展分区 使用MBR划分分区 1.4个主分区 2.3个主分区+1个扩展分区(N个逻辑) 启动分区工具 fdisk /dev/sdb d 删除命令,删除一个主分区,创建逻辑分区 4 分区号 n 创建分区 e 扩展分区 start 默认 last 默认 fdisk /dev/sdb 设备Boot start End Blocks Id System /dev / sdb1 2048 4196351 2097152 83 Linux ...... /dev/ sdb4 5015552 10485759 273510 45 Extended 然后开始对逻辑分区(4)进行进一步划分: ...... 逻辑分区4是不能存放东西的,但是他划分出来的分区是可以
刷新分区表: partprobe /dev/sdb 创建文件系统:房子里的格子柜 mkfs.ext4 /dev/sdb5 挂载 创建挂载点,一个分区一个挂载点 mkdir /mnt/disk5 mount -t ext4 /dev/sdb5 /mnt/disk5 取消挂载(然后在挂载上去,磁盘里的东西还是有的) unmount /dev/sdb5 查看挂载信息 df -hT 查看磁盘使用情况
作用:提升内存质量,防止OOM(Out Of Menory)
swap分区:在磁盘上单独划分的一个区域,用来存储热点数据。通常为内存大小的两倍。
查看当前的交换分区
free -m
total used free shared buff/cache available
Mem: 3877 1049 1080 2 1747 2566
Swap: 2047 0 2047
划分swap分区 准备将/dev/sde磁盘,划分为2G分区 fdisk /dev/sde 划分分区 划分分区后按t 将类型设置为82代表交换分区 然后按w进行保存 partprobe /dev/sde 刷新分区 ll /dev/sde* brw-rw---- 1 root disk 8, 64 7月 15 14:35 /dev/sde brw-rw---- 1 root disk 8, 65 7月 15 14:35 /dev/sde1 mkswap /dev/sde1 格式化 swapon /dev/sde1 挂载 free -m total used free shared buff/cache available Mem: 3877 1145 686 3 2045 2459 Swap: 4095 0 4095 swapoff /dev/sde1 卸载
1.挂载 sd5 /mnt/disk5
在disk5里面创建5个文件1-5 属于磁盘sd5
2.卸载sd5
然后在disk5文件夹里面创建5个文件6-10,属于sda
3.重新挂载sd5
disk5文件夹里面只显示文件1-5 ,因为6-10是sda磁盘的
4.卸载sd5
然后文件夹disk5显示6-10
物理磁盘的空间是限定的。不便于管理(拷贝,删除,授权)I单靠物理磁盘,是解决不了空间增长的问题的。
随意扩展磁盘大小
PV:物理卷(Physical volume
vG:卷组(Volume Group)
LV:逻辑卷(Logical Volume)
创建逻辑卷 0.准备磁盘 ll /dev/sd* 1.pv 将物理磁盘转换成物理卷PV pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created. 2.vg 创建卷组VG vgcreate vg1 /dev/sdc Volume group "vg1" successfully created 3.lv lvcreate -L 200M -n lv2 vg1 大小 名字 组名 4.格式化 挂载 mkfs.ext4 /dev/vg1/lv2 mkdir /mnt/lv2 mount /dev/vg1/lv2 /mnt/lv2 df -hT /dev/mapper/vg1-lv2 ext4 178M 24K 164M 1% /mnt/lv2
1.当逻辑卷没有空间的时候,可以在逻辑卷组里面扩充逻辑卷 2.当逻辑卷组没有空间的时候,扩充逻辑卷组 vg扩容 /dev/vg1 容量由5G扩容到10G 1.创建PV加入到VG组里面去 pvcreate /dev/sdd vgextend vg1 /dev/sdd pvs PV VG Fmt Attr PSize PFree /dev/sdc vg1 lvm2 a-- <5.00g 4.80g /dev/sdd vg1 lvm2 a-- <5.00g <5.00g vgs VG #PV #LV #SN Attr VSize VFree vg1 2 1 0 wz--n- 9.99g <9.80g lv扩容 vgs(vg是否还剩空间) VG #PV #LV #SN Attr VSize VFree vg1 2 1 0 wz--n- 9.99g <9.80g lvextend -L +200M /dev/vg1/lv2 lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv2 vg1 -wi-ao---- 400.00m resize2fs /dev/vg1/lv2
上面的挂载文件那一步在重启电脑之后会失效。
格式化 ----------------------创建文件系统
mkfs.ext4 /dev/vg1/lv2
问题1:文件是如何准确放到磁盘的某个位置的?
问题2:文件是如何在磁盘(渺茫的空间)快速定位读取的?
答案:
文件系统:
windows: FAT16 FAT32 NTFS
LINUX:EXT3 EXT4 XFS
Ext3:文件系统最大16TB
Ext4 :文件系统最大16TB
XFS:文件系统最大100TB.
EXT3/4文件系统
索引(index)文件系统---目录,字典的前几十页
格式化几次,就有几个独立的文件系统 创建一个文件,观察inode信息 ll -i 文件名 lsblk /dev/sdb1 ext4 2.0G 24K 1.8G 1% /mnt/disk1 cd /mnt/disk1 touch 1.txt ls -l -i 1.txt 12 -rw-r--r-- 1 root root 0 7月 16 16:23 1.txt 12----inode号 df -i 查看inode的数量 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sdb1 131072 12 131060 1% /mnt/disk1 inode决定了文件系统中文件的数量,有可能inode用完了,block内存还没有用,所以当inode用完的时候,还是可以往block里面存数据的,block满了就彻底满了。 得出结论 磁盘空间的限制根inode和Rblock两方面 请清理掉填满的分区。避免不必要的报错
符号链接: 软连接:(删除源文件,软连接失效) cd /mnt/disk1 echo 111 >file1 cat /mnt/disk1/file1 ln -s /mnt/disk1/file1 /home/jfp/Desktop/file11 创建软连接(快捷方式) 软连接像快捷方式,可以对文件和目录做软连接。 软连接记录的只是源文件的绝对路径。 软连接失去源文件不可用。 硬链接:(只能在一个分区里操作,删除源文件,硬链接有效) cd /mnt/disk1 echo 222 >file2 cat /mnt/disk1/file2 ln /mnt/disk1/file2 /mnt/disk1/file2-h1 硬链接只能针对文件做。不能对目录做。 硬链接只能在同分区做。
数据的安全性
加速读取
RAID︰廉价磁盘冗余阵列( Redundant Array of Independent Disks)
作用∶容错、提升读写速率
类型:
RAID0:条带集 3块磁盘以上,读写速率快100%*N,但不容错
RAID1:镜像集 2块磁盘 容量50% 读写速度一般 容错
RAID5:可靠,高速 带奇偶校验条带集3块磁盘以上,利用率(n-1 )/n读写速率快,容错
至少3(N)块硬盘
原始数据11 平均分成(N-1)2两份,放到两个磁盘里面,然后对两个磁盘进行公式操作,结果放到第三个磁盘里面去。
which :命令查找
find :文件查找,针对文件名
locate :文件查找,依赖数据库
which ls
which mkdir
which pwd
alias xulei='ls --color=auto -l' 给一条命令起别名
find 路径 选项 表达式 动作 find /etc -name 'a.txt' 命令 路径 选项 描述 find /etc -name 'a.txt' find /etc -iname 'A.txt' 忽略大小写 find /etc -iname 'A.*' find /etc -size +5M/5M/-5M find / -maxdepth 3 -a -name "ifcfg-en*" 指定深度 命令 路径 深度 and 名字 find /home -user jack 按照属主找 find /home -group hr 按照属组找 find /dev -type f find /dev -type d 按照文件类型查找 find . -perm 644 -ls 按照权限 查到文件之后的动作
tar 选项 压缩包名称 源文件
打包 压缩
tar -cf etc.tar /etc 打包
tar -czf etc-gzip.tar.gz /etc/ 打包压缩 z是gzip压缩
压缩包的名字 打包的目录
解压
tar -xf etc-gzip.tar.gz 解压之后的文件名貌似是压缩时压缩的目录名,不是压缩时所起得到新的名字
tar -xvf etc-gzip.tar.bz2 -C /tmp
重定向
开门见山,Ubuntu的包管理工具是apt-get,所以不必再安装yum。如果要安装其他包需要使用apt-get命令。
rpm
二进制无需编译,可以直接使用
示例:mysql-community-common- 5.7.12-1 .el7 .x86_64 .rpm
软件包名称 版本号 发布版本(红帽子企业系统) 系统平台(32/64) 文件后缀
YUM工具 基于RPM包管理,能够从指定的服务器自动下载RBM包并直安装, 可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 YUM本地源:系统安装光盘 0.观察YUM核心配置目录 /etc/yum.repos.d 里面都是下载的地址 打开一个*.repo 里面有下载的官方地址 1.删除官方YUM库 rm -rf /etc/yum.repos.d/* 2.编写本地的YUM库配置文件 vim /etc/yum.repos.d/dvd.repo [dvd] 某一个库的名称 name=dvd 库的说明 baseurl=file:///mnt/cdrom 下载库的具体地址(本地安装光盘) gpgcheck=0 是关闭包校验 enable=1/0 开启或者关闭 3.挂载安装光盘 物理得先加入光盘并且通电 ls /dev/cdrom(安装光盘) mkdir /mnt/cdrom vim /root/.bashrc 开机自动执行一些命令, mount /dev/cdrom /mnt/cdrom/ 这个命令写入进去 mount /dev/cdrom /mnt/cdrom/ 挂载 ls /mnt/cdrom/Packages 查看rpm安装包 4.使用YUM安装和卸载程序 yum install -y httpd安装软件 systemctl start httpd启动软件 systemctl stop firewalld关闭防火墙 systemctl disable firewalld禁用防火墙 使用YUM管理RPM包 全新安装 yum -y install httpd vsftpd yes 软件包1 软件包2 重新安装 yum -y reinstall httpd 升级安装 yum -y update httpd 查询: yum list httpd @是已经安装的 卸载 yum remove httpd RPM工具 无法处理依赖 cd /mnt/cdrom/Packages 安装 rpm -ivh wget.......rpm 查询 rpm -q wget....... 卸载 rpm -evh wget......
需要经过GCC,C++编译环境编译才能运行
nginx-1.8.1.tar.gz
1.官方网站,可以获得最新的软件包
2.命令行:wget +下载地址
常见的编译工具 yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel 解压 useradd www tar -xvf nginx-1.8.1.tar.gz cd nginx-1.8.1 配置 ./configure --user=www --group=www --prefix=/usr/local/nginx 编译 make 安装 make install 启动测试 /usr/local/nginx/sbin/nginx systemctl stop firewalld
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。