Linux下基本的文件和目录管理命令学习教程

网络知识 2023-02-09 13:14www.1681989.comseo网站推广

.      代表此层目录
. .     代表上一层目录
-      代表前一个工作目录
~     代表“目前用户身份”所在的中文件夹
~aount   代表aount这个用户的主文件夹(aount是个账号名称)
 
cd切换目录
cd ~vurtne          切换到vurtne这个用户的主文件夹,即/home/vurtne
cd ~                表示回到自己的主文件夹,即/root. 等同于cd
cd . .                切换到上层目录
cd -                 代表回到刚才的目录
 
pwd显示当前目录
pwd  -P            显示出实际的工作目录,而非链接文件本身的目录名
                    (如/var/mail)
mkdir新建一个新的目录

复制代码

代码如下:
mkdir -m 770 test
      直接配置目录权限

复制代码
代码如下:
mkdir -p test/test1/test2/test3/test4     创建递归目录
 
rmdir删除一个空的目录

复制代码代码如下:rmdir -p test/test1/test2/test3/test4  删除递归目录(空目录)
 
执行文件路径的变量$PATH
PATH=”$PATH”:/root     将/root加入PATH当中
① 不同身份用户默认的PATH不同,默认能够随意执行的命令也不同(如root和一般用户); 
② PAHT是可以修改的,所以一般用户还是可以通过修改PATH来执行某些位于/sb或 
/usr/sb下的命令来查询;
③ 使用绝对路径或相对路径直接指定某个命令的文件名来执行,会比查询PATH来得正确;
④ 命令应该要放置到正确的目录下,执行才会比较方便;
⑤ 本目录(.)最好不要放到PATH当中。
 
cat由第一行开始显示文件内容
tac从一行开始显示
nl显示的时候输出行号
more一页一页显示文件内容
less与more类似,可以向前翻页
head只看头几行   head -n 3 /etc/passwd
tail只看结尾几行
od以二进制的方式读取文件内容
ls -al --full-time : 查阅完整时间格式
cp,rm,mv : 复制、删除、移动
由于cp有种种的文件属性与权限的特性,所以,在复制时应注意
① 是否需要完整保留来源文件的信息
② 源文件是否为软连接文件
③ 源文件是否为特殊的文件
④ 源文件是否为目录

复制代码代码如下:basename /etc/sysconfig/work       取得的文件名

复制代码代码如下:dirname /etc/sysconfig/work        取得目录名
 
修改文件时间或创建新文件touch
-a : 仅修改访问时间;
-c : 仅修改文件的时间,若该文件不存在则不创建新文件;
-d : 后面可以接欲修改的日期而不用目前的日期,也可以使用--date=”日期或时间”;
-m : 仅修改mtime;
-t : 后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm].
mtime(medify time):一次修改文件或目录的时间;
ctime(change time):一次改变文件或目录(改变的是原数据即属性)的时间;
atime(aess time):一次访问文件或目录的时间。
 
文件默认权限umask
umask:就是指定“目前用户在新建文件或目录时候的权限默认值”。
默认情况下
若用户创建“文件”则默认没有可执行(x)权限,即只有r、w权限,也就是最大为666,默认权限如下

复制代码代码如下:-rw-rw-rw-
若用户新建“目录”,则由于x与是否可以进入此目录有关,默认为所有权限均开放,即为drwxrwxrwx
umask对于新建文件与目录的默认权限是很有关系的。
例如假设你的umask为003,请问该umask情况下,新建的文件与目录权限是什么?
答umask为003,所以去掉的权限为--------wx,
文件(-rw-rw-rw-)-(--------wx)=-rw-rw-r--
目录(drwxrwxrwx)-(--------wx)=drwxrwxr--

文件隐藏属性chattr , lsattr
chattr(设置文件的隐藏属性)

复制代码代码如下:[vurtne@localhost ~]$chattr [+-=] [ASacdistu] 文件或目录名称
参数()
+增加某一个特殊参数,其他原本存在参数则不动;
-删除某一个特殊参数,其他原本存在参数则不动;
=仅有后面接的参数。
注意由于属性设置常见的是a与i的设置值,而且很多设置值必须要身为root才能设置,    
      所以现仅列出a与i两项。
a当设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才
   能设置这个属性。
i它可以让一个文件“不能被删除、改名,设置链接也无法写入或添加数据。”对于系统安
  全性有相当大的帮助。只有root能设置此属性。

lsattr显示文件隐藏属性

复制代码代码如下:[vurtne@localhost ~]$lsattr [-adR] 文件或目录
参数
-a将隐藏文件的属性显示出来;
-d如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
-R连同子目录的数据也一并列出来。

文件特殊权限SUID,SGID,SBIT
s 与 t 这两个权限的意义与系统的帐号及系统的程序较为相关。
SetUID
① SUID 权限仅对二进位程序(bary program)有效;
② 运行者对於该程序需要具有 x 的可运行权限;
③ 本权限仅在运行该程序的过程中有效 (run-time);
④ 运行者将具有该程序拥有者 (owner) 的权限。
SetGID
SGID 有如下的功能
① SGID 对二进位程序有用;
② 程序运行者对於该程序来说,需具备 x 的权限;
③ 运行者在运行的过程中将会获得该程序群组的支持!
 
