N28-第二周博客作业

常用通配符
*:表示任意长度的任意字符;

?:表示任意的单个字符;

[]:表示在指定范围内的单个字符:[a-z];

[^]:脱字符,是取反的意思,即在指定范围以外的任意字符,如 [^0-9]表示除数字以外的一切字符。

[:digit:] 表示所有的数字,相当于0-9

[:lower:] 表示所有的小写字母

[:upper:] 表示所有的大写字母

[:alpha:] 表示所有的字母,

[:alnum:] 相当于[0-9a-z]

[:space:] 相当于空白字符

[:punct:] 表示所有的标点符号

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

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

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

(1)、创建/tmp目录下的:a_c, a_d, b_c, 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

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

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

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

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

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

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

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

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

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

1、Linux上的目录与文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
1.1 mkdir 创建目录
使用方法:mkdir [OPTION]… DIRECTORY…
常用选项:
-p:按需创建父目录
-m:创建目录权限
-v:输出详细创建目录过程

实例: 创建/tmp/test2/test3目录,定义权限为rwxrw-rw-,并详细显示创建目录过程。
~]# mkdir -pv -m 766 /tmp/test2/test3
mkdir: created directory `/tmp/test2′
mkdir: created directory `/tmp/test2/test3′
~]# ls -ld /tmp/test2/test3
drwxrw-rw- 2 root root 4096 Oct 7 08:42 /tmp/test2/test3
1.2 rmdir命令
rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。
(注意,rm – r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。
1.命令格式:
rmdir [选项]… 目录…
2.命令功能:
该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。
3.命令参数:
– p 递归删除目录,当子目录删除后其父目录为空时,也一同被删除。
如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
-v, –verbose显示指令执行过程
实例:
[root@nfs_server ~]# rmdir -pv /tmp/test2/test3
rmdir: removing directory, `/tmp/test2/test3′
rmdir: removing directory, `/tmp/test2′
rmdir: removing directory, `/tmp’
rmdir: failed to remove directory `/tmp’: Directory not empty 因为/tmp 不为空目录,所以不能删除。
1.3 cp 复制命令:
1.3.1 cp [Option …[-T] SRC(源) DEST(目的)
(如果目标不存在,则新建DEST, 并将SRC中的内容填充至DEST中。
如果目标存在:如果DEST是文件,将SRC内容覆盖至DEST中。此时建议为cp命令使用-i选项。
如果DEST是目录,在DEST下新建与原文件同名的文件,并将SRC中内容填充至DEST中)
实例:
~]# cp /etc/fstab /tmp/fstab.txt (fstab.txt 为文件)
~]# cp /etc/fstab /tmp/test (/tmp/test 为目录)
~]# ls /tmp/test/
fstab
1.3.2 cp [Option] … SRC(原文件)…(可多个文件) DIRECTORY(新目录)(表示复制到哪个目录中)如src 为多个文件,Directory必须存在,且为目录,其它情形均为错。
cp SRC DEST src是目录:
此时使用选项: -r (recursive 递归)
如果DEST目标不存在则创建指定目录,复制源SRC目录中所有目录至目标中
如果目标存在:
如果目标是文件,则报错
如果dest是目录,则复制到此目录中
常用选项:
-i: 交互式
-r: 递归复制目录及其内部所有内容
-a: 归档, 相当于 -dR –preserv=all (即保留源文件或目录的属性,包括所有者、所属组、权限与时间)
-d: –no-dereference –preserv=links (如果原文件是链接,则保留原链接格式)
–preserv=[Attr_list](保留属性)
mode:权限
ownership:属主属组
timestamp:时间戳
links: 链接
xattr:特殊属性
context: 上下文
all:所有
-p =–preserve=mode, ownership, timestamp
-v 显示详细信息
-t 复制时可把目标放在前面
-f –force 强制复制 (危险)
实例:
~]# cp -Pv /tmp/{lines.sh,fstab.txt} /tmp/test/
`/tmp/lines.sh’ -> `/tmp/test/lines.sh’
`/tmp/fstab.txt’ -> `/tmp/test/fstab.txt’
~]# ll /tmp/test/
total 8
-rw-r–r– 1 root root 805 Oct 7 16:08 fstab.txt
-rwxr-xr-x 1 root root 197 Oct 7 16:08 lines.sh
1.4 mv 命令(move缩写) 用来移动文件或者将文件改名
1.命令格式:
mv [选项] 源文件或目录 目标文件或目录
2.命令功能:
mv命令中第二个参数类型的不同(是目标文件还是目标目录),
mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,
mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),
它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,
源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
3.命令参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t :–target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,
该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
4.命令实例:
实例一:文件改名
命令:
mv test.log test1.txt
实例二: 移动文件
]# mv ./{test1.txt,yum.log} ./test
]# ls ./test/
test1.txt yum.log
1.5 rm 命令: remove
删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。
对于链接文件,只是删除了链接,原有文件均保持不变。rm是一个危险的命令,使用的时候要特别当心,
尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)
1.命令格式:
rm [选项] 文件…
2.命令功能:
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
3.命令参数:
-f, –force 忽略不存在的文件,从不给出提示。
-i, –interactive 进行交互式删除
-r, -R, –recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, –verbose 详细显示进行的步骤
–help 显示此帮助信息并退出
–version 输出版本信息并退出
4.命令实例:
一: 删除文件,系统会询问是否删除
~]# rm test1.txt
rm:是否删除普通空文件 “test1.txt”?
说明:
输入rm test1.txt 命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。
二:强行删除file,系统不再提示。
命令:
]# rm -f test1.txt
三: 删除文件时进行交互式询问
命令:
~]# rm -i {test1.log,test.log
rm:是否删除普通空文件 “test1.log”?y
rm:是否删除普通空文件 “test.log”?y
四:将 test子目录及子目录中所有档案删除
命令:
~]# rm -r ./test
rm:是否进入目录”./test”? y
rm:是否删除普通空文件 “./test/test1.txt”?y
rm:是否删除普通空文件 “./test/yum.log”?y
rm:是否删除目录 “./test”?y
五: 自定义回车站功能:
命令:
~]# alias rm=’myrm’
~]# cd /tmp/
tmp]# myrm(){ D=/tmp/$( date +%Y%m%d%H%M%S); mkdir -p $D; mv “$@” $D && echo “moved to $D ok”; }
tmp]# touch 1.log 2.log 3.log
tmp]# ls
1.log 2.log 3.log
tmp]# rm [123].log
moved to /tmp/20161007180817 ok
tmp]# ll /tmp/20161007180817/
总用量 0
-rw-r–r–. 1 root root 0 10月 7 18:07 1.log
-rw-r–r–. 1 root root 0 10月 7 18:07 2.log
-rw-r–r–. 1 root root 0 10月 7 18:07 3.log
[root@magedu tmp]# ll

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
bash特性之一:命令别名
获取当前用户可用的别名的定义:
[root@magedu etc]# alias
alias cp=’cp -i’
alias egrep=’egrep –color=auto’
alias fgrep=’fgrep –color=auto’
alias grep=’grep –color=auto’
alias l.=’ls -d .* –color=auto’
alias ll=’ls -l –color=auto’
alias ls=’ls –color=auto’
alias mv=’mv -i’
alias rm=’rm -i’

