文件管理
目标:对系统中的文件进行增、删、该、查。
查询:
1、查看当前工作路径:pwd
2、查文件列表:ls
格式:ls [-arRlh] [路径]
注:当不指定路径是则显示当前目录路径下的文件列表。
选项:
--help 显示帮助
-a 即all,显示所有文件,包括以.开头的隐藏文件。ls -a /root
-l 以long长格式显示文件属性(包括类型、权限、链接数、属主、属组、大小、时间、文件名)。ls -l /root
-h 与-l 一起,以易于阅读的格式输出文件大小(如 1K 234M 2G)。ls -lh /root
-r 逆序排列(降序)。对比ls / 和 ls -r / 结果的区别。
-R 递归显示子目录。ls -R /etc/sysconfig
Linux的文件类型:
- 普通文件,文本文件、mp3音乐、avi视频、jpg图片等。如ls -l /etc/host*
d 目录,即文件夹。例:ls -l /
l 软链接文件,即快捷方式。例:ls -l /
b 块block设备文件,即硬盘、分区、u盘。例:ls -l /dev/sd*
c 字符设备文件,通常指命令终端设备。例:ls -l /dev/tty*
s 套接字文件,通常是网络服务生成的,文件中保存的IP和port端口号。例:ls -l /run/rpcbind.sock
p 管道文件(pipo),用来做命名管道。例:ls -l /run/systemd/inhibit
查文件类型的方法:
方法一:ls -ld 文件名或目录名。例:ls -ld /etc/hosts /etc
方法二:file 文件名或目录名。例:file /etc/hosts /etc /dev/sda /dev/tty
3、查看纯文本文件内容:
cat、tac、nl、head、tail、more、less、grep
cat:读全文
例:cat /etc/passwd
cat -n /etc/passwd 显示行号
cat -A /etc/hosts 等于-vET,其中-E是在每行结束处显示"$"
tac:逆序读全文
例: tac /etc/hosts
nl:读全文并显示行号。忽略空白行(即空白行无行号)。nl /etc/yum.conf
head:读开头
例: head /etc/passwd 读前10行
head -5 /etc/passwd 读前5行
tail:读结尾
例: tail /etc/passwd 读最后10行
tail -6 /etc/passwd 读最后6行
问题:读/etc/passwd文件的第6行内容?读/etc/passwd文件的倒数第7行内容?读/etc/passwd的前12行内容并显示行号?
解答:head -6 /etc/passwd | tail -1
tail -7 /etc/passwd | head -1
head -12 /etc/passwd | cat -n
说明:|是管道符号,作用是将前一个命令的结果传给后一个命令继续处理。一条命令中可以多个管道符。
more:读更多,向下翻页显示
例:more /etc/passwd
空格下翻一页,回车下翻一行,q键退出。
less:读更少,上下翻页显示
例:less /etc/passwd
可用方向键,空格或PageDown下翻一页,PageUp上翻一页,回车下翻一行,q键退出。
grep:读关键字所在的内容。也称为匹配关键字。
用法:grep [选项] 关键字 文件名
例如:grep root /etc/passwd 显示/etc/passwd文件中的root关键字的内容
grep ^root /etc/passwd 显示以root开头的。^(上尖、拖字符、乘方)表示锚定开头
grep bash$ /etc/passwd 显示以bash结尾的。$表示锚定结尾
选项:
--help 显示帮助
--color 以彩色显示关键字,centos7默认开启了此功能
-n 显示行号
-E 启用扩展正则表达式字符。如|表示或者。grep -En 'root|adm|lp' /etc/passwd
-w 精确匹配关键字。对比grep localhost /etc/hosts和grep -w localhost /etc/hosts
-v 反向匹配,即不包含关键字的内容。grep -v 127 /etc/hosts
-B 显示关键字及其before前n行内容。grep -B 2 adm /etc/passwd
-A 显示关键字及其after后n行内容。grep -A 2 adm /etc/passwd
touch:创建空文件,或更新文件的时间。
例:touch a b c 创建3个文件
ls 显示文件列表
stat:显示文件的状态信息(详细属性),属性包括文件路径、大小、块、文件类型、Inode索引号、硬链接个数、权限、uid、gid、环境(SElinux属性)、时间。
例:stat /etc/hosts
文件的3个时间:
atime:访问时间(Access)。是指用touch、cat、head等命令访问过这个文件。touch /etc/hosts后再看文件的3个时间。
mtime:更改时间(modify)。是指用vim、gedit等命令修改过文件内容。
ctime:改动时间(change)。是指用chown、chmod改过文件的属性、权限。chmod -v +x /etc/hosts后再看文件的ctime时间。
rm:删除(remove)文件或目录(即文件夹)。
例:ls
rm -fv a b c 强制(-f)删除当前目录中的a、b、c文件,并显示过程(-v)
rm -rfv /tmp/* 清空/tmp目录中的所有文件。-r是递归(目录中及其子目录)
目录管理(文件夹):
pwd、ls、cd、mkdir、rmdir
pwd:显示工作路径
cd:切换目录(change directory),即打开文件夹
例:cd 或 cd ~ 切换到当前用户的家目录
pwd 显示工作路径
cd /etc/sysconfig/network-scripts 切换到指定的目录
ls 显示文件列表
cd .. 切换上一级目录。..表示上一级目录。.表示当前目录自己
cd ../.. 返回上一级的上一级目录
cd / 切换到根目录
说明:鼠标双击打开一个文件夹,其实后台执行了cd、ls、pwd这些命令。
mkdir:新建目录
例:cd
mkdir -v ak bk ck 在当前目录中新建3个目录,并显示过程
ls 显示文件列表
mkdir -v 1/2/3/4 会提示无法创建,因为没有1/2/3目录,所以无法创建4目录
mkdir -pv 1/2/3/4 正常在当前目录中新建多级目录1/2/3/4。-p是创建父级目录。
rmdir:删除空目录。
rmdir -pv 1/2/3/4 逐步删除1/2/3/4这几个空目录
rmdir -v ak bk ck 删除当前目录下指定的空目录
文件和目录管理公用:
rm删除、cp复制、mv移动
rm -rfv /tmp/* 清空/tmp目录下的所有文件
cp:复制
用法:cp [-rapv] 来源 目标
例:cp -v /etc/host* /tmp/ 将/etc/host*文件复制到/tmp/目录下
cp -v /opt /tmp/ 提示略过目录"/opt",说明复制失败,要用-r递归复制
cp -rv /opt /tmp/option 将/opt目录复制到/tmp目录下改名为option。-r是递归复制文件夹。
mv:移动(move)
用法:mv [-v] 来源 目标
例:cd 切换到用户的家目录
mkdir -v dir1 创建dir1目录
mv -v dir1 dir2 将dir1改名为dir2
mv -v dir2 /tmp/ 将dir2移动到/tmp目录下