N25期—第二周作业

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

  一、文件权限管理类命令

 chown:改变文件所有者

 chown [OPTION]… [OWNER][:[GROUP]] FILE…

 常用参数 -R:递归修改(改目录就改目录中的目录及文件)

 示例:# chown -R root /tmp/issue

   # chown -R root:root /tmp/issue

 

 chown [OPTION]… –reference=RFILE FILE…

 示例:# chmod –reference=/tmp/issue /tmp/fstab

 

 chgrp:改变文件的所属组

 用法,参数与chown基本相同:

 示例:# chgrp root /tmp/issue

 

 chmod:改变文件的权限

 chmod [OPTION]… MODE[,MODE]… FILE…

 MODE:修改一类的权限

 u=

 g=

 o=

 ug=

 u=,g=

 a=

 Note:u为属主,g为属组,o为其他,a为全部

 示例:# chmod a=rwx /tmp/issue

 

 修改一类用户的某位或某些位权限

 u+

 u-

 …

 示例:# chmod u+x /tmp/issue

 

 chmod [OPTION]… OCTAL-MODE FILE…

 -R:递归修改(改目录就改了目录中包含的文件)

 示例:# chmod -R 777 /tmp/issue

 

 

 chmod [OPTION]… –reference=RFILE FILE…

 参考RFILE文件的权限,将FILE的修改为同RFILE:

 示例:# chmod -R –reference=/tmp/issue /tmp/fstab

 

 umask:文件或目录创建时的遮罩码(只对当前shell有效)

 目录用777-umask  

 文件用666-umask

 注意:如果某类用户的权限减得的结果中存在x权限,则其权限+1

 

 umask :查看

 umask #:设定

 

 二、文本处理工具

 wc命令:统计单词数,行数,字节数

 wc [OPTION]… [FILE]…

 wc [OPTION]… –files0-from=F

 -l:line 显示行数

 -w:words 单词数

 -c:characters 字节数

 示例:wc /tmp/issue

 

 cut命令:切取文本

 cut OPTION… [FILE]…

 -d:指明分隔符  缺省为空格

 -f:指定显示段落

 #:精确的第几个字段

 #,#[,#]:离散的多个字段

 #-#:连续的多个字段,例如:1-6

 

 混合使用:1-3,7

 –output-delimiter=STRING

 示例:# cut -d: -f1-3 /etc/passwd

 

 sort命令:排序

 sort [OPTION]… [FILE]…

 sort [OPTION]… –files0-from=F

 

 -f, –ignore-case 忽略字符大小写

 -r, –reverse  逆序

 -t DELIMITER:字段分隔符

 -k #:以指定字段排序

 -n:以数值大小进行排序

 -u:unip,去重显示

 

 uniq命令:不排序只去重

 uniq [OPTION]… [FILE]…

 -d:–repeated 仅显示重复的行

 -u:–unique 仅显示不重复的行

 -c:–count 在前缀显示重复的数量

 

 注意:连续且完全相同方为重复

 

 三、文件管理命令 cp,mv,rm

 cp:copy 复制命令

 cp [OPTION]… [-T] SOURCE DEST

 cp [OPTION]… SOURCE… DIRECTORY

 cp [OPTION]… -t DIRECTORY SOURCE…

 

 cp SRC DEST

 SRC是文件:

 如果目标不存在:新建DEST,并将SRC中内容填充至DEST中:

 如果目录存在:

 如果DEST是文件:将SRC中的内容覆盖至DEST中

     此时建议为CP命令使用-i选项:

 如果DEST是目录:在DEST下新建与原文件同名的                                 文件,并将SRC中内容填充至新文件中

 

 cp SRC… DEST

 SRC…:多个文件

 DEST必须存在,且为目录,其他情形均会出错:

 

 cp SRC DEST

 SRC是目录

 则使用选项:-r

 

 如果DEST不存在:创建目标目录,复制SRC目录中所有文件至DEST中

 如果DEST存在:

 如果DEST是文件,报错

 如果DEST是目录,复制到此目录中

 

 常用选项:

 -i:交互式

 -r:递归复制目录及目录内的所有内容

 -a;归档备份(保存文档的所有原属性)相当于-dR –preserv-all

 -d:–no-dereference –preserv=links

 –preserv=[ATTR_LIST]

 mode:权限

 ownership:属主属组

 timestamp:时间戳

 links:

 xattr:

 context:

 all:

 -p:–preserv=mode,ownership,timestamp

 -v:–verbose 显示详细信息

 -t:原和目标可以放反

 -f:–force 强制

 

 mv:move 移动文件

 mv [OPTION]… [-T] SOURCE DEST

 mv [OPTION]… SOURCE… DIRECTORY

 mv [OPTION]… -t DIRECTORY SOURCE…

 

 常用选项:

 -f:–force 强制

 -i:交互式

 

 rm:remove 删除

 rm [OPTION]… FILE…

 常用选项:

 -f:–force 强制

 -i:交互式

 -r:递归删除

 

 rm -rf:强制删除有文件的目录

 

 

 四、文本文件查看类命令:cat,tac,more,less,tail,head

 cat(tac): 正向(反向)显示

 cat [OPTION]… [FILE]…

 -E:显示行结束符$

 -n:对显示出的每一行进行编号

 

 nl:添加行号显示

 

 more:一页一页翻屏

 more[OPTIONS…] FILE…

 -d:显示翻页及退出提示

 用法:

 space:向下翻页

 Enter:向下翻一行

 b,carl+b:向回翻页

 /STRING:向下查询该字符串

 :f:显示文件名及目前显示的行数

 q:离开

 

 less:一页一页翻屏

 less[OPTIONS…] FILE…

 用法:

 Space,carl+V 或+f 或+F 向下翻页

 b carl+B 向文件首部翻屏

 d carl+D 向文件尾部翻半屏

 u carl+U 向文件首部翻半屏

 Enter 或carl+N 或e 或carl+E 或j 或carl+]:向文件尾部翻一行

 y或carl+Y 或carl+P 或k 或carl+K :向文件首部翻一行

 q 退出

 

 #;跳转至第#行

 1G:回到文件首部

 G:回到文件尾部

 

 head:查看前面#行

 head[OPTIONS…] [FILE…]

 -c #:指定获取前#字节

 -n #:指定获取前#行

 -#:指定获取前#行

 

 tail:查看后面#行

 tail[OPTIONS…] [FILE…]

 -c #:指定获取后#字节

 -n #:指定获取后#行

 -#:指定获取后#行

 -f:查看文件到尾部不退出,继续观察文件后续内容

 

 五、文件的时间戳管理工具:touch

 

 touch:修改文件时间或创建文件

 touch[OPTIONS…] FILE…

 -a:only atime

 -m:only mtime

 -t:STAMP

 年月日小时分钟秒

 -c:如果文件不存在,则不予创建

 

 六、文件内容类型查看命令:file