bash的特性之二:命令历史
命令语法格式:
history [-c] [-d OFFSET] [n]
history -anrw [FILENAME]
history -ps VALUE [VALUE…]
-c: 清空命令历史;
-d offset(偏移量):删除指定命令历史,offset为history显示出来的命令数字
-r: 从文件读取命令历史至历史列表中;
-w:把历史列表中的命令追加至历史文件中;
history #:显示最近的#条命令;

bash特性之三:快捷键
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符;
Ctrl+k:删除光标所在处至行尾的所有字符;
Ctrl+l:清屏,相当于clear

bash的特性之四:命令补全和路径补全
1.命令查找和补全机制:
(1) 查找内部命令;
(2) 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
(3) 给定开头的部分字符串如果能惟一标识某命令程序文件,则直接补全;
不能惟一标识某命令程序文件,再击tab键一次,会给出列表;
2.路径补全
在给定起始路径下,以对应路径下的打头字串逐一匹配起始路径下每个文件:
TAB按键;
如果能惟一标识,则直接补全;
否则,再一次tab,给出列表;
3.命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:花括号展开。可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

bash的特性之五:命令行展开:
1)、命令行展开;
以某些bash能够解释的符号来代替命令中的某些参数。
~:展开为用户的家目录;
例:切换至家目录
cd ~;pwd
/root
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径;
例:在/tmp/d目录下创建f1,f2,f3三个文件
touch /tmp/d/f{1,2,3}
bash

bash特性之六:命令的执行状态结果:
1)、bash的基础特性之状态值返回:在bash中使用一个特殊的变量$?来保存上一个命令的执行状态结果。
0表示成功,
1-255表示失败
例如:
[root@magedu etc]# echo $?
127

bash特性之七:变量
引用命令的执行结果:
$(COMMAND)或 $`COMMAND`
例如 : 创建以时间的目录
]# date +%H-%M-%S
17-46-47
]# mkdir $(date +%H-%M-%S)
17-47-51

bash特性之八: 引用
强引号: ‘ ’单引号
弱引用: “ ” 双引号
命令引用: · · 反引号,建议用$() , 替代;

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

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

