目录
文件权限:
储存空间与文件查找:
Linux文件链接:
chmod 修改操作文件/目录权限:
chmod [who] [+ | - | =] [mode] 文件名
who
参数如下:
(user)
”,即文件或目录的所有者;(group)
用户”,即与文件属主有相同组ID的所有用户;(others)
用户”;(all)
用户”,它是系统默认值。mode
参数如下:
例如:
chmod u+x textfile
#对目录操作可加 -R/--recursive 对目录下所有子文件进行相同操作
文件特殊权限:
setuid:让执行该命令的用户以该命令拥有者的权限去执行。
chmod u+s textfile
setgid:让执行该命令的用户以该命令所有者的同组用户的权限去执行。
chmod g+s textfile
sticky bit:对于任意可写文件,防止除了文件拥有者和root用户外其余用户删除文件,尤其对于Linux
的/tmp
目录
chmod o+t textfile
Linux
中文件/目录常见的属性的所属者、所属组、创建时间和最新修改时间等外,还存在些隐藏属性,这些隐藏属性在保护系统文件的安全性上非常重要。
Linux
使用lsattr
和chattr
两个命令查看和修改文件/目录的特殊属性。
chattr [+|-|=] 属性标示符 命令参数 文件/目录
常用命令参数如下:
-R:递归处理,将指令目录下的所有文件及子目录一并处理;
-V:显示指令执行过程;
常用属性标示符:
a:让文件或目录仅供附加用途;
A:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。
lsattr
的作用查看文件/目录的特殊属性设置情况。
lsattr 命令参数 文件/目录
常用参数如下:
-R:递归的操作方式;
-V:显示指令的版本信息;
-a:列出目录中的所有文件,包括隐藏文件。
chown 修改文件/目录所有者:
chown 用户名/用户ID 文件名
注意:chown
必须以root权限才能执行,如果是普通用户想执行chown
时,需要在命令前加sudo
命令来提升权限为root
权限
例:sudo chown Jh textfile
Linux修改文件所属组命令:
Linux中使用chgrp
命令来修改文件所属组。
具体命令如下:
chgrp 用户组名/组ID 文件名
执行权限
chgrp
必须以root
权限才能执行,如果是普通用户想执行chgrp
时,需要在命令前加sudo
命令来提升权限为root
权限。
按照磁盘分区查看:
df
命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB
。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
具体命令如下:
df 命令参数 参数
常用参数如下:
-a或--all
:包含全部的文件系统,包括系统特有的/proc
等文件系统;-k
: 以KB为单位显示各文件系统;-m
: 以MB为单位显示各文件系统;-h
: 以可读性较高的方式来显示信息;-i或--inodes
:显示inode
的信息。例如df -h
查看单文件占磁盘空间:
df -h /jhfile
按文件查看:
du命令也是查看使用空间的,但是与df
命令不同的是Linux
du
命令是对文件和目录磁盘使用的空间的查看,还是和df
命令有一些区别的。
具体命令如下:
du 命令参数 参数
常用参数如下:
KB
为单位显示容量;MB
为单位显示容量;例如du -h
查看单文件空间:
du -h /jhfile
创建新目录:
mkdir 新目录名
mkdir 目录名 新目录名
makir -p 新目录名/新子目录名 //嵌套创建
删除新目录:
rm [参数] 文件/目录
f:强制删除(force)
-i:删除前会提示,防止误删
-r:递归删除,全部清空
文件查找:
locate:
locate 命令参数 文件/目录
常用命令参数如下:
-c, --count 只输出找到的数量;
-d, --database DBPATH 使用DBPATH指定的数据库,而不是默认数据库/var/lib/mlocate/mlocate.db;
-i, --ignore-case 忽略大小写;
-q, --quiet 安静模式,不会显示任何错误讯息;
-e, --existing 只显示当前存在的文件条目;
由于locate命令是在数据库内查找,效率高于find等查找命令,但由于数据库每天更新,会查不到新增文件,此时可以使用updatedb命令更新数据库:
update 命令参数
常用参数如下:
-o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件;
-U<目录>:更新指定目录的slocate数据库;
-v:显示执行的详细过程;
执行权限:updatedb
必须以 root权限才能执行,如果是普通用户想执行updatedb
时,需要在命令前加sudo
命令来提升权限为root
权限。
which与whereis:
which
命令主要是用来查找系统PATH
目录下的可执行文件,说白了就是查找那些我们已经安装好的可以直接执行的命令。
whereis
命令可以用来查找二进制(命令)、源文件、man
文件。与which
不同的是这条命令可以是通过文件索引数据库而非PATH
来查找的,所以查找的面比which
要广。
格式:
which 命令
//which
命令用于查找并显示给定命令的绝对路径
whereis 命令参数 文件名
-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
//whereis
命令用来定位指令的二进制程序、源代码文件和man
手册页等相关文件的路径。
find:
find 查找目录 查找参数 查找内容
-amin<+|-分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-atime<+|-24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<+|-分钟>:查找在指定时间之时被更改过的文件或目录;
-ctime<+|-24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-mmin<+|-分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mtime<+|-24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-depth:从指定目录下最深层的子目录开始查找;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-follow:排除符号连接;
-gid<群组识别码>:查找符合指定群组识别码的文件或目录;
-group<群组名称>:查找符合指定群组名称的文件或目录;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum:查找符合指定的inode编号的文件或目录;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-size<+|-|=文件大小>:查找符合指定的文件大小的文件;
-type<文件类型>:只寻找符合指定的文件类型的文件;
-a:是前后条件都要满足;
-o :是满足一个条件就好;
+:表示大于设置值的文件;
- :表示小于设置值的文件;
= :表示等于设置值的文件;
type类型:
f:普通文件
l:符号链接
d:目录
c:字符设备
b:块设备
s:套接字
p:Fifo
例如:查找/etc
目录下以my
开头的目录,具体使用如下命令:
sudo find /etc -name "my*" -a -type d
硬链接:
ln 源文件 目标文件
硬链接相当于一个指针,允许多个硬链接指向同一文件,当所有硬链接消失则文件失效
软链接:
ln -s 源文件 目标文件
软链接相当于创建了一个新的文件(文本文件),此文件存有源文件地址。更贴近于windows中的快捷方式。
创建用户组:
Linux
中使用groupadd
命令来创建一个新用户组。//需要root权限
命令格式:groupadd [命令参数] 用户组名
常见命令参数:
Linux
中使用groupdel
命令来删除一个已经存在的用户组。//需要root权限
命令格式:groupdel 用户组名
查看用户所属组:
使用id
命令查看。
命令格式:id [命令参数] 参数
参数为要查询的用户名,默认是当前登录用户。
常见命令参数:
-g或--group
:显示用户所属群组的ID
;-G或--groups
:显示用户所属附加群组的ID
;-n或--name
:显示用户,所属群组或附加群组的名称。使用group
命令查看。
命令格式:groups 参数
参数为要查询的用户名,默认是当前登录用户。
修改用户所属组:
使用usermod命令修改用户组
如果要一个用户仅仅属于某一个组,而不是同时属于多个组,则使用如下命令:
命令格式:usermod -g 组名 用户名
如果要给一个用户添加一个新的组,同时保留原来有所的组,则使用如下命令:
命令格式:usermod -a -G 组名 用户名