Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关实例演示
理论上,linux一切皆文件,对于linux的管理命令均算是文件管理命令。
Linux文件类型常见的有:常规文件、目录文件、块设备文件、字符设备文件、符号链接文件、命名管道、套接字文件等。
-:常规文件
[root@iZ25c28fe7fZ ~]# ls -lh checkmount.sh -rwxr-x,r-x 1 root root 304 Jun 5 2016 checkmount.sh
类似于这种以-开头的就是常规文件
d:directory,目录文件
[root@xlgoo /]# ls -lhdrwxr-xr-x 9 root root 4.0K Jun 17 21:54 alidata
类似于这种以d开头的就是目录文件
b:block device,块设备文件,支持以block为单位进行随机访问
[root@xlgoo dev]# ll /dev/loop1brw-rw—- 1 root disk 7, 1 Aug 30 16:39 /dev/loop1
类似于这种以b开头的就是块设备文件。比如硬盘、光驱等设备
c:character device,字符设备文件,支持以character为单位进行线性访问
[root@xlgoo /]# ls -la /dev/ttycrw-rw-rw- 1 root tty 5, 0 Sep 18 17:00 /dev/tty
类似于这种以c开头的就是字符设备文件。比如猫等串口设备
设备文件包含以下两种设备号
Major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序
Minor number:次设备号,用于标识同一类型中的不同设备
L:symblock link,符号链接文件
[root@xlgoo /]# ls -la /dev
lrwxrwxrwx 1 root root 15 Aug 30 16:39 stderr -> /proc/self/fd/2
类似于这种以l开头的就是符号链接文件,是通过ln -s 源文件名 新文件名产生的
P:pipe,命名管道
S:socker,套接字文件
[root@xlgoo /]# ls -lh /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 304 Jun 5 2016 /var/lib/mysql/mysql.sock
类似于这种以s开头的就是套接字文件
了解了命令类型以后,开始说linux的文件管理类命令
pwd:printing working directory
显示工作目录
cd:change directory
cd [/PATH/TO/SOMEDIR]
cd:切换回家目录
注意:bash中,~表示家目录
cd ~:切换回自己的家目录
cd ~USERNAME:切换至指定目录的家目录
cd -:在上一次所在目录与当前目录之间来回切换
PWD:当前工作目录
OLDPWD:上一次的工作目录
ls:list,列出指定目录下的内容
ls [OPTION]… [FILE]… -a:显示所有文件,包括隐藏文件
-A:显示除 . ..以外的所有文件
-l:–long,长格式列表,即显示文件的详细属性信息
-rw-r–r– 1 root root 1671
-:文件类型, -,d,b,c,l,s,p
rw-r–r–
rw-:文件属主的权限
r–:文件属组的权限
r–:其他用户(非属主、非属组)的权限
1:数字表示文件被硬链接的次数
root:文件的属主
root:文件的属组 1
671:数字表示文件的大小,单位是字节
Mar 22 19:25:文件最近一次的被修改的时间
AliAqsInstall_64.sh:文件名
-h –human-readable:对文件大小单位换算,换算后的结果可能非精确值
-d:查看目录自身而非其内部的文件列表
-r:reverse,逆序显示
-R:recursive,递归显示
cp命令:copy
源文件:目标文件
单源复制:cp [OPTION]… [-T] SOURCE DEST
多源复制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
单源复制:cp [OPTION]…[-T] SOURCE DEST
如果DEST不存在,则事先创建此文件,并复制源文件的数据流至DEST中
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件
如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流
多源复制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在,错误
如果DEST存在:
如果DEST是非目录文件:错误
如果DEST是目录文件,分别复制每个文件至目标目录中,并保持原名
常用选项:
-i:交互式复制,即覆盖之前提示用户确认
-f:强制覆盖目标文件
-r(-R ):递归复制目录
-d:复制符号链接文件本身,而非其指向的源文件
-a:-dR –preserve=all,archive,用于实现归档
–preserv
mode:权限
ownership:属主和属组
timestamps:时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
mv命令:move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i:交互式
-f:force
rm命令:remove
rm – remove files or directories
常用选项:
-i:interactive
-f:force
-r:recursive
删除目录:rm -rf /PATH/TO/DIR
危险操作:rm -rf /
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)
chmod命令
chmod [OPTION]… MODE[,MODE]… FILE…
chmod [OPTION]… OCTAL-MODE FILE…
chmod [OPTION]… –reference=RFILE FILE…
三类用户:
u:属主
g:属组
o:其他
a:所有
(1)chmod [OPTION]… MODE[,MODE]… FILE…
MODE表示法:
赋权表示法:直接操作一类用户的所有权限位
授权表示法:直接操作一类用户的一个权限位
(2)chmod [OPTION]… OCTAL-MODE FILE…
(3)chmod [OPTION]… –reference=RFILE FILE…
选项:
-R –recursive:递归修改
注意:用户仅能修改属主为自己的那些文件权限
chown命令:
chown [OPTION]… [OWNER][:[GROUP]] FILE…
chown [OPTION]… –reference=RFILE FILE…
选项: -R:递归修改
chgrp命令:
chgrp [OPTION]… GROUP FILE…
chgrp [OPTION]… –reference=RFILE FILE…
注意:仅管理员可修改文件的属主和属组
umask:文件的权限反向掩码,遮罩码
文件:
666-umask
目录:
777-umask
注意:之所以文件用666去减,表示文件默认不能拥有执行权限.如果减得的结果中有执行权限,则+1
umask:023
666-023=644
777-023=754
umask命令:
umask:查看当前umask
umask MASK:设置umask
install命令
install – copy files and set attributes
单源复制: install [OPTION]… [-T] SOURCE DEST
多源复制:
install [OPTION]… SOURCE… DIRECTORY
install [OPTION]… -t DIRECTORY SOURCE…
创建目录:
install [OPTION]… -d DIRECTORY…
常用选项:
-m –mode=MODE:设定目标文件权限,默认为755
-o –owner=OWNER:设定目标文件属主
-g –group=GROUP:设定目标文件属组
mktemp命令:
mktemp – create a temporary file or directory
mktemp [option]… [TEMPLATE]
选项:
-d:创建临时目录
Bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其实例演示
当命令或程序执行后一般会有两类结果
1)命令执行状态返回值
命令或程序的返回值
举例:输出echo “hello wyh”,查看输出结果
[root@xlgoo ~]# echo “hello wyh”
hello wyh
命令或程序的执行状态结果(成功或失败),可通过bash的特殊变量$?查看
成功时返回:0
举例:创建一个文件夹wyh,查看执行状态
[root@xlgoo ~]# mkdir wyh;echo $?
0
错误时返回:1-255
举例:再次创建一个文件夹wyh,查看执行状态
[root@xlgoo ~]# mkdir wyh;echo $?
mkdir: cannot create directory `wyh’: File exists
1
2)命令行展开
~:展开为用户的家目录
举例:
[root@xlgoo ~]# cd ~
[root@xlgoo ~]# pwd
/root
{}:展开为多个路径
举例:
[root@xlgoo ~]# mkdir -p /tmp/wyh/wyh{1,2,3}
[root@xlgoo ~]# ls /tmp/wyh/
wyh1 wyh2 wyh3
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@xlgoo /]# mkdir -pv {a,b}_{c,d}
mkdir: created directory `a_c’
mkdir: created directory `a_d’
mkdir: created directory `b_c’
mkdir: created directory `b_d’
(2)创建/tmp/mylinux目录下的:
mylinux/ mylinux/├── bin├── boot│ └── grub├── dev├── etc│ ├── rc.d│ │ └── init.d│ └── sysconfig│ └── network-scripts├── lib│ └── modules├── lib64├── proc├── sbin├── sys├── tmp├── usr│ └── local│ ├── bin│ └── sbin└── var ├── lock ├── log └── run
[root@xlgoo /]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
4.文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息
文件包含两类数据,一类叫做元数据(metadata),一类叫做数据(data)。简单的说,数据就是文件的实际数据,而元数据就是’data about data’,关于数据的数据,它是一种结构化的数据。一般是从文件中抽取出来,用来说明文件的特征、内容等一般可用命令stat来查看文件的元数据
stat
语法:stat(选项)(参数)
选项:
-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
–help:显示指令的帮助信息;
–version:显示指令的版本信息
参数:
文件:指定要显示信息的普通文件或者文件系统对应的设备文件名
举例:
File(文件名): `mylinux/’
Size(大小): 4096 Blocks(文件块数): 8 IO Block(IO块大小): 4096 directoryDevice(设备号): fc00h/64512d Inode(索引节点): 145940 Links(链接次数): 14
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-09-24 16:29:10.444469896 +0800(最近访问的时间)
Modify: 2017-09-24 16:28:44.178469896 +0800(最近改变数据的时间)
Change: 2017-09-24 16:28:44.178469896 +0800(最近改变元数据的时间)
至于修改时间戳,一般使用touch命令
touch – change file timestamps
touch [OPTION]… FILE…
-c:指定的文件路径不存在时不予创建
-a:仅修改access time
-m:仅修改modify time
-t:STAMP
[[CC]YY]MMDDhhmm[.ss]
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87565