[root@magedu tmp]# mkdir {a,b}_{c,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

[root@magedu tmp]# mkdir -p 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}}

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

文件的数据分两种:一种元数据,既属性数据;一种就是数据本身;可使用stat命令查看文件的元数据:

例如:

]# stat /etc/passwd

文件:”/etc/passwd”

大小:2483 块:8 IO 块:4096 普通文件

设备:fd00h/64768d Inode:136755684 硬链接:1

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

环境:systemu:objectr:passwdfilet:s0

最近访问:2016-09-22 22:07:14.897045766 +0800

最近更改:2016-09-20 18:10:23.223086880 +0800

最近改动:2016-09-20 18:10:23.227086888 +0800

创建时间:-
[root@magedu etc]# stat /etc/passwd
File: ‘/etc/passwd’
Size: 2204 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 69184839 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2017-12-09 19:51:57.056000000 +0800
Modify: 2017-11-23 11:30:47.275537465 +0800
Change: 2017-11-23 11:30:47.277538465 +0800
Birth: –
其中:

file:文件名;

size:文件大小

block:文件占了多少个数据块

IO Block:文件所占数据块的块大小

Device:硬件,既说明该文件在硬盘的那个柱面

Inode:节点号

links:链接

Access(第一个):权限

Uid:该文件所属的属主

Gid:该文件所属的属组

context:安全上下文

Access(第二个):文件上一次的访问时间

Modify:文件上一次修改的时间

Change:文件上一次属性更改的时间

2)修改文件的时间戳信息:

可以使用touch命令更改文件的时间戳:

语法:

touch [OPTION]… FILE…

常用选项:

-c: 指定的文件路径不存在时不予创建;

-a: 仅修改access time;

-m:仅修改modify time;

-t:使用指定的日期时间,而非现在的时间;[[CC]YY]MMDDhhmm[.ss];

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
使用alias命令
例如:[root@magedu tmp]# alias la=’ls -la’

命令引用:
name=`COMMAND`, name=$(COMMAND)

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录
[root@magedu etc]# ls -d /var/l*[0-9]*[[:lower:]]

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
root@magedu etc]# mkdir {0..9}abcd
root@magedu etc]# touch {0..9}efgh
[root@magedu etc]# ls -dl [0-9]*[^0-9]

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@magedu etc]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
[root@magedu etc]#
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@magedu tmp]#touch tfile-`date +”%Y-%m-%d-%H-%M-%S”`

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@magedu tmp]#cp -a /etc/p*[^0-9] /tmp/mytest1

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@magedu etc]# cp -a /etc/*.d /tmp/mytest2

12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@magedu etc]#cp -a /etc/[l,m,n]*.conf /tmp/mytest3

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89848

(0)
上一篇 2017-12-10 22:05
下一篇 2017-12-11 12:51

相关推荐

  • 开发团队的效率

    我之前写过一篇叫《加班与效率》的文章,从概念上说了一些我对“效率”的认识,但是那篇文章趋于概念化,对于一些没有经历过这样的环境的同学来说,可能会觉得太抽象了。很早以前就想写一篇更具体一点的,可执行的文章与《加班与效率》这篇文章相辉映,并再把我两年前在杭州QCon上的那个“鼓吹工程师文化”的《建一支强大的小团队》(新浪微盘)的观点再加强一下。 但是我遇到了一些…

    Linux干货 2016-08-15
  • N26-第六周博客

    vim编辑器及简单shell脚本示例 请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost tmp]# vim rc.sysinit:%s@^[[:space:]]\+[^[:s…

    系统运维 2017-02-16
  • 运维面试题, 不知是否正确的答案

    1、简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。 握手: client 发送请求SYN到 server; 状态:server;初始状态为LISTEN,client 发送SYN后变为SYN_SENT server 发送ACK回应,并发送SYN请求到 client;状态:服务器收到SYN后,变为SYN_RCVD,发送ACK+SYN后,变为ES…

    Linux干货 2016-06-23
  • N25_第二周作业

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

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

    马哥教育网络班21期+第5周课程练习 [TOC] 1. 显示/boot/grub/grub.conf中至少以一个空白字符开头的行。 [root@rhel-5 ~]# grep -E '^[[:space:]]+' /boot/grub/grub.conf  root (hd…

    Linux干货 2016-08-02
  • 博客作业1

    一、linux 常用文件管理命令有哪些?其常用使用方法及相关实例演示 1、文件操作命令 (1).pwd       功能:显示当前目录       实例:     #pwd (2).cd           功能:改变当前目录 …

    Linux干货 2016-06-23

评论列表(1条)

  • 马哥教育
    马哥教育 2018-01-02 21:33

    在作业用到了很多非常有效率的小技巧,非常好,再接再励。