简述
在Linux操作系统使用过程中,因为运维需要频繁的对文件、目录进行操作,所以需要学习一些关于文件、目录的命令
Linux上文件是什么?
「文件」:存储空间存储的一段流式数据,可以按名「存取」这些数据
常见文件类型
-:常规文件
d:目录文件
b:块设备文件,以「block」为单位进行随机访问,常见设备「硬盘」
c:字符设备文件,以「character」为单位进行线性访问,常见设备「键盘」
l:符号链接文件
p:命令管道
s:套接字文件
通过使用命令ls来查看文件类型
[root@localhost ~]# ls -l /etc/ drwxr-xr-x. 3 root root 97 Apr 12 2016 abrt -rw-r--r--. 1 root root 44 Apr 12 2016 adjtime lrwxrwxrwx. 1 root root 11 Apr 12 2016 init.d -> rc.d/init.d .....
Linux上目录是什么?
「目录」也是文件,在目录中存放着路径映射表,在Linux操作系统中存在一个特殊目录“/”(根目录),通过「根目录」可以找到目录,文件可以通过目录找到
假如需要查找/etc/fstab文件,具体过程如下:
-
通过根目录自引用的iNode,找到根目录对应的block
-
在根目录block中存放着路径映射表,表中存放着etc目录的iNode号
-
通过etc的iNode来访问etc对应的block
-
根据etc的block可以找到fstab的iNode号
-
通过fstab的INode就找到了对应的block了
常用命令简介
-
ls命令
功用:列出指定目录下的内容
语法:ls [OPTION]… [FILE]…
不带任何选项参数,表示显示不带任何信息的文件
[root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Music Public testDesktop Downloads ip.text Pictures Templates Videos
-l (l是字母不是“1”)显示是文件还是目录,它的大小、修改日期和时间、文件或目录的名字以及文件的属主属组等信息
[root@localhost ~]# ls -l total 12 -rw-------. 1 root root 1374 Apr 12 2016 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Apr 11 2016 Desktop drwxr-xr-x. 2 root root 6 Apr 11 2016 Documents drwxr-xr-x. 2 root root 6 Apr 11 2016 Downloads
-a 显示隐藏文件,.开头文件为隐藏文件
[root@localhost ~]# ls -a . .bashrc Documents .gstreamer-0.10 .local Templates.. .cache Downloads .gtkrc-2.0-kde4 .mozilla test
-A 显示除.和..之外的所有文件
[root@localhost ~]# ls -A anaconda-ks.cfg .config .esd_auth initial-setup-ks.cfg Music .thumbnails.bash_history .cshrc .functions.swo ip.text Pictures Videos
-h 显示易读方式的文件大小,通常结合-l选项使用
[root@localhost ~]# ls -lhtotal 12K -rw-------. 1 root root 1.4K Apr 12 2016 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Apr 11 2016 Desktop drwxr-xr-x. 2 root root 6 Apr 11 2016 Documents drwxr-xr-x. 2 root root 6 Apr 11 2016 Downloads
-d 查看目录本身
[root@localhost ~]# ls -ld /var/log/ drwxr-xr-x. 18 root root 4096 Nov 5 14:45 /var/log/
-r 逆序显示,-R 递归显示
-
cd命令
功用:切换工作目录
语法:cd [PATH]
~ 切换回自己家目录
~USERNAME 切换至指定用户家目录
-上一次目录位置与当前目录来回切换
[root@localhost tmp]# cd ~natasha ###切换至natasha家目录 [root@localhost natasha]#
-
cat命令
功用:文本文件查看工具
语法:cat [OPTION]… [FILE]…
-n 显示行号
-E 显示行结束符$
[root@localhost ~]# cat -n /etc/issue 1 \S 2 Kernel \r on an \m 3 4 Welcome To Hakatsuki
-
file命令
功用:查看文件内容类型
语法:file [FILE]…
[root@localhost ~]# file /etc/fstab /etc/fstab: ASCII text
-
mkdir命令
功用:创建目录
语法:mkdir [OPTION]… DIRECTORY…
-p 按需创建父目录
-v 显示详细过程
-m 指定目录权限
[root@localhost ~]# mkdir -pv /tmp/a/b/c ###创建a、b、c目录,并显示过程 mkdir: created directory ‘/tmp/a’ mkdir: created directory ‘/tmp/a/b’ mkdir: created directory ‘/tmp/a/b/c’
-
rmdir命令
功用:删除目录
语法:rmdir [OPTION]… DIRECTORY…
-p 如果父目录为空,一并删除,谨慎使用
-v 显示过程
[root@localhost ~]# rmdir -pv /tmp/a/b/c/ ###删除c目录,a,b为空目录也会被删除 rmdir: removing directory, ‘/tmp/a/b/c/’ rmdir: removing directory, ‘/tmp/a/b’ rmdir: removing directory, ‘/tmp/a’ rmdir: removing directory, ‘/tmp’ rmdir: failed to remove directory ‘/tmp’: Device or resource busy
-
head命令
功用:查看文件前N行
语法:head [OPTION]… [FILE]…
-n # #是数字,显示前#行
-#
[root@localhost ~]# head -n 3 /etc/passwd ###~]# head -3 /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
-
tail命令
功用:显示文件后N行
语法:tail [OPTION]… [FILE]…
-n # #是数字,显示后#行
-#
-f 监控,新增信息会直接显示
[root@localhost ~]# tail -3 /etc/passwd rootkit:x:1003:1003::/home/rootkit:/bin/bash user4:x:1004:1004::/home/user4:/bin/chroot chrooter:x:1005:1005::/home/chrooter:/bin/bash
-
stat命令
功用:查看文件详细属性信息(元数据)
语法:stat FILE…
[root@localhost ~]# stat /etc/fstab File: ‘/etc/fstab’ Size: 465 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 33554562 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-11-06 15:01:33.484018459 +0800 ###最后访问时间 Modify: 2016-04-12 07:11:24.423003139 +0800 ###最后更改时间(数据) Change: 2016-04-12 07:27:13.470061088 +0800 ###最后改变时间(元数据) Birth: -
-
touch命令
功用:修改文件时间戳或者创建不存在的文件
语法:touch [OPTION]… FILE…
-c 如果文件不存在,则不进行创建
-a 仅修改access时间
-m 仅修改modify时间
[root@localhost ~]# touch /tmp/a.text ###创建一个不存在的文件a.text [root@localhost ~]# ls /tmp/a.text
-
cp命令
功用:复制
语法:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
-i 交互式复制,覆盖之前提醒用户确认
-f 强制覆盖目标文件
-r -R 递归复制目录
-a 用于归档复制
-
单源复制 cp [OPTION]… [-T] SOURCE DEST
如果目标不存在,则事先创建此文件,并复制文件的数据流至目标中
如果目标存在:
是非目录文件,覆盖目标文件
是目录文件,则在目标目录下创建一个同名的文件,并复制其数据流
[root@localhost ~]# mkdir /tmp/test ###创建测试目录 [root@localhost ~]# cp /etc/issue /tmp/test/ ###目标是目录文件,则在目录下创建issue文件,并复制其数据流 [root@localhost ~]# ls /tmp/test/ issue
-
多源复制
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果目标不存在,错误
如果目标存在:
是非目录文件,错误
是目录文件,分别复制每个文件至目标目录中,并保持原名
[root@localhost ~]# mkdir /tmp/test2 ###创建测试目录 [root@localhost ~]# cp /etc/fstab /etc/issue /tmp/test2/ ###复制多个文件至test2 [root@localhost ~]# ls /tmp/test2/ fstab issue
-
mv命令
功用:移动文件或重命名文件
[root@localhost tmp]# mv /tmp/test2/issue ./ ###移动issue文件至当前目录 [root@localhost tmp]# mv issue issue2 ###重命名issue文件为issue2
-
rm命令
功用:删除文件或目录
语法:rm [OPTION]… FILE…
-i 删除之前提醒用户确认
-f 强制删除
-r 递归删除
[root@localhost ~]# rm -rf /tmp/* ###强制删除/tmp目录下所有文件
Note:rm -rf 危险操作,慎用
原创文章,作者:N24-Akatsuki,如若转载,请注明出处:http://www.178linux.com/57722
评论列表(1条)
赞,总结了对文件和目录经常操作的用法~继续加油~