file /PATH/TO/SOMEWHERE

 

 

 

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

 

执行状态返回值$?的数字含义为:

0:成功执行;

1-255:执行失败。

其中1、2、127已经被系统占用了,如果用户想自行定义执行状态返回值,可以使用exit命令在脚本中定义脚本执行状态返回值,如果不定义,脚本执行状态返回值取决于脚本执行结束前最后执行的那条语句的状态。

 

[root@localhost ~]# id root

1

uid=0(root) gid=0(root) groups=0(root)

 

[root@localhost ~]# echo $?

0

# root用户存在,故$?值为0

 

[root@localhost ~]# echo $?

1

2

1

# $?值为1,说明不存在root用户。

 

 

 2.jpg

(1)     mkdir /tmp/{a,b}_{c,d}

(2)     mkdir -pv /tmp/mylinux/{bin,/boot/grub,dev,etc/{rc.d/inint.d,sysconfig/network-scripts},/lib/modules,

lib64,proc,sbin,sys,tmp,/usr/local/{bin,sbin},/var/{lock,log,run}}

 

 

 

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

 

在Linux文件管理中,文件除了自身数据之外,还有附属信息,即文件的元数据;这个元数据用于记录文件的许多信息,比如文件大小,属主,属组,修改日期等等。元数据并不包含在文件数据中,由系统维护,也就是包含在inode中。每个inode有一个唯一的整数编号表示(inode number)。

 

如何查看文件的元数据信息: ls  -l , stat

 

# ls -l /etc/passwd

-rw-r–r–. 1 root root 2264 Nov  2 07:08 /etc/passwd

 

stat /etc/passwd

  File: ‘/etc/passwd’

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

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

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

Context: system_u:object_r:passwd_file_t:s0

Access: 2016-11-02 07:08:39.778000000 -0400

Modify: 2016-11-02 07:08:39.770000000 -0400

