Net25 第二周作业

一、Linux上的文件管理类命令,其常用的使用方法和相关示例

1、ls:查看文件与目录

作用:ls命令用于显示目录内容,类似于DOS下的dir命令,它的使用权限是所有用户。

用法:ls [选项]…[文件]…

主要选项如下:

-a:全部的文件,连同隐藏文件(开头为 .的文件)一起列出来

-A:列出全部的文件(连同隐藏文件,但不包括...这两个目录)

-d:仅列出目录本身,而不是列出目录内的文件数据

-f:直接列出结果,而不进行排序

-F:根据文件、目录等信息给予附加数据结构,例如:*:代表可执行文件;   /:代表目录;  =:代表socket文件;  |:代表FIFO文件

-h:将文件容量以人类较易读的方式列出来

-i:–inode,显示每个文件的inode号

-l:使用较长格式列出信息,包含文件的属性与权限等数据

-n:–numeric-uid-gid,类似-l,但列出UID与GID,而非用户与用户组的名称

-r:–reverse,逆序排列,将排序结果反向输出

-R:–recursive,递归显示子目录

-S:根据文件大小排序

-t:根据时间排序,而不是文件名

示例:

[root@localhost ~]# ls -al       #列出用户所在主目录下的所有文件与目录

total 36

dr-xr-x—.  2 root root 4096 Dec  8 19:03 .

dr-xr-xr-x. 17 root root 4096 Dec  8 18:58 ..

-rw——-.  1 root root 1186 Dec  8 18:58 anaconda-ks.cfg

-rw——-.  1 root root  152 Dec  8 19:50 .bash_history

-rw-r–r–.  1 root root   18 Dec 28  2013 .bash_logout

-rw-r–r–.  1 root root  176 Dec 28  2013 .bash_profile

-rw-r–r–.  1 root root  176 Dec 28  2013 .bashrc

-rw-r–r–.  1 root root  100 Dec 28  2013 .cshrc

-rw-r–r–.  1 root root  129 Dec 28  2013 .tcshrc

[root@localhost ~]# ls -alt           #列出用户所在主目录下的所有文件按时间排序

total 36

-rw——-.  1 root root  152 Dec  8 19:50 .bash_history

dr-xr-x—.  2 root root 4096 Dec  8 19:03 .

-rw——-.  1 root root 1186 Dec  8 18:58 anaconda-ks.cfg

dr-xr-xr-x. 17 root root 4096 Dec  8 18:58 ..

-rw-r–r–.  1 root root   18 Dec 28  2013 .bash_logout

-rw-r–r–.  1 root root  176 Dec 28  2013 .bash_profile

-rw-r–r–.  1 root root  176 Dec 28  2013 .bashrc

-rw-r–r–.  1 root root  100 Dec 28  2013 .cshrc

-rw-r–r–.  1 root root  129 Dec 28  2013 .tcshrc


2、cat:显示文本文件内容

作用:将[文件]或标准输入组合输出到标准输出。

用法:cat  [选项]  [文件]…

主要选项如下:

-A:–show-all,相当于-vET的整合参数,可列出一些特殊字符,而不是空白

-b:–number-nonblank,列出行号,仅针对非空白行做行号显示,空白行不标行号

-E:–show-ends,在每行结束处显示”$“

-n:–number,对输出所有行编号

-T:–show-tabs,将TAB按键以“^I”显示出来

-v:–show-nonprinting,使用“^”和“M-”引用,除LFD和TAB之外

示例:

[root@localhost ~]# cat /etc/issue           #查看/etc/issue这个文件的内容

\S

Kernel \r on an \m

[root@localhost ~]# cat -n /etc/issue       #加印行号查看/etc/issue这个文件的内容

     1 \S

     2 Kernel \r on an \m

     3

[root@jl ~]# cat -A /etc/issue                    #将/etc/issue这个文件的内容完整显示出来(包含特殊字母)

CentOS release 6.5 (Final)$

Kernel \r on an \m$

$

3、cp:复制文件

作用:文件或目录的复制

用法:cp   [选项]…   [-T]   源文件   目标文件

           cp   [选项]…  源文件…    目录

           cp   [选项]…  -t    目录    源文件…

将<源文件>文件复制至<目标文件>, 或将多个<源>复制至<目录>

主要选项如下:

-a:等同于-dpR参数一起使用,在复制过程中尽可能保留源文件或目录的属性

-d:若源文件为连接文件的属性(link file),则复制连接文件属性而非文件本身

-f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次

-i:若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行

-l:进行硬链接(hard link)的连接文件创建,而非复制文件本身

-p:连同文件的属性一起复制,而非使用默认属性(备份常用)

-r:递归持续复制,用于目录的复制行为(常用)

-s:复制成为符号链接文件(symbolic link),即”快捷方式“文件

示例:

[root@jl ~]# cp ~/install.log /home/jl/xxx       #将~目录下的install.log文件复制到/home/jl下并更名为xxx文件                                                 

[root@jl ~]# ls /home/jl                                  #查看结果

Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  xxx

