Linux管理文件命令及应用

第一题 Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

mkdir:创建目录

语法:mkdir [OPTION]... DIRECTORY...

常用选项:

-p:若要建立目录的上层目录目前尚未建立,则会一并建立上层目录,递归创建

-v:显示命令的详细执行过程

-m:建立目录的同时设置目录的权限

示例:~]# mkdir -pv /tmp/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:显示命令的详细执行过程

示例:~]# rmdir -pv /tmp/a

        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

tree:用于以树状图列出目录的内容

语法:tree(选项)(参数)

常用选项:

-a:显示所有文件和目录

-d:先是目录名称而非内容

-D:列出文件或目录的更改时间

-f:在每个文件或目录之前,显示完整的相对路径名称

-g:列出文件或目录的所属群组名称,没有对应的名称时,显示群组识别码

-s:列出文件和目录大小

示例:~]# tree /tmp

/tmp

├── ks-script-iuOeuf

├── systemd-private-2446b9f303064c4881dff4c7cfb73af2-chronyd.service-pcxxmY

│   └── tmp

├── vmware-root

└── yum.log

cp:文件复制

语法:单源复制:cp [OPTION]... [-T] SOURCE DEST

      多源复制:cp [OPTION]... SOURCE... DIRECTORY

      多源复制:cp [OPTION]... -t DIRECTORY SOURCE...

常用选项:

-i:交互式复制,即覆盖之前提醒用户确认

-f:强制覆盖目标文件,即不需要用户再次确认

-r,-R:递归复制目录

-d:当复制符号连接时,把文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录

-v:显示指令的详细执行过程

mv:对文件或目录重新命名或将文件从一个目录移到别一个目录中

语法:mv [OPTION]... [-T] SOURCE DEST

      mv [OPTION]... SOURCE... DIRECTORY

      mv [OPTION]... -t DIRECTORY SOURCE...

rm:删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件或其子目录删除掉

语法: rm [OPTION]... FILE...

常用选项:

-f:强制删除文件或目录

-i:删除已有文件或目录之前先询问用户

-r,-R:递归删除,将指定目录下的所有文件与子目录一并处理

-v:显示指令的详细执行过程

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。建议创建一个类似回收站的目录,将这些文件存入此目录中,确认是否真的不需要了,再进行此命令。

第二题 bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

答:

1)命令执行状态结果:bash通过状态返回值来输出此结果

成功:0

失败:1-255

命令执行完成之后,其状态返回值保存与bash的特殊变量$?中:~]# echo $?

示例:~]#ls /etc

~]# echo $?

0

~]#lssssss /etc

~]# echo $?

127

通过结果会发现命令下方的0代表成功,除0以外的1-255的数字代表失败,根据命令及其功能不同,结果也各不相同并且,此命令只能用于上一条命令

2)命令行的展开:

~:自动展开为用户的家目录,或制定的用户的家目录

{}:可承载一个以逗号分隔的路径列表,并能够为其展开为多个路径

如:/tmp/{a,b} 相当于/tmp/a tmp/b

第三题 请使用命令行展开功能来完成以下练习

1)创建/tmp目录下的:a_c, a_d, b_c, b_d

~]# mkdir -pv /tmp/{a,b}_{c,d}

mkdir: created directory ‘/tmp/a_c’

mkdir: created directory ‘/tmp/a_d’

mkdir: created directory ‘/tmp/b_c’

mkdir: created directory ‘/tmp/b_d’

2)创建/tmp/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

    ~]# 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}}

    mkdir: created directory ‘/tmp/mylinux’

mkdir: created directory ‘/tmp/mylinux/bin’

mkdir: created directory ‘/tmp/mylinux/boot’

mkdir: created directory ‘/tmp/mylinux/boot/grub’

mkdir: created directory ‘/tmp/mylinux/dev’

mkdir: created directory ‘/tmp/mylinux/etc’

mkdir: created directory ‘/tmp/mylinux/etc/rc.d’

mkdir: created directory ‘/tmp/mylinux/etc/rc.d/init.d’

mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’

mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’

mkdir: created directory ‘/tmp/mylinux/lib’

mkdir: created directory ‘/tmp/mylinux/lib/modules’

mkdir: created directory ‘/tmp/mylinux/lib64’

