【Linux学习二】文件系统
环境
虚拟机:VMware 10
Linux版本:CentOS-6.5-x86_64
客户端:Xshell4
FTP:Xftp4
一、文件系统 一切皆文件
Filesystem Hierarchy Standard(文件系统层次化标准)
/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
/dev: 设备文件
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/root:管理员的家目录;
/lib:库文件
/media:挂载点目录,移动设备(比如移动硬盘)
/mnt:挂载点目录,额外的临时文件系统(比如DVD)
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,内核映射文件 (0-标准输入 1-标准输出 2-标准错误输出)
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件, /var/tmp
/var:可变化的文件
/bin: 可执行文件, 用户命令
/sbin:管理命令
/usr:如果不指定软件的安装目录 会自动安装到该目录
/selinux和/lost+found 不用管 平常不要动就可
二、常用磁盘操作命令
df:显示磁盘使用情况,可以查看空间使用率
du:显示文件系统使用情况,查看某个文件或者文件夹的大小
[root@node1 /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 97G 819M 91G 1% / tmpfs 495M 0 495M 0% /dev/shm /dev/sda1 194M 28M 157M 15% /boot /dev/sr0 398M 398M 0 100% /mnt [root@node1 /]# cd tmp [root@node1 tmp]# du -h 4.0K ./.ICE-unix 8.0K .
挂载文件:将CD设备里的ISO文件挂载到文件系统
mount /dev/cdrom /mnt
[root@node1 /]# mount /dev/cdrom /mnt mount: block device /dev/sr0 is write-protected, mounting read-only [root@node1 /]# cd /mnt [root@node1 mnt]# ls CentOS_BuildTag GPL Packages RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Testing-6 EFI images RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Debug-6 TRANS.TBL EULA isolinux repodata RPM-GPG-KEY-CentOS-Security-6
ls:显示目录,可以查看多个目录,先展示最上层的目录,同级的按照目录名排序
ls -l
从左到右依次展示
(1)文件类型:
-:普通文件 (f)
d: 目录文件
b: 块设备文件 (block) 可以切割
c: 字符设备文件 (character) 不可切割
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket)
(2)文件权限:9位,每3位一组,3组 权限(U,G,O)每一组:rwx(读,写,执行), r--
(3)文件硬链接的次数
(4)文件的属主(owner)
(5)文件的属组(group)
(6)文件大小(size),单位是字节
(7)时间戳(timestamp):最近一次被修改的时间
(8)目录或者文件名
树形展示目录,tree
yum install tree -y
cd:切换工作目录
pwd:显示当前工作目录
mkdir:创建目录 -p可以创建多层目录 {}创建多个目录
root@node1 src]# mkdir -p a/b/c [root@node1 src]# tree . └── a └── b └── c 3 directories, 0 files [root@node1 src]# mkdir a/{x,y}dir [root@node1 src]# tree . └── a ├── b │ └── c ├── xdir └── ydir 5 directories, 0 files
rm:删除 -rf 递归删除文件和目录
cp:拷贝 -r 拷贝目录
mv:移动或者重命名
ln:硬链接,对同一个文件的引用 加参数-s创建软连接,软引用 删除源文件,软连接失效
[root@node1 src]# ln 1.txt 2.log [root@node1 src]# ll total 8 -rw-r--r--. 2 root root 13 Dec 21 01:37 1.txt -rw-r--r--. 2 root root 13 Dec 21 01:37 2.log [root@node1 src]# ln -s 1.txt 3.txt [root@node1 src]# ll total 8 -rw-r--r--. 2 root root 13 Dec 21 01:37 1.txt -rw-r--r--. 2 root root 13 Dec 21 01:37 2.log lrwxrwxrwx. 1 root root 5 Dec 21 01:39 3.txt -> 1.txt
stat:查看元数据:访问:access,修改:modify 文件内容发生了改变,改变:change 改变元数据
[root@node1 src]# stat 1.txt File: `1.txt' Size: 13 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 6166307 Links: 2 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-12-21 01:37:26.647505856 +0800 Modify: 2018-12-21 01:37:26.647505856 +0800 Change: 2018-12-21 01:38:09.047539091 +0800
touch:文件不存在则创建文件;文件存在则刷新元数据信息
三、文本操作命令
1.文件查看命令
cat 查看全部
more 逐页查看,按空格键显示下一页,按 b 键显示前一页,有搜寻字串的功能 启动时就加载整个文件
less 使用 [pageup] [pagedown]按键来往前往后翻看文件,可搜索 不止可以向下搜,也可以向上搜
head 从前看
tail 从后看
2.管道:前一个(左边)简单命令的标准输出作为后一个(右边)简单命令的标准输入
(1)|
(2)xargs
命令
1、在标准输入中读取到的内容!
2、自己的参数理解为一个字符串
模仿shell,做blank切分,第一个子字符串为命令
3、将步骤1的内容做为步骤2的命令的选项参数拼接起来
4、执行得到的结果
[root@node1 src]# echo "/" | xargs ls -l total 90 dr-xr-xr-x. 2 root root 4096 Dec 20 02:12 bin dr-xr-xr-x. 5 root root 1024 Dec 20 02:14 boot drwxr-xr-x. 18 root root 3700 Dec 20 19:00 dev drwxr-xr-x. 61 root root 4096 Dec 21 00:38 etc drwxr-xr-x. 2 root root 4096 Sep 23 2011 home dr-xr-xr-x. 8 root root 4096 Dec 20 02:12 lib dr-xr-xr-x. 9 root root 12288 Dec 20 02:14 lib64 drwx------. 2 root root 16384 Dec 20 02:09 lost+found drwxr-xr-x. 2 root root 4096 Sep 23 2011 media dr-xr-xr-x. 7 root root 4096 Nov 29 2013 mnt drwxr-xr-x. 2 root root 4096 Sep 23 2011 opt dr-xr-xr-x. 85 root root 0 Dec 20 19:00 proc dr-xr-x---. 2 root root 4096 Dec 20 02:22 root dr-xr-xr-x. 2 root root 12288 Dec 20 02:14 sbin drwxr-xr-x. 7 root root 0 Dec 20 19:00 selinux drwxr-xr-x. 2 root root 4096 Sep 23 2011 srv drwxr-xr-x. 13 root root 0 Dec 20 19:00 sys drwxrwxrwt. 3 root root 4096 Dec 21 01:17 tmp drwxr-xr-x. 13 root root 4096 Dec 20 02:10 usr drwxr-xr-x. 17 root root 4096 Dec 20 02:10 var