Change: 2016-11-02 07:08:39.772000000 -0400

 

修改文件的时间戳:

[root@linux ~]# touch [-acdmt] 文件
参数:
-a : 仅修改access time。
-c : 仅修改时间,而不建立文件。
-d : 后面可以接日期,也可以使用 –date="日期或时间"
-m : 仅修改mtime。
-t : 后面可以接时间,格式为 [YYMMDDhhmm]

 

 

 

 

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

指令:alias
设置指令的别名

语法:#  alias name='command line'

参数:
-p:    打印出现有的别名(唯一的参数)
若不加任何参数,则列出目前所有的别名设置

用法:
# alias cp='cp -i'或alias l='ll'

这样就可以用cp来代替cp -i,而且cp -i这条命令依旧有效

 

查看alias:
列出目前所有的别名设置。
# alias    或    # alias -p

查看具体一条指令的别名
# alias cp

别名永久化:
alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个 Shell,或者重新登录,则这些alias将无法使用。好在linux中提供alias永久化的方法:
<1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc

重新设置别名:
alias重置的方法与第一次设置的时候一样
# alias cp='cp -i'

删除别名:
格式:unalias name

#  unalias cp

如何在命令中引用另一个命令的执行结果

命令是ficonfig eth0,变量是ip,则:
#!/bin/bash
ip=`ifconfig eth0`
echo $ip
这样就把命令生成的字符串赋值给ip了,echo $ip,看到的就是命令执行的结果

 

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

 # ls –d /var/l*[0-9]*[[:lower:]]

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

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

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录

# ls –d /etc/[^[:alpha:]][[:alpha:]]*

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

touch /tmp/tfile-$(date +"%F-%H-%M-%S")

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

cp -r /etc/p*[^0-9] /tmp/mytest1/

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

cp -r /etc/*.d /tmp/mytest2/

12、复制/etc/目录下所有以lmn开头,以.conf结尾的文件至/tmp/mytest3目录中。

cp -r /etc/[lmn]*.conf /tmp/mytest3/

 

 

 

 

原创文章,作者:victorli88,如若转载,请注明出处:http://www.178linux.com/63007

(0)
上一篇 2016-12-11 00:46
下一篇 2016-12-11 10:10

相关推荐

  • Linux发展史

    简述 Linux于1991年10月5日诞生,由Linus torvalds和后面陆续加入的众多爱好者共同开发完成的操作系统 Linux只表示Linux kernl,但由于习惯用Linux来形容整个基于Linux kernl,使用GNU计划的各种工具和数据库的操作系统 Linux的标志 一只名为Tux的企鹅 大家要Linus Torvalds想一只吉祥物,他想…

    2017-03-26
  • sed对比grep之理解

    sed对比grep之理解 很多时候回车按下,没有结果,或是报错。 检查发现都是低级错误,关键是习惯刚学完grep,有写习惯没改过来。 sed语法很重要。script语法写对了,就成功了一大半,剩下的就是正则表达式的问题了。 sed与grep的区别是 grep是个行过滤器,筛选符合条件的行。也可以只显示每行匹配到的文本(-o选项),不对文本进行编辑,只是显示查…

    Linux干货 2016-08-10
  • Linux Kernel

    Linux Kernel 概述:文章将主要介绍Linux 内核的相关信息,包括内核各组成部分的详细介绍,其中有内核信息的获取命令,uname;内核模块管理类命令:lsmod,modinfo,modprobe,insomd,rmmod;ramdisk生成的相关命令,mkinitrd和dracut命令;以及linux中的两个为文件系统 /proc和/sys。最后…

    Linux干货 2016-09-19
  • 马哥教育网络班22期第3周课程作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@MyCloudServer ~]# who | cut -d " " -f1 |sort -u root 2、取出最后登录到当前系统的用…

    Linux干货 2016-09-19
  • 20160803作业-用户组和权限管理

    http://note.youdao.com/yws/public/redirect/share?id=46f06331b737c6d08a0e8c9c3d49ac9e&type=false

    Linux干货 2016-08-08
  • 马哥教育网络班21期+第5周课程练习

    1.显示/boot/grub/grub.conf中至少以一个空白字符开头的行 [root@itop ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2.显示/etc/rc.d/rc.sysinit文件中以#开头,后面至少一个空白字符,而后又有至少一个非空…

    Linux干货 2016-08-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 23:28

    赞,总结的比较详细~~能注意下排版会更好~继续加油~