设为首页 收藏本站
查看: 352|回复: 0

[经验分享] Linux系统管理之文件管理命令

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-26 08:40:31 | 显示全部楼层 |阅读模式
文件管理命令

Cat

Cat 是一个所有使用者可以使用,把档案输出或者定向到另一个file中的命令;

参数:

    -n  由1开始对所有输出标上行号,包括空白行和重复行;

    -b  由1开始对输出标上行号,过滤空白行;

    -s  当输出中有多个连续的空白行,代换为1个空白行;

    >定向到另一个文件中

范例:

首先取出install.log的前20行,然后编辑添加空白行,定向到tmp下的install.log中,并添加空行5个;

[iyunv@server ~]# touch /tmp/install.log

[iyunv@server ~]# cat  install.log | head -n 10 >/tmp/install.log

[iyunv@server ~]# vi /tmp/install.log

安装 xkeyboard-config-2.11-1.el6.noarch

安装 fontpackages-filesystem-1.41-1.1.el6.noarch

warning: fontpackages-filesystem-1.41-1.1.el6.noarch:Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY

安装 m17n-db-1.5.5-1.1.el6.noarch

安装 liberation-fonts-common-1.05.1.20090721-5.el6.noarch

安装 setup-2.8.14-20.el6_4.1.noarch

安装 xkeyboard-config-2.11-1.el6.noarch

安装 xml-common-0.6.3-33.el6.noarch

安装 iso-codes-3.16-2.el6.noarch

安装 filesystem-2.4.30-3.el6.i686

安装 dejavu-fonts-common-2.30-2.el6.noarch~

~

~



输出install.log,加上行号

[iyunv@server ~]# cat -n /tmp/install.log

    1  安装fontpackages-filesystem-1.41-1.1.el6.noarch

    2  warning:fontpackages-filesystem-1.41-1.1.el6.noarch: Header V3 RSA/SHA256 Signature,key ID c105b9de: NOKEY

    3  安装m17n-db-1.5.5-1.1.el6.noarch

    4  安装liberation-fonts-common-1.05.1.20090721-5.el6.noarch

    5

    6

    7

    8

    9

   10  安装setup-2.8.14-20.el6_4.1.noarch

   11  安装xkeyboard-config-2.11-1.el6.noarch

   12  安装xml-common-0.6.3-33.el6.noarch

   13  安装iso-codes-3.16-2.el6.noarch

   14  安装filesystem-2.4.30-3.el6.i686

15  安装dejavu-fonts-common-2.30-2.el6.noarch



过滤掉install.log中的空白行,并标上行号

[iyunv@server ~]# cat -b /tmp/install.log

    1  安装fontpackages-filesystem-1.41-1.1.el6.noarch

    2  warning:fontpackages-filesystem-1.41-1.1.el6.noarch: Header V3 RSA/SHA256 Signature,key ID c105b9de: NOKEY

    3  安装 m17n-db-1.5.5-1.1.el6.noarch

    4  安装liberation-fonts-common-1.05.1.20090721-5.el6.noarch











    5  安装setup-2.8.14-20.el6_4.1.noarch

    6  安装xkeyboard-config-2.11-1.el6.noarch

    7  安装xml-common-0.6.3-33.el6.noarch

    8  安装iso-codes-3.16-2.el6.noarch

    9  安装filesystem-2.4.30-3.el6.i686

   10  安装dejavu-fonts-common-2.30-2.el6.noarch

将多个连续的空白行代换为一个,加上行号,空白行不加行号

[iyunv@server ~]# cat -sb /tmp/install.log

    1  安装fontpackages-filesystem-1.41-1.1.el6.noarch

    2  warning:fontpackages-filesystem-1.41-1.1.el6.noarch: Header V3 RSA/SHA256 Signature,key ID c105b9de: NOKEY

    3  安装m17n-db-1.5.5-1.1.el6.noarch

    4  安装liberation-fonts-common-1.05.1.20090721-5.el6.noarch



    5  安装setup-2.8.14-20.el6_4.1.noarch

    6  安装xkeyboard-config-2.11-1.el6.noarch

    7  安装xml-common-0.6.3-33.el6.noarch

    8  安装iso-codes-3.16-2.el6.noarch

    9  安装filesystem-2.4.30-3.el6.i686