[root@jl ~]# cd /home/jl                                 #切换目录至/jl

[root@jl jl]# cp ~/install.log .                          #将~目录下的install.log文件复制到/jl目录下

[root@jl jl]# ls                                                #查看结果

Desktop    Downloads    Music     Public     Videos

Documents  install.log  Pictures  Templates  xxx

4、rm:删除文件

作用:删除指定的文件

用法:rm  [选项]…文件…

主要选项如下:

-f:–force,强制删除,忽略不存在的文件,不提示确认

-i:互动模式,在删除前需要用户确认

-r:-R,–recursive,递归删除目录及内容

示例:

[root@jl jl]# rm -i install.log           #删除目录/jl下的install.log文件

rm: remove regular file `install.log'? y     #是否删除

[root@jl jl]# ls          #查看是否已删除install.log

Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  xxx

[root@jl jl]# touch ./-a-      #创建一个-a-的空文件

[root@jl jl]# ls                    

-a-  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  xxx        #  -a-空文件创建成功

[root@jl jl]# rm -a-            #删除-a-的空文件,提示无法删除,因为“-”是参数,系统误判

rm: invalid option — 'a'

Try `rm ./-a-' to remove the file `-a-'.

Try `rm –help' for more information.

[root@jl jl]# rm ./-a-          #通过在./-a-的形式可以正常删除

rm: remove regular empty file `./-a-'? y

[root@jl jl]# ls

Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  xxx

5、mv:移动或更改文件名

作用:mv可以将源文件重命名为目标文件,或将源文件移动至指定目录

用法:mv  [选项]…   [-T]   源文件   目标文件

           mv  [选项]…  源文件…    目录

           mv  [选项]…  -t    目录    源文件..

主要选项如下:

-f:–force强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i:–interactive,若目标文件已经存在,就会询问是否覆盖

-u:–update,若源文件比目标文件新,或目标文件不存在时才进行移动或更新

示例:

[root@jl jl]# mv xxx Public          #将/home/jl下的xxx文件移动到/home/jl/Public目录下

[root@jl jl]# ls Public                   #查看是否完成上述操作

xxx

[root@jl jl]# cd Public 

[root@jl Public]# ls

xxx

[root@jl Public]# mv xxx yyy      #将xxx文件改名为yyy文件

[root@jl Public]# ls

yyy

6、tac:和cat用法一样,只是将cat显示内容由最后一行到第一行反向在屏幕上显示出来

示例:

[root@localhost ~]# cat /etc/issue           #用cat查看/etc/issue这个文件的内容

\S

Kernel \r on an \m

[root@jl Public]# tac /etc/issue                #用tac查看/etc/issue的结果

Kernel \r on an \m

CentOS release 6.5 (Final)

7、file:查看文件类型

作用:通过探测文件内容来判断文件类型

用法:file  [选项]文件名

示例:

[root@jl Public]# file yyy           #查看yyy文件的类型

yyy: ASCII text                         #yyy:是纯文本文件

8、echo:显示文本

作用:显示文本内容

用法:echo  [-neE]  [字符串]

主要选项如下:

-n:不输出行尾的换行符

-E:禁止对在STRINGs中的那些序列进行解释

-e:允许对加反斜线转义的字符进行解释

       \n:换行且光标移至行首

       \t:插入TAB字符

二、bash的工作特性命令执行状态返回值和命令行展开所涉及的内容及示例

1、命令执行状态返回值:返回值用于判断命令执行正确与否

      成功:0

      失败:1-255之间的数字

示例:

