在linux系统中一切皆文件
1.linux目录结构
1.1 WINDOWS/LINUX对比
Windows:以多根的方式组织文件 C:\ D:\ E:\
Linux:以单根的方式组织文件 "/"
1.2 简介
/目录结构:
FHS(Filesystem Hierarchy Standard):文件系统层次标准
[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt
proc root run sbin srv sys tmp usr var
1.3 目录功能
/root root用户家目录
/home 存储普通用户的家目录
/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 空目录,一般存放第三方应用(tomcat)
/media 用于挂载u盘,光驱等自动识别的设备
/srv 存放服务器启动后产生的数据目录
/var 存放的是一些变化的文件,比如数据库,日志,邮件
/proc 虚拟文件系统,系统程序文件所处目录,虚拟文件系统:只要关机就会没有。内核的虚拟映射目录(仪表盘)
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统
lost+found 这个目录平时是空的,存储系统非正常关机而留下“无家可归”的文件
1.4 路径分类
绝对路径
从根开始的路径是绝对路径。案例:.home/alice/file1 /etc/grub.conf
相对路径
凡是从非根开始的路径都是相对路径。 案例: etc var/ftp/pub/./text.sh
2.文件管理
2.1 文件类型
- 普通文件(文本文件,二进制文件,压缩文件...)
d 目录文件
b 设备文件 block device 设备文件,如:硬盘,U盘;
c 设备文件 字符设备文件,比如我们的终端tty1,打印机
l symbolic link 即符号链接文件,又称软连接文件
s socket 套接字文件,用于实现两个进程进行通信
p 管道文件
注意:通过颜色判断文件的类型不一定是正确的
3.文件管理命令
3.1 切换目录--cd
. #表示当前目录
cd .. #回到上一级目录
cd或cd - #回到家目录
cd /home/alice #切换目录
cd - #回到上一次所在目录
3.2 创建文件--touch
touch file.txt #如果不存在则创建;如果存在则修改时间,不影响文件内容。
创建的文件是空文件
touch /home/file #通过路径创建
touch /home/{zhuzhu,gougou} #{} 集合,批量创建
touch /home/file{1..20} #批量创建file1到file20
3.3 追加覆盖--echo
echo 内容 > 文件名 #覆盖,把之前的内容替换掉
#echo 123 > a.txt
echo 内容 >> 文件名 #追加,保留之前的内容,在文件内容后面添加新内容
#echo 123 >> a.txt
当时用追加覆盖时,如果目标文件不存在则创建该文件并追加覆盖到该文件中
小拓展:
echo -e "\e[31mI miss you\e[0m"
3.4 创建目录--mkdir
语法:mkdir -v 详细 -p 递归
mkdir dir1
创建两个目录:
mkdir /home/dir2 /home/dir3
mkdir {dir4,dir5}
mkdir -v /home/{dir6,dir7} #-v verbose 冗长的。显示创建时的详细信息
mkdir -p /home/dir8/dir9 #-p 递归。创建不存在的目录下的目录,一级一级的创建
3.5 复制--cp
cp -r 目录 -v 详细 -f 强制 -n 静默
mkdir /home/dir1 #创建目录
cp -v anaconda-ks.cfg /home/dir1/ # -v 显示详细信息
cp anaconda-ks.cfg 、/home/dir1/test.txt #复制并改名
cp -r /etc /home/dir1 # -r 复制目录使用,连里面的文件一块复制
cp -r 源文件1 源文件2 源文件N 目标目录 #将多个文件拷贝到同一目录
3.6 移动--mv
touch /root/file1
#创建一个新文件
mv /root/file1 /tmp/
#把file1文件移动到/tmp目录中
mv /tmp/file1 /tmp/file2
#把file1改名为file2
3.7 删除--rm
rm -r 目录 -f 强制 -v 详细过程
rm 文件名
rm -r 目录名
rm -f 文件名
rm -rf 文件/目录
3.8 查看文件内容
3.8.1 查看一个文件全部内容--cat
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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
3.8.2 头部--head
head /etc/passwd
#默认查看文件前10行
head -2 /etc/passwd
#查看文件前两行
3.8.3 尾部--tail
tail /etc/passwd
#默认查看文件后10行
tail -2 /etc/passwd
#查看文件最后两行
tail -f /var/log/secure
#动态查看文件尾部 ==tailf /var/log/secure
tail -F file
#file已被创立,正在追随新文件末尾
3.8.4 过滤--grep
grep 'root' /etc/passwd
#过滤文件中带有root的内容
grep '^grep' /etc/passwd
#过滤以root开头的行。 ^ --以什么开头
grep 'bash$' /etc/passwd
#过滤以bash结尾的行。 $ --以什么结尾
3.8.5 分页显示--less,more
less /etc/makedumpfile.conf.sanple
1.空格键是翻页 回车键是翻行
2.上下箭头可以来回翻
3. /关键字 #搜索 (n按关键字往下翻 N按关键字往上翻)
4.快捷键:q -quit 退出
more 文件名
空格键是向下翻页 回车键是翻行
Ctrl+B 向上翻页
less和more的区别
less可以按键盘上下方向键显示上下内容,而more不能通过上下方向键控制显示。
less不必读整个文件,加载速度会比more更快。
less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。
阅读到文件结束时,less不会退出,而more会。
less可用行号或百分比作为书签浏览文件,而more不行。
相比more,less提供更加友好的检索、高亮显示等操作