mkdir: created directory ‘/tmp/mylinux/proc’

mkdir: created directory ‘/tmp/mylinux/sbin’

mkdir: created directory ‘/tmp/mylinux/sys’

mkdir: created directory ‘/tmp/mylinux/tmp’

mkdir: created directory ‘/tmp/mylinux/usr’

mkdir: created directory ‘/tmp/mylinux/usr/local’

mkdir: created directory ‘/tmp/mylinux/usr/local/bin’

mkdir: created directory ‘/tmp/mylinux/usr/local/sbin’

mkdir: created directory ‘/tmp/mylinux/var’

mkdir: created directory ‘/tmp/mylinux/var/lock’

mkdir: created directory ‘/tmp/mylinux/var/log’

mkdir: created directory ‘/tmp/mylinux/var/run’

第四题 文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

答:

stat:显示文件或文件系统状态信息(元数据信息)

语法:stat [OPTION]... FILE...

例如: ~]# stat /etc/magic

File: ‘/etc/magic’

  Size: 111      Blocks: 8          IO Block: 4096  regular file

Device: fd00h/64768d Inode: 67208643    Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)

Context: system_u:object_r:etc_t:s0

Access: 2018-08-14 01:51:31.003309475 -0400

Modify: 2016-11-05 16:07:30.000000000 -0400

Change: 2018-08-13 23:38:49.497514785 -0400

Birth: -

File:文件名称

Size:文件大小

Blocks:占据的硬盘块数

IO Block:每个IO块的大小

regular file:文件类型

Device:所在设备

Inode:Inode节点号

Links:被链接的次数

第一个Access:访问权限

Uid:Uid号和属主

Gid:gid号和属组

Context:(SELinux)环境

第二个Access:文件最近一次的访问时间

Modify:文件的更改时间

Change:文件的改变时间

Birth:创建日期

touch:用于创建空文件或更改文件的三个时间戳

语法:touch [OPTION]... FILE...

常用选项:

-a:只修改访问时间

touch -a /tmp/yum.log

-m:只修改更改时间

touch -m /tmp/yum.log

-c:如果文件存在,则更新三个时间戳,并且不创建空文件。如果文件不存在,则创建一个空文件

touch -c /tmp/yum.log

-t:使用指定的日期时间

touch -t 201811081110 /tmp/yum.log

第五题 如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

答:

alias:获取当前用户可用的别名

~]# alias

定义别名:

~]# alias NAME='COMMAND'

仅当前shell进程有效

撤消别名:

~]# unalias NAME

如果别名与命令名相同时,直接调用原命令,而非别名,可用\COMMAND取消命令别名功能

例如:~]# alias st=stat

则可使用st代替stat命令,如果不想使用此别名,则可继续使用stat或者~]#unalias st取消此别名

使用管道符可以引用另一个命令的执行结果

如:~]# cat /etc/passwd | head -n -6

或者定义一个命令的别名也可以在命令中引用别一个命令的执行结果。

第六题 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

答:

~]#ls -d /var/l*[a-z]

匹配模式:元字符

*:匹配任意长度的任意字符

?:匹配任意单个字符

[]:匹配指定范围内的任意单个字符

有几种特殊格式:

[a-z],[A-Z],[0-9],[a-z0-9],此处字母不区分大小写

[[:upper:]]:所有大写字母

[[:lower:]]:所有小写字母

[[:alpha:]]:所有字母

[[:digit:]]:所有数字

[[:alnum:]]:所有的字母和数字

[[:space:]]:所有空白字符

[[:punct:]]:所有标点符号

[^]:匹配指定范围外的任意单个字符

[^[:upper:]]:除了所有大写字母以外的

[^0-9]除了所有数字以外的

[^[:alnum:]]除了所有字母和数字以外的

第七题 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

答:

~]# ls -d /etc/[0-9]*[^0-9]

第八题 显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

~]# ls -d /etc/[^0-9][a-z]*

第九题 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

~]# mkdir  -v /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

第十题 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

~]# cp -rv /etc/p*[^0-9] /tmp/mytest1

第十一题 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

~]# cp -rv /etc/*.d /tmp/mytest2

第十二题 复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

~]# cp /etc/[lmn]*.conf /tmp/mytest3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容