10  安装dejavu-fonts-common-2.30-2.el6.noarch





More

类似cat但是对于有N多行的文件,具有翻页的功能,空格键向下翻,b回翻;

参数:

-num        设置单页每次输出多少行;

-s       连续多个空白行代换为1个

+num    从第num行开始显示

范例

单页输出10行;

[iyunv@server ~]#more -10 install.log

安装fontpackages-filesystem-1.41-1.1.el6.noarch

warning:fontpackages-filesystem-1.41-1.1.el6.noarch: Header V3 RSA/SHA256 Signa

ture, key IDc105b9de: NOKEY

安装 m17n-db-1.5.5-1.1.el6.noarch

安装liberation-fonts-common-1.05.1.20090721-5.el6.noarch

安装setup-2.8.14-20.el6_4.1.noarch

安装xkeyboard-config-2.11-1.el6.noarch

安装xml-common-0.6.3-33.el6.noarch

安装iso-codes-3.16-2.el6.noarch

安装filesystem-2.4.30-3.el6.i686

--More--(1%)

从第11行开始,到20行结束;

[iyunv@server ~]#more +10 install.log |head -n 10

安装dejavu-fonts-common-2.30-2.el6.noarch

安装mozilla-filesystem-1.9-5.1.el6.i686

安装control-center-filesystem-2.28.1-39.el6.i686

安装paktype-fonts-common-2.0-8.el6.noarch

安装mesa-dri-filesystem-10.1.2-2.el6.i686

安装autocorr-zh-4.0.4.2-14.el6.noarch

安装autocorr-en-4.0.4.2-14.el6.noarch

安装tzdata-2014g-1.el6.noarch

安装tzdata-java-2014g-1.el6.noarch

安装foomatic-db-filesystem-4.0-7.20091126.el6.noarch



Chgrp

Change group 显而易见,变更文件或目录的所属组;

参数:

     -c 显示命令执行回报的结果

     -v 显示命令执行过程

     -h 只对链接文件做修改;

     -R 递归处理,针对目录;

   

范例

建立/tmp/install.log的链接文件install;更改install.log的所属组为woon;

[iyunv@server ~]#ln -s /tmp/install.log /tmp/install

[iyunv@server ~]#

[iyunv@server ~]#chgrp -c woon /tmp/install.log

"/tmp/install.log"的所属组已更改为woon

[iyunv@server ~]#chgrp -v woon /tmp/install.log

"/tmp/install.log"的所属组已更改为woon

更改/tmp目录下链接文件的所属组为woon;

[iyunv@server ~]#chgrp -h woon /tmp/install

[iyunv@server ~]#ll /tmp/

总用量 24

lrwxrwxrwx. 1 root woon  16 1月  24 22:24 install -> /tmp/install.log

-rw-r--r--. 1root woon  495 1月  24 21:58 install.log

drwx------. 2gdm  gdm 4096 1月  24 21:38 orbit-gdm

drwx------. 2gdm  gdm 4096 1月  24 21:38 pulse-0ts1VFVI1yGH

drwx------. 2root root 4096 1月  24 16:43 pulse-lM4QFZX7jWbv

drwx------. 2root root 4096 1月  22 11:22 virtual-root.G7TKY9

drwx------. 2root root 4096 1月  24 16:06 virtual-root.yb3tU4

[iyunv@server ~]#



Chown

Change owner

使用权限为root,Linux/Unix 是多人多工操作系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。

参数:

-c     若该档案拥有者确实已经更改,那么显示更改动作

-h  只对于连结(link)进行变更

-v  显示拥有者变更的详细资料

-R  对目前目录下的所有档案与子目录进行相同的拥有者变更

