Linux新手随手笔记1.5
FHS
Linux / 代表根目录
/root 管理员的家目录
/boot 启动引导文件,以及开机菜单都会保存在里面
/bin 保存我们系统中命令的目录,不止bin,只要带bin的比如sbin。关于bin和sbin的解释,bin是 开 机需要的,sbin里面的命令是开机不需要用到的。还有的解释就是S试代表只有超级用户 才能执行的命令。bin用来保存程序文件的目录
/dev 存放设备文件
/etc 保存系统的配置文件,以及各个服务的配置文件
/home 保存普通用户家目录数据 /home/ls
/var 主要存放经常变动的文件,如日志
/lib 函数库的意思
/usr 个人用户自己的一些文件,自己安装的一些程序
/media 用来挂载我们光盘设备的
/tmp 开放的零时目录
目录名称 | 应放置文件的内容 |
/boot | 开机所需文件—内核、开机菜单以及所需配置文件等 |
/dev | 以文件形式存放任何设备与接口 |
/etc | 配置文件 |
/home | 用户主目录 |
/bin | 存放单用户模式下还可以操作的命令 |
/lib | 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 |
/sbin | 开机过程中需要的命令 |
/media | 用于挂载设备文件的目录 |
/opt | 放置第三方的软件 |
/root | 系统管理员的家目录 |
/srv | 一些网络服务的数据文件目录 |
/tmp | 任何人均可使用的“共享”临时目录 |
/proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 |
/usr/local | 用户自行安装的软件 |
/usr/sbin | Linux系统开机时不会使用到的软件/命令/脚本 |
/usr/share | 帮助与说明文件,也可放置共享文件 |
/var | 主要存放经常变化的文件,如日志 |
/lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 |
比较重要的一些目录
/boot 保存得是开机所需要的引导文件还有我们的驱动文件
/dev 设备文件,以文件形式存放设备和接口
/etc 配置文件
/media 挂载目录
/root 超级用户自己的家目录
/proc 属于虚拟目录,不是真实存在的目录,而是内存中的数据映射成目录的
/usr/local 用户自行安装的软件
/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可以存放共享文件
绝对路径 (absolute path) cat /usr/share/XXX/xxx.txt
相对路径 (relative path) cd /usr/share/xxx
cat xxx
再说一次,Linux中的一切都是文件。硬件设备也不例外
物理设备的命名规则
硬件设备 | 文件名称 |
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd[a-p] |
软驱 | /dev/fd[0-1] |
打印机 | /dev/lp[0-15] |
光驱 | /dev/cdrom |
鼠标 | /dev/mouse |
磁带机 | /dev/st0或/dev/ht0 |
光驱要注意一下/dev/cdrom
SCSI/SATA/U盘 /dev/sd[a-p] 他这个顺序不是由插槽顺序决定的,而是由识别的顺序决定的。
文件系统与数据资料
Windows里面的一些文件系统 FAT32 NTFS EXFAT
LINUX:
EXT2
RHEL5 EXT3 从2到3加入了日志,可以查看系统异常
RHEL6 EXT4 从3到4加入了I/O ,读写速度的提升
RHEL7 XFS 18EB 大数据和云计算存储海量数据
inode :记录文件名称大小权限所有者/组 指针指向block
block : 真实文件内容
VFS 虚拟文件系统
步鄹
分区 :切割分割(例如你买了一张纸需要裁剪)方便管理
格式化 :打格操作(例如在本子上打格,为了写字工整)
挂载 :使用硬盘(描述:将设备文件与某个目录相关联的动作叫做挂载。然后就可以通过该目录(挂载点)访问/使用到设备文件的内容。)
挂载的命令
mount 设备文件绝对路径 目录的名称
卸载命令
umount 设备文件绝对路径/目录名称
/etc/fstab 能让挂载信息永久生效
设备的绝对路径 挂载目录 文件系统的格式 权限 是否备份(0/1) 是否自检(0/1)
mount 挂载之后重启之后就失效了
fdisk命令
fdisk [磁盘名称]
分区用fdisk /dev/sda(路径)
fdisk命令中的参数以及作用
参数 | 作用 |
m | 查看全部可用的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可用的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区表信息 |
w | 保存并退出 |
q | 不保存直接退出 |
其中d, n,p,q,w参数要记住
当我们添加完一个硬盘之后,就可以看到在/dev/目录中出现一个/dev/sdb文件,然后我们输入命令fdisk /dev/sdb执行会发现出现选项,输入m查看信息
然后我们输入n创建一个新的分区,然后输入p新建主分区然后他们会问我们编号我们输入1从1开始,然后让我们选择起始的扇区,这个我们不要选择,因为我们默认就是从最前开始使用的,接下来让我们输入扇区大小,我们用+5G让系统帮我们计算扇区的大小,然后 我们再输入p查看一下,会发现多出来一个扇区,总共使用了5242880个个扇区,新建出来5GB的空间,然后输入w保存分区然后再用ls -l /dev/sdb1 查看。
如果不显示,我们就敲一下partprobe来进行分区内核同步。这是红帽的一个小BUG(自己知道就好)。
上面都好了之后我们用mkfs.ext4 /dev/sdb1来进行格式化
然后我们创建一个xiaodou文件夹,用mount /dev/sdb1 /xiaodou 将sdb1挂载到xiaodou文件夹下,然后我们用df -h来查看所有硬盘挂载信息,会发现多出来一条数据挂载文件是xiaodou。
但是上面这个操作过后我们重启之后就失效了。所以我们要想永久性的必须这么做:
我们给他加一条,就是上面说的
设备的绝对路径 挂载目录 文件系统的格式 权限 是否备份(0/1) 是否自检(0/1)
swap(交换分区):当你的内存空间被占用满的话,他会将一部分物理内存的不常用的数据(冷数据)临时的存放在硬盘的空间里。目的主要是降低物理内存的负载压力。
交换分区的格式化命令是mkswap
quota 磁盘配额---限制每个人能够使用的磁盘容量
inode 限制个数
isoft (软限制,日志记录) ihard(硬限制)
block 限制容量
bsoft () bhard
defaults,uquota
RHEL7 XFS uquota
RHEL5/6 ext4 usrquota
我们看一下配置效果
我们切换到linuxprobe用户,当我们创建第7个文件的时候,报错了,限制成功,记住必须在boot目录下创建,为了防止某个用户在某个文件夹里面做过多的操作档子目录慢了系统奔溃。
可以看出当我们创建大小为6M的时候没问题,但是当创建10M的时候报错了。说明最大权限没有10M
xfs_quota命令
xfs_quota命令是一个专门针对XFS文件系统来管理quota磁盘容量配额服务而设计的命令,格式为“xfs_quota [参数] 配额 文件系统”。其中,-c参数用于以参数的形式设置要执行的命令;-x参数是专家模式,让运维人员能够对quota服务进行更多复杂的配置。接下来我们使用xfs_quota命令来设置用户tom对/boot目录的quota磁盘容量配额。具体的限额控制包括:硬盘使用量的软限制和硬限制分别为3MB和6MB;创建文件数量的软限制和硬限制分别为3个和6个。
[root@linuxprobe ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 tom' /boot
[root@linuxprobe ~]# xfs_quota -x -c report /boot
User quota on /boot (/dev/sda1) Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 95084 0 0 00 [--------]
tom 0 3072 6144 00 [--------]
当配置好上述的各种软硬限制后,尝试切换到这个普通用户,然后分别尝试创建一个体积为5MB和8MB的文件。可以发现,在创建8MB的文件时受到了系统限制:
[root@linuxprobe ~]# su - tom
[tom@linuxprobe ~]$ dd if=/dev/zero of=/boot/tom bs=5M count=1
1+0 records in
1+0 records out
5242880 bytes (5.2 MB) copied, 0.123966 s, 42.3 MB/s
[tom@linuxprobe ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
dd: error writing ‘/boot/tom’: Disk quota exceeded
1+0 records in
0+0 records out
6291456 bytes (6.3 MB) copied, 0.0201593 s, 312 MB/s
edquota命令
edquota命令用于编辑用户的quota配额限制,格式为“edquota [参数] [用户] ”。在
为用户设置了quota磁盘容量配额限制后,可以使用edquota命令按需修改限额的数值。其
中,-u参数表示要针对哪个用户进行设置;-g参数表示要针对哪个用户组进行设置。
edquota命令会调用Vi或Vim编辑器来让root管理员修改要限制的具体细节。下面把
用户tom的硬盘使用量的硬限额从5MB提升到8MB:
[root@linuxprobe ~]# edquota -u tom
Disk quotas for user tom (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 6144 3072 8192 1 3 6
[root@linuxprobe ~]# su - tom
Last login: Mon Sep 7 16:43:12 CST 2017 on pts/0
[tom@linuxprobe ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
1+0 records in
1+0 records out
8388608 bytes (8.4 MB) copied, 0.0268044 s, 313 MB/s
[tom@linuxprobe ~]$ dd if=/dev/zero of=/boot/tom bs=10M count=1
dd: error writing ‘/boot/tom’: Disk quota exceeded
1+0 records in
0+0 records out
8388608 bytes (8.4 MB) copied, 0.167529 s, 50.1 MB/s
软硬方式链接
ln 软硬链接
软链接 :Windows系统中的快捷方式
ln命令
参数 | 作用 |
-s | 创建“符号链接”(如果不带-s参数,则默认创建硬链接) |
-f | 强制创建文件或目录的链接 |
-i | 覆盖前先询问 |
-v | 显示创建链接的过程 |
ln命令用于创建链接文件,格式为“ln [选项] 目标”,其可用的参数以及作用。在使用ln命令时,是否添加-s参数,将创建出性质不同的两种“快捷方式”。因此如果没有扎实的理论知识和实践经验做铺垫,尽管能够成功完成实验,但永远不会明白为什么会成功。
为了更好地理解软链接、硬链接的不同性质,接下来创建一个类似于Windows系统中快捷方式的软链接。这样,当原始文件被删除后,就无法读取新建的链接文件了。
[root@linuxprobe ~]# echo "Welcome to linuxprobe.com" > readme.txt
[root@linuxprobe ~]# ln -s readme.txt readit.txt
[root@linuxprobe ~]# cat readme.txt
Welcome to linuxprobe.com
[root@linuxprobe ~]# cat readit.txt
Welcome to linuxprobe.com
[root@linuxprobe ~]# ls -l readme.txt
-rw-r--r-- 1 root root 26 Jan 11 00:08 readme.txt
[root@linuxprobe ~]# rm -f readme.txt
[root@linuxprobe ~]# cat readit.txt
cat: readit.txt: No such file or directory
接下来针对一个原始文件创建一个硬链接,即相当于针对原始文件的硬盘存储位置创建了
一个指针,这样一来,新创建的这个硬链接就不再依赖于原始文件的名称等信息,也不会
因为原始文件的删除而导致无法读取。同时可以看到创建硬链接后,原始文件的硬盘链接数
量增加到了2。
[root@linuxprobe ~]# echo "Welcome to linuxprobe.com" > readme.txt
[root@linuxprobe ~]# ln readme.txt readit.txt
[root@linuxprobe ~]# cat readme.txt
Welcome to linuxprobe.com
[root@linuxprobe ~]# cat readit.txt
Welcome to linuxprobe.com
[root@linuxprobe ~]# ls -l readme.txt
-rw-r--r-- 2 root root 26 Jan 11 00:13 readme.txt
[root@linuxprobe ~]# rm -f readme.txt
[root@linuxprobe ~]# cat readit.txt
Welcome to linuxprobe.com
如上图,我们创建4个硬链接,他权限后面的数字会增加。这样我们就会看这个参数就会知道创建几个硬链接。
复习一下
-rw-r--r--. 1 root root 72 Apr 25 22:02 ji
第一个-代表一般文件,d的话就是目录文件,l代表链接文件,p代表管道符文件,b,c代表块设备文件。点的话代表有facl 权限 第二个w-r--r--就是代表权限,第一个root代表所有者,第二个代表所有组,72代表我们所使用的文件占用空间大小。Apr 25 22:02指的是Mtime,指的是文件最后一个修改的时间。最后ji就是文件名。
Linux新手随手笔记1.5的更多相关文章
- Linux新手随手笔记1.8
配置网卡服务 将网卡的配置文件,保存成模板,叫做会话. nmcli命令查看网卡信息.nmcli是一款基于命令行的网络配置工具 只有一个网卡信息,下面我们再添加一个. 公司:静态IP地址 家庭:DHCP ...
- Linux新手随手笔记1.7
配置网卡(本地电脑) Vment1 仅主机模式 Vment8 nat模式 物理机 : 192.16810.1 /255.255.255.0 服务器 : 192.168.10.10 /255. ...
- Linux新手随手笔记1.6
RAID磁盘冗余阵列 1.I/O 速度 2.数据安全性 RAID 0 负载均衡.速度乘以二,但是数据安全性不行,任何一块盘损坏数据都会丢失. RAID 1 安全性性提升2倍,任何一个损坏另一个都有 ...
- Linux新手随手笔记1.4
计划任务服务程序 计划任务 at 命令 一次性的 crond 服务 周期性的 23:29执行reboot命令(重启服务器) at -l 查看当前的计划任务 at ...
- Linux新手随手笔记1.3
shell脚本的编写(划重点) #!/bin/bash 脚本的声明信息 #sjsjdhsjdhh 脚本的注释 ls -l ...
- Linux新手随手笔记1.2
重定向 输入重定向:将命令输出结果写入一个文件或将一个文件内容导回到命令里面的这个过程叫做重定向 :标准(>) 输出重定向 :覆盖写入清空写入(>)/追加写入(>>) :错 ...
- Linux新手随手笔记1.1
ifconfig 查询网卡信息 分别是网卡名称,物理IP地址,MAC地址,RX收到数据包大小,TX发送数据包大小 # uname # uname -a 查看内核版本号 # hostname 查看主 ...
- Linux新手随手笔记1.9-使用Apache搭建网站
搭建网站 网站服务:让用户能够通过浏览器访问到的服务器上的文档资源. 对比Windows 和Linux部署服务方法对比 Windows:IIS Linux :Apache ,nginx Ap ...
- Linux新手随手笔记
RPM通过将安装规则与源代码打包到一起,来降低软件的安装难度 yum 通过将大量的常用RPM软件存放在一起,解决软件包之间的依赖关系,进一步降低软件的安装难度 rhel 5\6 init rhel 7 ...
随机推荐
- 「工具」Aquarelo - 来自意大利的色阶管理工具
Aquarelo是一款小而美的色阶管理工具,由意大利团队开发,包含三个核心功能,可用于色彩管理.色彩搭配等场景. ## 相关参数 * 操作系统:macOS* 工具官网:[Aquarelo for Ma ...
- Certbot为域名申请免费SSL证书
Certbot(Let's Encrypt)是一个非盈利性认证机构通过运行互联网安全研究小组(ISRG)提供X.509 证书的传输层安全性不收取任何费用(TLS)加密.证书有效期为90天,在此期间可以 ...
- 使用async await 封装 axios
异步变同步: 厉害-- https://www.jianshu.com/p/4168efdc172b
- nginx之location配置详解及案例
语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码, ...
- Shell中map的使用
Shell中的map与array有很多的相似之处,array操作:https://www.cnblogs.com/qq931399960/p/10786111.html 一.在使用map时,需要先声明 ...
- 原生js显示消失
function showModel() {document.getElementById('container_head').style.display = 'block';}function cl ...
- 记一次尴尬的Java应用内存泄露排查
这星期被线上JVM内存占用不断增大的问题所困扰,自己提出了一些假设,然后去实施验证都一一失败了,有一些经验和教训在这里分享下. 之所以是尴尬,是最后因为修复了另一个看似不相关的问题导致内存不再上升,但 ...
- springcloud之服务注册与发现(zookeeper注册中心)-Finchley.SR2版
新年第一篇博文,接着和大家分享springcloud相关内容:本次主要内容是使用cloud结合zookeeper作为注册中心来搭建服务调用,前面几篇文章有涉及到另外的eureka作为注册中心,有兴趣的 ...
- 【视频】ASP.NET Core MVC 2.* 入门
比较初级的入门教程,网址在B站:https://www.bilibili.com/video/av33728783/ 内容如下: 1. ASP.NET Core 简介和开发工具 2. ASP.NET ...
- KeyboardUtil【软键盘弹出后输入框上移一定的高度】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 演示获取软键盘高度并保存,然后根据输入框的原有位置是否被软键盘挡住了,如果被挡住了则将整体页面上移一定的高度,当软键盘隐藏的时候再下 ...