在linux系统中一切皆文件
1.Linux目录结构
1.1 window/Linux 对比
Windows: 以多根的方式组织文件 C:\ D:\ E:
Linux: 以单根的方式组织文件"/"
路径:是由 “/”和目录和文件名称两个部分组成。
1.2 简介
/目录结构:
FSH (Filesystem Hierarchy Standard):标准的目录结构
[root@biudefor ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
1.3 图示
image-20191031144431191.png1.4 目录功能
bin 普通用户使用的命令 /bin/ls, /bin/date
sbin 管理员使用的命令 /sbin/service
案例:
[root@biudefor ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@biudefor ~]# which useradd
/usr/sbin/useradd
dev 设备文件 /dev/sda,/dev/sda1
[root@biudefor ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 Jan 24 09:42 /dev/sda
brw-rw----. 1 root disk 8, 1 Jan 24 09:42 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jan 24 09:42 /dev/sda2
[root@biudefor ~]# tty
/dev/pts/1 #这是我们的终端。
/root #root用户的家目录
/home #存储普通用户家目录
lost+found 这个目录平时是空的,存储系统非正常关机而留下“无家可归”
的文件
/usr #系统文件,相当于C:\Windows
/usr/local #软件安装的目录,相当于C:\Program
/usr/bin #普通用户使用的应用程序
/usr/sbin #管理员使用的应用程序
/usr/lib 库文件Glibc 32bit
/usr/lib64 库文件Glibc 64bit
/boot 存放的系统启动相关的文件,例如kernel
/etc #配置文件(系统相关如网络/etc/sysconfig/network)
/tmp 临时文件(系统:程序产生的临时文件)
/opt 空目录
/var #存放的是一些变化文件,比如数据库,日志,邮件....
/proc #虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。
==设备(主要指存储设备)挂载目录==
/mnt #系统提供这个目录是让用户临时挂载其他的文件系统
查看历史命令
[root@biudefor ~]# history
[root@biudefor ~]# clear #清屏快捷键:ctrl+l #---清屏
2.文件管理
2.1 文件类型(理解即可)
- 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
d 目录文件(蓝色)
b 设备文件 block device 设备文件,如硬盘U盘;
c 设备文件 字符设备文件,比如我们的终端tty1,打印机。
l symbolic link 即符号链接文件,又称软链接文件 (浅蓝色)
s socket 即套接字文件,用于实现两个进程进行通信
p 管道文件
2.2示例1
查看各式各样的文件类型。你能找出几种呢?
[root@biudefor ~]# ll -d /etc/hosts /bin/ls /home /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
-rwxr-xr-x. 1 root root 117656 Nov 6 2016 /bin/ls
srw-rw-rw-. 1 root root 0 Oct 31 14:16 /dev/log
brw-rw----. 1 root disk 8, 0 Oct 31 14:16 /dev/sda
crw--w----. 1 root tty 4, 1 Oct 31 14:42 /dev/tty1
lrwxrwxrwx. 1 root root 22 Oct 31 12:11 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
drwxr-xr-x. 2 root root 6 Nov 5 2016 /home
prw-------. 1 root root 0 Oct 31 14:16 /run/dmeventd-client
注意
通过颜色判断文件的类型是不一定正确的!!!
Linux系统中文件是没有扩展名!!!
3.文件管理命令
路径分类
绝对路径:从根开始的路径是绝对路径。案例:/home/alice/file1
相对路径:相对于当前位置开始的为相对路径。
绝对路径实例:
[root@biudefor ~]# useradd alice #创建用户
[root@biudefor ~]# touch /home/alice/file1
相对路径示例:
[root@biudefor ~]# pwd
/root
[root@biudefor ~]# mkdir abc #创建目录
[root@biudefor~]# touch abc/file3
3.1 改变目录
# cd 绝对路径 cd /home/alice
# cd 相对路径 cd ..
# cd 直接回家
2.2 创建文件
[root@biudefor ~]# touch file1.txt //无则创建,如果存在修改时间
[root@biudefor ~]# touch /home/file10.txt
[root@biudefor ~]# touch /home/file11.txt file12.txt
[root@biudefor ~]# touch /home/{zhuzhu,gougou}
[root@biudefor ~]# touch /home/file{1..20} //批量创建
[root@biudefor home]# touch soso{a,b,c} //{}集合,等价touch sosoa touch sosob touch sosoc
2.3 创建目录
语法:mkdir -v 详细 -p 递归 目录
# mkdir dir1
创建两个目录:
# mkdir /home/dir2 /home/dir3
# mkdir /home/{dir4,dir5}
# mkdir -v /home/{dir6,dir7} #显示创建时的详细信息
# mkdir -v /home/dir8/111/22
# mkdir -pv /home/dir8/111/222 ##包括其父母的创建,一级一级的创建
# mkdir -pv /home/{yang/{dir1,111},soso}
2.4.复制
复制 cp -r 目录 -v 详细 -f 强制 -n 静默
# mkdir /home/dir{1,2} //创建目录
# cp -v anaconda-ks.cfg /home/dir1/ //-v 显示详细信息
# cp -v anaconda-ks.cfg /home/dir1/test.txt //复制并改文件名
# cp -rv /etc /home/dir1 //-r 拷贝文件夹
# cp -rv 源文件1 源文件2 源文件N 目标文件 //将多个文件拷贝到同一个目录
# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hosts .
# cp -r /etc /tmp
# cp -rf /etc /tmp
2.5 移动
1.创建一个新文件file1
[root@biudefor ~]# touch /root/file1
2.把file1文件移动到/tmp目录中。
[root@biudefor ~]# mv /root/file1 /tmp/
[root@biudefor ~]# ls /tmp/file1
/tmp/file1
3.把file1文件更名为file2
[root@biudefor~]# mv /tmp/file1 /tmp/file2
4.观察file1文件已经更名为file2
[root@biudefor ~]# cd /tmp/
[root@biudefor tmp]# ls
file2
2.6 删除
删除 rm -r 递归 -f force强制 -v 详细过程 *通配符
实例1:删除/home/dir1
# cd /home/
# rm -rf dir1/
-r 递归
-f force强制
-v 详细过程
示例2:
[root@biudefor ~]# mkdir /home/dir10
[root@biudefor ~]# touch /home/dir10/{file2,file3,.file4}
[root@biudefor ~]# rm -rf /home/dir10/* //不包括隐藏文件
[root@biudefor ~]# ls /home/dir10/ -a
. .. .file4
示例3:
[root@biudefor ~]# touch {1..10}.txt
[root@biudefor ~]# touch file{1..20}.txt #创建file1-10的txt文件
[root@biudefor ~]# rm -rf file1*
2.7 查看文件内容
cat全部
[root@biudefor ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...
参数:
-n 显示行号
-A 包括控制字符(换行符/制表符)
tac 倒过来显示
head头部
[root@biudefor ~]# head /etc/passwd //默查看前十行
[root@biudefor ~]# head -2 /etc/passwd //默认查看前两行
tail尾部
[root@biudefor ~]# tail /etc/passwd //默认查看文件的后十行
[root@biudefor ~]# tail -1 /etc/passwd //查看文件最后一行
[root@biudefor ~]# tail /var/log/messages
[root@biudefor ~]# tail -f /var/log/secure //-f 动态查看文件的尾部
[root@biudefor ~]# tail -F /var/log/secure //-f 动态查看文件的尾部
grep过滤关键字 grep 针对文件内容进行过滤
过滤出文件中带有root的内容:
[root@biudefor ~]# grep 'root' /etc/passwd
过滤出以root开头的行:^ --以什么开头
[root@biudefor ~]# grep '^root' /etc/passwd
过滤出以bash结尾的行:$ --以什么结尾
[root@biudefor ~]# grep 'bash$' /etc/passwd
过滤出日志中带有failure的行:
[root@biudefor ~]# grep 'failure' /var/log/secure
less --分页显示
[root@biudefor ~]# less /etc/passwd
1.空格键是翻页 回车键是翻行
2.上下箭头可以来回翻
3.快捷键:q -quit 退出
网友评论