范例:

更改/tmp/install.log的拥有者为woon,并显示更改动作和详细信息

[iyunv@server ~]#chown -v woon install.log

"install.log"的所有者已更改为woon



Chmod

使用权限为root,档案和目录的权限管理,包括u、g、o、a三级权限和特殊权限;

参数:

Mode 权限设定串,u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

# r=4 w=2 x=1

+  表示增加权限

    表示取消权限

=  表示设定唯一权限



-c 权限确实更改显示动作过程

-v 与-c类似,显示更改的详细信息

-f 若该档案无法更改也不显示错误信息

-R 递归修改

范例:

将~/.bashrc 复制到/tmp/woon下,命名为bashrc、.bashrc、bash.rc

对上述三个文件进行权限操作

[iyunv@server ~]# mkdir /tmp/woon

[iyunv@server ~]#  cp ~/.bashrc /tmp/woon/bashrc

[iyunv@server ~]#  cp ~/.bashrc /tmp/woon/.bashrc

[iyunv@server ~]#  cp ~/.bashrc /tmp/woon/bash.rc

查看权限

[iyunv@server ~]# ls -al /tmp/woon/

总用量 20

drwxr-xr-x. 2 root root 4096 1月  25 15:06 .

drwxrwxrwt. 11 root root 4096 1月  25 15:04 ..

-rw-r--r--. 1 root root  176 1月  25 15:06 bashrc

-rw-r--r--.  1 root root 176 1月  25 15:06 .bashrc

-rw-r--r--. 1 root root  176 1月  25 15:06 bash.rc

Bashrc目前的权限是644,将其修改为所有具有所有权限

[iyunv@server ~]# chmod 777  /tmp/woon/bashrc



[iyunv@server ~]# chmod a+rwx/tmp/woon/bashrc



文件默认权限

umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。

如某目录umask=0022那么在该目录下目录属性为755 文件为644

[iyunv@server woon]# umask 066

[iyunv@server woon]# touch umask

[iyunv@server woon]# mkdir umaskdir

[iyunv@server woon]# ll

总用量 8

-rwxrwxrwx. 1 root root 176 1月  25 15:06 bashrc

-rw-r--r--. 1 root root 176 1月  25 15:06 bash.rc

-rw-------. 1 root root   0 1月  25 15:22 umask

drwx--x--x. 2 root root 4096 1月  25 15:24 umaskdir



文件特殊权限

Suid sgid sbit

SUID

SUID仅对二进制文件有效;

执行者对改程序需有执行x权限;

本权限仅在执行过程中有效;

执行者将具有改程序的所有者权限;

SUID对目录无效



Sgid类似suid用户群组;



SBID针对目录

范例:

在/tmp下简历目录woon,woon属于群组woon,用户woon和woonli属于woon组,要求woon和woonli可以对woon目录内档案具有所有权限;且不允许其他人查阅;

准备:

[iyunv@server tmp]# groupadd woon

[iyunv@server tmp]# useradd -g woon woon

[iyunv@server tmp]# useradd -g woon woonli

[iyunv@server tmp]# useradd  user1

[iyunv@server tmp]# echo "xlwoon"|passwd --stdin woon

更改用户 woon 的密码。

passwd:所有的身份验证令牌已经成功更新。

[iyunv@server tmp]# echo "xlwoon"|passwd --stdin woonli

更改用户 woonli 的密码。

passwd:所有的身份验证令牌已经成功更新。

[iyunv@server tmp]# echo "xlwoon"|passwd --stdin user1

更改用户 user1 的密码。

passwd:所有的身份验证令牌已经成功更新。

[iyunv@server tmp]# id woon

uid=500(woon) gid=500(woon) 组=500(woon)

[iyunv@server tmp]# id user1

uid=502(user1) gid=502(user1) 组=502(user1)

[iyunv@server tmp]# mkdir woon

[iyunv@server tmp]# chgrp woon woon

