Linux目录和文件管理
)
1 Linux系统目录结构和相对/绝对路径
1.1系统目录结构
在WIN系统中,查看文件先进入相应的盘符,(C)(D)(E)(F)然后进入文件目录
在Linux只有一个根目录
使用tree命令查看linux目录结构,这个命令默认是没有安装的,需要手工安装一下
[root@localhost ~]# mount /dev/sr0 /media/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# rpm -ivh /media/Packages/tree-1.6.0-10.el7.x86_64.rpm
查看/tmp目录结构
[root@localhost ~]# tree /tmp/
查看根下有哪些文件:
[root@localhost ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
常见的子目录的作用
目录 | 说明 |
---|---|
/root | 系统管理员root的宿主目录 |
/home | 普通用户的宿主目录 |
/boot | 系统内核、启动文件 |
/dev | 设备文件 |
/etc | 配置文件 |
/bin | 所有用户可执行的命令 |
/sbin | 管理员可执行的管理命令 |
/usr | 应用程序 |
/var | 日志文件等 |
1.2 绝对路径和相对路径
路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径
绝对路径:在Linux中,绝对路径是从”/”开始的,比如/usr、/etc/passwd。如果一个路径是从根(/)开
始的,它一定是绝对路径.
相对路径:相对路径是以 . 或 .. 开始的,
[root@localhost etc]# pwd #判断用户当前所处的位置
绝对路径: 从/开始的路径 /home/mk
相对路径: 相对于当前目录开始,a.txt ./a.txt ../miao/b.txt 当前目录在/etc
[root@localhost ~]# cd /etc/
[root@localhost etc]# ll passwd
-rw-r--r-- 1 root root 2116 11月 16 14:57 passwd
[[root@localhost etc]# ll /etc/passwd
-rw-r--r-- 1 root root 2116 11月 16 14:57 /etc/passwd
2 文件的管理
文件管理方式有多种:
改变目录: cd
创建/修改/移动/删除: touch mkdir mv vi rm cp
2.1 创建文件和文件夹
命令之:touch
作用:常用来创建空文件,如果文件存在,则修改这个文件的时间
补充:文件的三种时间
[root@localhost ~]# ll /etc/passwd #查看文件修改的时间
-rw-r--r-- 1 root root 2116 11月 16 14:57 /etc/passwd
[root@localhost ~]# stat /etc/passwd #查看文件属性(其中包括文件时间属性)
文件:"/etc/passwd"
大小:2116 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:9401663 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2017-11-16 14:57:39.923177258 +0800
最近更改:2017-11-16 14:57:39.397177256 +0800
最近改动:2017-11-16 14:57:39.409177256 +0800
注:
访问时间:atime 查看内容 cat a.txt
修改时间:mtime 修改内容 vim a.txt
改变时间:ctime 文件属性,比如权限 change time。 chmod +x a.sh
语法:touch 文件名
[root@localhost ~]# cd /opt/
[root@localhost opt]# touch a.txt
[root@localhost opt]# touch file1 file2
[root@localhost opt]# touch file{6..20} #创建file6到file20的文件
[root@localhost opt]# ls
a.txt file10 file12 file14 file16 file18 file2 file6 file8 rh
file1 file11 file13 file15 file17 file19 file20 file7 file9
[root@localhost opt]# touch -d "20181019 21:30" xuegod.txt
[root@localhost opt]# ll xuegod.txt
-rw-r--r-- 1 root root 0 10月 19 2018 xuegod.txt
2.2 使用vim和重定向创建一个新文件
用vim命令创建一个新文件
[root@localhost ~]# vim xuegod-1.txt
用重定向创建一新文件
[root@localhost ~]#echo aaa > xuegod.txt
2.3 命令之:mkdir
作用:创建目录
语法:mkdir (选项) 文件名
例:
[root@localhost opt]# mkdir dir1
[root@localhost opt]# mkdir dir2 dir3 /home/dir4
[root@localhost opt]# ls /home/
dir4 mk
[root@localhost opt]# mkdir /tmp/a/b/c
mkdir: 无法创建目录"/tmp/a/b/c": 没有那个文件或目录
[root@localhost opt]# mkdir -p /tmp/a/b/c #在创建一个目录的时候,如果这个目录的上一级不存在的话,要加参数-p
[root@localhost opt]# ls /tmp/a/b/
2.4 删除文件和目录
用到的命令:rm
作用:可以删除一个目录中的一个或多个文件或目录,对于链接文件,只是删除整个链接文件,而原文件保持不变的
语法:rm (选项) 处理对象
选项:
-f 强制删除,没有提示
-r 删除目录
例子:
[root@localhost opt]# rm -rf a.txt
[root@localhost opt]# rm -rf a.txt dir
[root@localhost opt]# rm -rf file*
rm -rf (慎用,一定要在删除以前确定一下所在目录,防止误删除重要数据)
2.5 复制文件
命令:cp 源文件/目录 目录文件/目录
选项:-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
例子:
[root@localhost ~]# cp /etc/passwd /opt/ #复制文件
[root@localhost ~]# cp -r /boot/grub /opt/ #复制目录
2.4 移动文件
[root@localhost opt]# mv passwd dir1
[root@localhost opt]# mv xuegod.txt dir1/a.txt #在移动文件的时候支持改名操作
3 查看文件
3.1 命令之:cat
语法:cat 文件名
作用:查看文件内容,一次显示整个文件的内容
[root@localhost ~]# cat /etc/passwd
3.2 命令之:more
作用:以分页形式显示文件内容
语法:more + 文件名
说明: 按下回车刷新一行,按下空格刷新一屏,输入q键退出
3.3 命令之:less
作用:和more功能一样
语法:less +文件名
说明:linux中more与less的区别
more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便
less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。,空格键是向下翻页,Enter键是向下翻一行
3.4 命令之:head
作用: 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容
语法:head(选项)文件名
参数: -n 显示从文件头开始的行数
[root@localhost opt]# head /etc/passwd
[root@localhost opt]# head -n 3 /etc/passwd #显示前3行
3.5 命令之:tail
作用: 用于显示文件中的尾部内容。默认在屏幕上显示指定文件的末尾10行
语法:tail (选项)文件名
参数:
-n 显示文件尾部多少行的内容(n为数字)
-f 动态显示数据(不关闭),常用来查看日志
[root@localhost ~]# tail -n 3 /var/log/secure #查看最后3行记录
[root@localhost ~]# tail -f /var/log/secure #在一个终端执行此命令动态查看文件内容
[root@localhost ~]# ssh root@192.168.1.63 #在另一个终端远程登录Linux,登录成功后
[root@localhost ~]# tail -f /var/log/secure #可以动态查看到登录成功的日志
Nov 17 00:08:32 xuegod63 sshd[2924]: Accepted password for root from 192.168.1.63 port 39904 ssh2
3.6 统计文件的内容:wc
统计文件中的单词数量
wc [选项]... 目标文件...
常用命令选项
-l:统计个数
-w:统计单词个数
-c:统计字节数
[root@localhost ~]# wc -wcl 123.txt
8 8 51 123.txt
分别表示 行数 单词个数 字节数 文本名
4 检索和过滤文件内容: grep
在文件中查找并显示包含指定字符串的行
grep [选项]... 查找文件 目标文件
常用命令选项
-i:查找时忽略大小写
-v:反转查找,输出与查找条件不相符的行,过滤
查找条件设置
要查找的字符串以双引号括起来
“^……”表示以……开头,“……$”表示以……结尾,“^$”表示空行
查找以#开头的内容:grep -i "^#" [目标文件名]
过滤以#开头的内容:grep -v "^#" [目标文件名]
三级过滤:grep -v ^# [目标文件名] | grep -v ^$| grep -v ^server表示目标文件在过滤
以#为开头的内容基础上过滤空行内容,在过滤空行内容的基础上过滤以server开头的内容
5 压缩命令: gzip、bzip2
制作压缩文件,解开压缩文件
压缩文件:gzip [-9] 文件名...
bzip2 [-9] 文件名...
解压缩文件:gzip -d .gz格式的压缩文件
bzip2 -d .bzip2格式的压缩文件
常用命令选项: -9、-d
gzip压缩文件,bzip2同理:gzip -9 123.txt
gzip解压缩文件,bzip2同理:gzip -d 123.txt
6 归档命令:tar
制作归档文件,释放归档文件
tar [选项]... 归档文件名 源文件或目录
tar [选项]... 归档文件名 [-c目标目录]
常用命令选项
-c:建立打包文件
-t:查找打包文件的内容
-x:解压缩
-j:解压缩.bz2的文件
-z:解压缩.gz的文件
-v:显示压缩/解压缩的过程
-f:要处理的文件名
-C:解压缩的指定目录
-p:保留原文件属性不变
tar zcvf a.tar.gz /root /etc 打包/root和/etc到a.tar.gz
tar zxvf a.tar.gz -C /opt 解压缩a.tar.gz到指定目录
tar jcvf b.tar.bz2 /root 压缩为.bzip2格式
tar jxvf b.tar.bz2 -C /aa 解压缩.bzip2格式