Linux文件系统
根目录下的文件
-
/
├── bin 存放用户使用的基本命令(可执行程序,二进制文件) 不能单独分区的
├── boot 跟内核有关的文件 grub 内核和BootLoader
├── cgroup 用来资源限制资源隔离 docker 容器化
├── dev device 设备文件-
b block device 块设备 硬盘或者CD-rom 随机读写
c character device 字符设备 传真 鼠标 打字机 顺序读写
-
b block device 块设备 硬盘或者CD-rom 随机读写
-
├── etc 各种系统包括应用的配置文件
├── home 每个用户的家目录 而且每个用户默认的工作目录
├── lib 程序包括系统所依赖的一些共享库文件及内核所依赖的模块文件
├── lib64 系统程序所依赖的库文件 .so 结尾,(Windows .dll)
├── lost+found 垃圾回收站
├── media 光盘或者U盘挂载点 媒体介质挂载点
├── misc 杂项 不好归类的东西
├── mnt 临时文件文件挂载点 新建一个分区
├── net 网络文件
├── opt 第三方的应用安装位置 nginx tomcat Apache
├── proc 伪文件系统 硬盘不存在,只存在于内存中,记录系统或者进程的运行信息 cpuinfo
├── root root的家目录
├── sbin 存放管理类命令 也不能单独分区
├── selinux 与selinux相关文件或者记录
├── srv 系统运行产生的一些文件
├── sys 伪文件系统 记录系统硬件的一些运行信息
├── tmp 杂项,临时文件以及应用产生的临时文件
├── usr 误以为user,Unix software resource-
/lib /lib64 存放库文件
/bin /sbin 存放系统的一些二进制文件(可执行文件)
/local 用来存放第三方的应用或安装本地应用程序
bin etc games lib lib64 libexec sbin share etc
/share 用于存放帮助
/etc/ 配置文件
/include 主要用来存放头文件,对第三方应用做二次开发可能会用到
/tmp 临时文件
-
/lib /lib64 存放库文件
-
└── var 日志存放以及应用产生的一些文件或者临时文件 邮件队列
-
/var/log/message 系统日志
/var/log/boot.log 系统启动时候产生的一些日志
/var/log/dmesg 输出内核或者是硬件的一些有效信息,可以使用dmesg
/var/log/mail.log 邮件产生的日志
/var/log/cron 系统和我们自定义的计划任务的日志
/var/log/btmp | wtmp用来记录系统登录成功或者失败的用户(跟系统安全相关的)
使用last(登录成功的用户及IP)和lasb(登录失败的用户及IP)命令查看
/var/log/secure 记录用户登录信息
/var/log/lastlog
/var/lib/mysql MySQL数据存放目录
/var/mail 邮件存放目录 由于邮件服务 此目录可能会满 rsync(命令)使用一个空目录来同步有问题的目录
/var/spool/cron 跟计划任务相关的内容
-
/var/log/message 系统日志
-
注:
/var/log/dmesg:
dmesg 查看启动时候的内核日志信息
last(登录成功的用户及IP)
lastb(登录失败的用户及IP)
生产环境服务器暴露公网之中,经常会有网上的服务器去尝试登录我们的服务器,这时候需要用到
lastb去查看哪些地址的服务器在扫我们的机器,然后把这些IP加入host_deny iptables 中。
/sys : sysfs提供了一种比 /proc 更理想的途径,主要在于为管理Linux设备提供统一模型的接口
Linux上的应用程序的组成部分:
二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
文件类型:
-
普通文件
d directory目录文件
b 块儿设备 block :硬盘
c 字符设备 character :键盘
l 符号链接文件
p 管道文件 pipe :进程间通信可能会管道
s 套接字文件socket :比如MySQL的套接字 本地客户端和服务器端互相通信使用socket,避免通过网络这种方式
-rw-r–r–. 1 root root 13 Mar 27 14:21 hello
drwxr-xr-x. 3 root root 200 Mar 27 08:09 snd
brw-rw—-+ 1 root cdrom 11, 0 Mar 27 08:09 sr0
crw-rw—-. 1 root root 10, 231 Mar 27 08:09 snapshot
lrwxrwxrwx. 1 root root 15 Mar 27 08:09 stderr -> /proc/self/fd/2
[root@CentOS68 ~]# ll /var/lib/mysql/mysql.sock
srwxrwxrwx. 1 mysql mysql 0 Mar 27 09:53 /var/lib/mysql/mysql.sock
目录管理类命令:cd 、pwd 、ls 、mkdir 、rmdir 、tree
cd
-
change directory,改变工作目录
cd 、cd~ : 默认情况下是切换到自己的家目录下面
cd ~ USERNAME :切换到指定用户的主目录
cd -:在上一个目录和当前目录来回切换; cd – 相当于 cd $OLDPWD
cd . 和 cd .. :相对路径,表示当前目录和上一级目录
pwd
-
pwd [OPTION]…
显示当前目录
ls
-
ls [OPTIONS] [ARG]
d rwxr-xr-x. 2 root root 4096 Mar 22 22:23 Downloads
– rw-r–r–. 1 root root 51 Mar 24 10:02 hello.sh
文件类型 、 文件权限 、 链接数量 、 属主和属组 、 文件大小、 最近的修改日期(mtime) 、文件名称或者目录名称-
-a 列出所有隐藏文件和目录
-r 逆序显示
-R 把当前目录下的目录的所有内容列出来(递归)
-d 显示当前目录的详细信息,不显示目录下的内容
-A 列出所有隐藏文件和目录 除了.和..
-l 文件和目录名分行显示
-S 把文件目录按照大小从大到小来排列
-t 把文件和目录按照最近修改时间排列 从最新到最老的顺序排列
-u 访问时间排序
-h 以人类可读的方式将文件或者目录大小显示出来
-
-a 列出所有隐藏文件和目录
mkdir
-
mkdir [OPTION]… DIRECTORY… 创建一个目录
-p 表示存在时不返回错误,不存在时,自动创建所需的各目录,同时创建父目录和子目录
-v 显示其过程详细信息
-m MODE 创建目录时直接指定目录权限mkdir -pv /tmp/a/b/c/
rmdir
-
rmdir [OPTION]… DIRECTORY…
删除空白目录
-v 显示执行过程
注:由rm -r 所取代, 递归删除所有目录和文件
tree
-
目录结构查看
-d 显示目录
-L 指定层级数目
-P pattern :只显示指定pattern匹配到的路径tree -L 1 -d /
文件内容查看:more、less、head、tail、cat、file、
more
-
more [options] file [ … ]
-d : 显示翻页及退出提示
less
- less : 一页一页查看文件内容
tail
-
tail [OPTION]… [FILE]…
显示文件后面的内容
tail -n 10
tail – 10
-f 实时查看文件的最新变化 ; 排查故障的时候 ===tailf
-c # :指定获取后#字节的内容
head
-
head [OPTION]… [FILE]…
显示文件前面的内容
head – n 10 文件名
head – 10 文件名
-c # :指定获取后#字节的内容cat 文件名 | head
题目:统计日志中频繁访问的前10个IP
cat /var/log/httpd/access_log | cut -d” ” -f1 | sort | uniq -c | sort -nr | head
cat
-
cat [OPTION]… [FILE]…
查看一个文件
-E: 显示行结束符 $
-n: 对显示出的每一行进行编号
-A:显示所有控制符
-T: –show-tabs 显示制表符
-v : –show-nonprinting 显示其他的非打印字符
-b:非空行编号
-s:压缩连续的空行成一行cat -sn changping.log
频繁使用的是 cat -An 文件名 -
tac 将文件内容倒序排列显示出来
file
-
file [文件路径]
文件类型查看
文件的时间戳管理工具
- 查看文件状态(属性信息或者元数据): stat
[s@magedu test]$ stat hello
Access: 2017-04-01 10:50:30.955996678 +0800 Modify: 2017-04-01 10:50:30.955996678 +0800 Change: 2017-04-01 10:50:30.955996678 +0800
-
可通过touch来修改时间戳 :
touch [OPTION]… FILE…
-a :修改atime
-m :修改mtime
-t :[[CC]YY]MMDDhhmm[.ss] :修改指定时间戳为某时间
注:当touch一个不存在的文件时,会先创建一个空文件。如果不想创建一个空文件,则使用- c选项,如 touch -c a.txt ,即如果文件不存在,则不创建该文件。
文本处理工具:wc、cut 、sort 、uniq
wc
-
wc [OPTION]… [FILE]…
字符统计
-l :lines 统计行数
-w:words统计单词个数
-c:character 统计字符个数
[root@CentOS68 ~]# cat /etc/passwd | wc -l 50 [root@CentOS68 ~]# wc -l /etc/passwd 50 /etc/passwd
cut
-
cut OPTION… [FILE]…
文件内容切割
-d :指明分隔符
-f :指明需要取出的字段
cut -d: -f1,3-5,7 /etc/passwd
sort
-
sort [OPTION]… [FILE]…
-r 逆序
-n 以数值大小进行排序
-f 忽略字符串大小写
-t “c” 以后面的字符作为分隔符
-k# 选择某个字段 进行排序
-u 去重(除去连续重复的行,只保留一次)
uniq
-
uniq [OPTION]… [INPUT [OUTPUT]]
-c 显示每行重复出现的次数
-d 仅显示重复
-u 显示不重复
diff
-
diff [OPTION]… FILES
比较两个文件的异同
diff -u a文件 b文件 > a.diff
path -b b < b.diff
diff -u foo.conf-broken foo.conf-works > foo.patch
$ patch -b foo.conf-broken foo.patch
1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址
[root@magedu ~]# ifconfig eth1 | head -2 | tail -1 | cut -d “:” -f2 | cut -d ” ” -f1
172.16.252.143
2、查出分区空间使用率的最大百分比值
[root@magedu ~]# df | tail -5 | awk ‘{print 5}’ | sort -t” ” -rn -k2
/dev/sr0 100%
/dev/sda2 12%
/dev/sda1 10%
tmpfs 1%
/dev/sda5 1%
3、查出用户UID最大值的用户名、UID及shell类型
[root@magedu ~]# cat /etc/passwd | cut -d “:” -f1,3,7 | sort -t: -nr -k2 | head -1
nfsnobody:65534:/sbin/nologin
文件管理:cp、mv、rm
cp
-
cp [OPTION] … [-T] SOURCE DEST
cp [OPTION] … SOURCE … DIRECTORY
cp [OPTION] … -t DIRECTORY SOURCE…
-i :交互式
-r:递归复制目录及内部的所有内容
-a:归档,相当于 -dR –preserve=all
-d:表示不跟踪符号链接所指向的原文件
-p:保持原有文件的属性信息
-f:强制覆盖
-v:显示过程
mv
-
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION] … SOURCE … DIRECTORY
mv [OPTION] … -t DIRECTORY SOURCE…
-i:交互式
-f:强制
rm
-
rm [OPTION] … FILE …
-i:交互式
-f:强制
-r:递归
原创文章,作者:s,如若转载,请注明出处:http://www.178linux.com/72301
评论列表(1条)
主要总结了linux 的文件系统的结构,及linux下常用的一些命令,内容写的挺好的,排版也挺不错的