当一个目录配置了 SGID 的权限后,他将具有如下的功能
① 使用者若对於此目录具有 r 与 x 的权限时,该使用者能够进入此目录;
② 使用者在此目录下的有效群组(effective group)将会变成该目录的群组;
③ 用途若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件, 
   该新文件的群组与此目录的群组相同。

Sticky Bit
Sticky Bit, SBIT 目前只针对目录有效,对于文件已经没有效果了。 其对于目录的作用是① 当使用者对於此目录具有 w, x 权限,亦即具有写入的权限时;
② 当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件
 
查看文件类型file
查询某个文件的基本数据,例如是属于ASCII或者是data文件,或者是 bary,且其中有没有使用到动态函式库 (share library) 等等的资讯,就可以利用 file来查阅。
 
命令和文件的查询

which(寻找“执行文件”)
-a将所有由PATH目录中可以找到的命令均列出,且不只第一个被找到的命令名称。
 
whereis(寻找特定文件)
-b只找二进制格式的文件;
-m只找在说明文件manual路径下的文件;
-s只找source源文件;
-u查找不在上述三个选项当中的其他特殊文件。

locate
-i忽略大小写的差异;
-r后面可接正则表达式的显示方式。
 
fd
 
权限和命令之间的关系
1、让使用者能进入某目录成为『可工作目录』的基本权限为何?
① 可使用的命令例如 cd 等变换工作目录的命令;
② 目录所需权限使用者对这个目录至少需要具有 x 的权限
③ 如果使用者想要在这个目录内利用 ls 查阅档名,则使用者对此目录还需要 r 的权限。
 
2、使用者在某个目录内读取一个文件的基本权限为何?
① 可使用的命令cat, more, less等等
② 目录所需权限使用者对这个目录至少需要具有 x 权限;
③ 文件所需权限使用者对文件至少需要具有 r 的权限才行!
 
3、让使用者可以修改一个文件的基本权限为何?
① 可使用的命令nano 或未来要介绍的 vi/vim 编辑器等;
② 目录所需权限使用者在该文件所在的目录至少要有 x 权限;
③ 文件所需权限使用者对该文件至少要有 r, w 权限
 
4、让一个使用者可以创建一个文件的基本权限为何?
目录所需权限使用者在该目录要具有 w,x 的权限,重点是w权限
 
5、让使用者进入某目录并运行该目录下的某个命令之基本权限为何?
① 目录所需权限使用者在该目录至少要有 x 的权限;
② 文件所需权限使用者在该文件至少需要有 x 的权限。

PS修改home下的中文目录为英文目录
习惯问题,喜欢使用fedora为您在home目录下自创建的“桌面”、“文档”,“图片 、公共的” 、“下载”、
“音乐”、“ 视频”等目录。时间久了,总感觉有一点痛快,在命令行下操作这些目录下的文件时总要切换输
入法,总不是那么酣畅淋漓。要是能把这些中文目录改成英文目录就好了。有人会说,重命名不是得了。
我试过,重命名可以,不过好像有点问题。例如,把“下载”重命名为“Downloads”,浏览器默认的下载目录变了。
    上网查,才知道一些技术牛人们蔑视桌面用户的智商,认为用桌面的人都是连自己的文件目录都管不好的,
一定要帮你主动搞好。于是管理Lux桌面的freedesk.搞出一个xdg-user-dirs,要主动为用户创建好一堆子目录,
方便我们的使用,于是就有了home目录下那些目录。
好的,切入正题,如何修改,打开终端,在终端下输入命令

复制代码代码如下:
[vurtne@localhost~]$ export LANG=en_US
[vurtne@localhost~]$ xdg- user- dirs- gtk- update

这个时候会弹出一个配置界面,提示是否将中文目录切换为英文目录。选中不再提示,确定。
系统会删除没有内容的中文目录,而有内容的目录会保持。并创建8个相应的英文目录如下
“Desk”、“Download”、“Templates”、“Public”、“Documents”、“Music”、“Pictures”、“Videos”。
此时,您在“位置”里看到的常用中文目录已经变成英文目录。只需要将原中文目录的内容拷贝到相应英文目录,
并删除中文目录即可。

接下来再执行

复制代码代码如下:
export LANG=zh_CN.UTF-8

以显示中文。OK,行了,三个命令就行。

可就为一次改变要记三个命令,也麻烦。能不能不记啦。
那您注销,然后在登录界面选择语言种类为“English(united states)”,
进入系统后你就发现整个系统都变成English了,
还会弹出一个对话框提示是否切换用户目录,选择“Update names”,
确认并再注销,在登录界面选择“汉语”,进入系统后事个系统又变成了Chese了,
同样会弹出同一个对话框,选择"Keep old names"。
OK,大功告成,一个命令都不需要记,就可完成您想要的结果。

上一篇:Linux命令提示符如何按照自己的习惯修改? 下一篇:快速浏览Linux下基本的用户和用户组管理命令

Copyright © 2016-2025 www.1681989.com 推火网 版权所有 Power by