[root@jl ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog

[root@jl ~]# echo $?

0

[root@jl ~]# lsl

-bash: lsl: command not found

[root@jl ~]# echo $?

127

2、命令行展开

以bash能够解释的符号来代替命令中的一些重复字段,一定要用{}引起来。

示例:

[root@jl Public]# touch aa,bb,cc,dd   #错误的展开方式

[root@jl Public]# ls

aa,bb,cc,dd  yyy

[root@jl Public]# touch {aa,bb,cc,dd}  #正确的展开方式

[root@jl Public]# ls  

aa  aa,bb,cc,dd  bb  cc  dd  yyy

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

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

示例:

[root@jl tmp]# mkdir -p {a_{c,d},b_{c,d}}        #创建题目所示目录

[root@jl tmp]# ls

{ab}_{cd}  a_d  b_d    orbit-gdm           pulse-mVv73u248BxO

a_c        b_c  mkdir  pulse-1WkG75eehMWV  yum.log


2、创建/tmp目录下的子目录

Net25 第二周作业

示例:

[root@jl var]# mkdir -pv 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 `mylinux'

mkdir: created directory `mylinux/bin'

mkdir: created directory `mylinux/boot'

mkdir: created directory `mylinux/boot/grub'

mkdir: created directory `mylinux/dev'

mkdir: created directory `mylinux/etc'

mkdir: created directory `mylinux/etc/rc.d'

mkdir: created directory `mylinux/etc/rc.d/init.d'

mkdir: created directory `mylinux/etc/sysconfig'

mkdir: created directory `mylinux/etc/sysconfig/network-scripts'

mkdir: created directory `mylinux/lib'

mkdir: created directory `mylinux/lib/modules'

mkdir: created directory `mylinux/lib64'

mkdir: created directory `mylinux/proc'

mkdir: created directory `mylinux/sbin'

mkdir: created directory `mylinux/sys'

mkdir: created directory `mylinux/tmp'

mkdir: created directory `mylinux/usr'

mkdir: created directory `mylinux/usr/local'

mkdir: created directory `mylinux/usr/local/bin'

mkdir: created directory `mylinux/usr/local/sbin'

mkdir: created directory `mylinux/var'

mkdir: created directory `mylinux/var/lock'

mkdir: created directory `mylinux/var/log'

mkdir: created directory `mylinux/var/run'

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

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

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

示例:

[root@jl var]# stat /mylinux

  File: `/mylinux'

  Size: 4096       Blocks: 8          IO Block: 4096   directory

Device: 802h/2050d Inode: 521573      Links: 14

Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2016-12-11 11:50:39.155526394 -0500

Modify: 2016-12-11 11:49:08.483526598 -0500

Change: 2016-12-11 11:49:08.483526598 -0500

[root@jl var]# ls -l /mylinux

total 48

drwxr-xr-x. 2 root root 4096 Dec 11 11:49 bin

drwxr-xr-x. 3 root root 4096 Dec 11 11:49 boot

drwxr-xr-x. 2 root root 4096 Dec 11 11:49 dev

drwxr-xr-x. 4 root root 4096 Dec 11 11:49 etc

drwxr-xr-x. 3 root root 4096 Dec 11 11:49 lib

drwxr-xr-x. 2 root root 4096 Dec 11 11:49 lib64

drwxr-xr-x. 2 root root 4096 Dec 11 11:49 proc

drwxr-xr-x. 2 root root 4096 Dec 11 11:49 sbin

drwxr-xr-x. 2 root root 4096 Dec 11 11:49 sys

drwxr-xr-x. 2 root root 4096 Dec 11 11:49 tmp

drwxr-xr-x. 3 root root 4096 Dec 11 11:49 usr

drwxr-xr-x. 5 root root 4096 Dec 11 11:49 var

修改文件的时间戳:

[root@jl ~]# touch [-acdmt] 文件

参数:

-a : 仅修改access time。

-c : 仅修改时间,而不建立文件。

-d : 后面可以接日期,也可以使用 –date="日期或时间"

-m : 仅修改mtime。

-t : 后面可以接时间,格式为 [YYMMDDhhmm]

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

 

指令: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,看到的就是命令执行的结果

 

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

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

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

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

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

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

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

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

 

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

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

 

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

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

 

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

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


   


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

(0)
jindizangjindizang
上一篇 2016-12-11
下一篇 2016-12-11

相关推荐

  • 硬链接与软链接的联系与区别

    硬链接与软链接的联系与区别     文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。元数据中的inode才是…

    Linux干货 2016-10-20
  • 初识正则表达式

    正则表达式是个什么东东? 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。在很多文本编辑器里、命令中,通常要使用检索、替换、放行和拒绝那些符合某个模式的文本。而正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。  摘自《正则表达式之…

    Linux干货 2015-03-27
  • NFS(Network File System)介绍与应用(双httpd + php-fpm + nfs + mysql 搭建discuz论坛)

    NFS相关介绍 一、NFS简介     1. NFS(Network File System): NFS是一个文件共享协议, 也是是在类Unix系统中在内核中实现的文件系统。      2. 起源: 最早是由SUN公司研发,非常古老,只是实现文件共享,安全控制方面比较简…

    Linux干货 2015-07-21
  • 2016全球运维大会,优云蒋君伟演讲“CMDB+自动化的管理融合”成一大亮点

    2016全球运维大会于9月23日-24日在上海盛大开幕。作为国内运维行业的重量级大会,优云产品总监蒋君伟在自动化专场与来自全国各地的运维同行一起探讨、分享业内自动化运维的最佳实践。现场情绪热烈,气氛高涨,成为了本届全球运维大会的一大亮点。 全新梳理自动化与CMDB的融合之道 全球运维大会当天,运维自动化专场很多大牛针对自动化运维管理中的CMDB进行了激烈的讨…

    Linux资讯 2016-12-05
  • 推荐-LVS专题: LVS+Keepalived并使用DNS轮询实现Director的高可用和负载均衡

    LVS专题: LVS+Keepalived并使用DNS轮询实现Director的高可用和负载均衡 前言 什么是KeepAlived 实验介绍 实验拓扑 实验环境 实验步骤 配置KeepAlived(1) 实现Director 的VIP互为主从 测试 配置LVS 配置KeepAlived(2) 测试LVS 配置RS的IP和web服务 配置DNS 最终测试 总结…

    Linux干货 2016-04-09
  • RHCE系列之磁盘加密—-LUKS加密

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1436460        LUKS (Linux Unified Key Setup)为 Linux 硬盘…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 17:04

    赞~写的不错~~排版上能注意下会更好~