[iyunv@server tmp]# chmod 775 woon

[iyunv@server tmp]# ll

总用量 28

lrwxrwxrwx. 1 root woon   16 1月  24 22:24 install -> /tmp/install.log

-rw-r--r--. 1 root woon  495 1月  24 21:58 install.log

drwx------. 2 gdm  gdm 4096 1月  25 17:33 orbit-gdm

drwx------. 2 gdm  gdm 4096 1月  25 17:33 pulse-0ts1VFVI1yGH

drwx------. 2 root root 4096 1月  24 16:43 pulse-lM4QFZX7jWbv

drwx------. 2 root root 4096 1月  22 11:22 virtual-root.G7TKY9

drwx------. 2 root root 4096 1月  24 16:06 virtual-root.yb3tU4

drwxrwxr-x. 2 rootwoon 4096 1月  25 17:59 woon



此时woon和woonli是否可以查看woon目录先得所有文件?

分别用woon、woonli、user1在woon在建立文件;

[iyunv@server woon]# echo "这是root建立的文件">rotfile

[woon@server woon]$ echo 这是woon建立的文件">woonfile

[woonli@server woon]$ echo "这是woonli建立的文件">woonlifil

[user1@server woon]$ echo "这是user1建立文件"> user1file

bash: user1file: 权限不够

[iyunv@server woon]# ll

总用量 12

-rw-r--r--. 1 root   root 26 1月  25 18:21 rotfile

-rw-rw-r--. 1 woon   woon 26 1月  25 18:18 woonfile

-rw-r--r--. 1 woonli woon 28 1月  25 18:19 woonlifile

[woon@server woon]$ vi woonfile



这是woon建立的文件

可以修改吗?



~

~

"woonfile" 2L, 45C 已写入   

可以修改的

                                

[woon@server woon]$ vi woonlifile



这是woonli建立的文件

keyi xiugai ?

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

E45: 已设定选项 'readonly' (请加 ! 强制执行)

不能修改;

为什么?woon目录已经是woon群组的,且woon群组具有rwx权限,此时就不能满足woon和woonli对woon目录下的所有文件进行修改和编辑,项目也就不能很好配合;

这是就需要用到SGID

[iyunv@server tmp]# chmod g+s woon

然后用woon建立woon1文件,woonli建立woonli1文件,再看看

[woonli@server woon]$ ll

总用量 12

-rw-r--r--. 1 root   root 26 1月  25 18:21 rotfile

-rw-rw-r--. 1 woon   woon 0 1月  25 18:30 woon1

-rw-rw-r--. 1 woon   woon 45 1月  25 18:24 woonfile

-rw-r--r--. 1 woonli woon  0 1月  25 18:30 woonli1



此时woon就可以对woonli1进行修改和写入等操作;



文件的隐藏属性

Chattr lsattr

Chattr设置文件的隐藏属性,

参数:

+ 增加某个特殊参数,其他本身参数保持不变

    删除某一参数,其他参数保持不变;

=  设定参数

A 添加设个属性时,不会修改atime,可在I/O较慢的机器上进行;

S 一般文件时异步写入磁盘,该参数可以同步写入;

a 设置之后只能添加数据,不能更改和删除数据;当然root可以取消这个属性

I 添加该属性后,文件不能修改,不能删除,改名等;

s彻底删除



范例:

对/tmp/woon下的woonfile添加属性,使其只能添加数据

[iyunv@server woon]# chattr +a woonfile

[iyunv@server woon]# rm -rf woonfile

rm: 无法删除"woonfile":不允许的操作

此时对woonfile进行删除一个字符都是不行的,也无法删除;可以用chattr  -a woonfile取消设个权限;

查看文件隐藏属性

[iyunv@server woon]# lsattr woonfile
-----a-------e- woonfile

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-41397-1-1.html 上篇帖子: 急求Red Hat Enterprise Linux 7的完整下载包!!!!! 下篇帖子: rsync 服务及使用全集 文件管理 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表