马哥教育网络班N22期+第2周课程练习
1 linux上的常用文件管理类命令
1.1 常用文件查看命令
MORE命令
-
作用:分屏显示查看文件内容
-
用法:
more file
-
查看翻页方式:
-
B键向上 一页
-
空格向下一页
-
enter键一行一行翻阅
-
翻到最后一行自动退出
LESS命令
-
作用:分屏显示查看文件内容
-
用法:
less file
-
查看方式:less命令与查看man文档的方式相同
CAT命令
-
用法:
cat [OPTION]... [FILE]...
-
cat命令可接多个文件一起查看
-
常用选项:
-
-n:显示输出文本信息的行号
-
-E:显示行结束符$
TAC命令
-
作用:显示文本信息
-
使用方法:与cat命令使用方法对应
-
与cat的区别:tac命令将文本的每一行倒序显示
HEAD命令
-
作用:查看文本文件件前n行
-
用法:
head [OPTION]... [FILE]...
-
-n # | -# :指定查看文件的前#行
-
常用选项:
-
示例:
-
head -n 2 /etc/fstab
#显示fstab文件前2行 -
heas -2 /etc/fstab
TAIL命令
-
作用:查看文件后n行,默认尾部10行
-
用法
tail [OPTION]... [FILE]...
-
常用选项:
-
-n # | -# :指定查看文件后#行
-
-f:查看文件尾部内容结束后不退出并监视,跟随显示新增的行;
-
示例:
-
tail -n 3 /etc/fstab
-
tail -3 /etc/fstab
FILE命令
-
作用:确定文件内容类型(determine file type)
-
用法:
file [FILE]...
-
示例:
-
[root@Red Hat etc]# file /etc/inittab /etc/inittab: ASCII English text
1.2 文件的常用管理类命令
TOUCH命令
-
作用:用来更改时间戳,也可以创建空文件
-
用法:
touch [OPTION]... FILE...
-
常用选项:
-
touch -m -t 0212010303.03 /tmp/a
-
修改a文件的mtime时间为2012-12-01 03:03:03
-
STAMP格式:
[[CC]YY]MMDDhhmm[.ss]
-
-c: 指定的文件路径不存在时不予创建;
-
-a: 仅修改access time;
-
-m:仅修改modify time;
-
-t STAMP
-
示例:
CP命令
-
功能:文件或目录复制命令
-
语法格式:
-
cp [OPTION]... SOURCE... DIRECTORY
-
cp [OPTION]... -t DIRECTORY SOURCE...
-
如目标目录不存在,显示错误信息;
-
如果目标目录存在:
-
如果DEST是非目录文件,显示错误信息;
-
如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;
-
cp [OPTION]... [-T] SOURCE DEST
-
如果目标(DEST)是非目录文件:则覆盖目标文件;
-
如果目标(DEST)是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
-
则事先创建此文件,并复制源文件的数据流至DEST中;
-
如果目的(DEST)不存在:
-
如果目标存在:
-
单源复制:
-
多源复制:
-
注意:默认情况只复制文件,不复制目录。
-
默认情况下复制链接文件,只会复制链接文件本身
-
常用选项:
-
mode:权限
-
ownership:属主和属组
-
timestamps: 时间戳
-
context:安全标签
-
xattr:扩展属性
-
links:符号链接
-
all:上述所有属性
-
-r | -R ,递归复制,可以复制目录及其目录中的文件
-
-i,交互式提醒,默认为cp的命令别名
-
-p,保留原文件的属主,时间戳
-
-a,递归保留源文件的所有属性,用于归档备份
-
-d:复制符号链接文件本身,而非其指向的源文件;
-
-f:强制覆盖目标文件;
-
—preserv= :保留源文件特定的属性信息
MV命令
-
作用:移动并可对文件重命名,默认情况可以移动目录
-
用法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE..
-
常用选项:
-
-i:显示警告信息,默认
-
-f:强制操作force)
RM命令
-
rm命令默认的命令别名:
-
[root@Red Hat ]# type rm rm is aliased to `rm -i'
可使用/rm不使用别名
-
用法:
rm [OPTION]... FILE...
-
常用选项:
-
-f,强行删除,不提示
-
-r,递归删除目录
-
-rf,递归删除目录
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录,以免重要文件被误删;(模拟回收站)
INSTALL命令
-
功能:复制文件并设置属性
-
用法:
-
install [OPTION]... -d DIRECTORY...
-
install [OPTION]... SOURCE... DIRECTORY
-
install [OPTION]… -t DIRECTORY SOURCE…
-
install [OPTION]... [-T] SOURCE DEST
-
单源复制:
-
多源复制:
-
创建目录:
注意:仅复制文件并制定属性和权限,不能复制目录。
-
常用选项:
-
-m, –mode=MODE:设定目标文件权限,默认为755;
-
-o, –owner=OWNER:设定目标文件属主;
-
-g, –group=GROUP:设定目标文件属组;
-
示例:
-
nstall -o jwl -g milieux /etc/fstab /tmp/fsta
2 bash的工作特性之命令执行状态返回值和命令行展开所涉及内容
2.1 bash工作特性之命令执行的状态返回值
-
bash的命令执行状态返回值可用来表示命令执行成功与否:
-
命令执行成功:0
-
命令执行失败:1-255
-
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中
-
因此可以使用
echo $?
查看上一条命令的执行状态结果注意:命令正常执行时,有的还回有命令返回值。要注意命令返回值与命令执行状态返回值的区别。
-
示例:
-
# ls &> /dev/null
-
echo $?
-
0
-
# lss &>/dev/null
-
echo $?
-
1
-
命令返回值::
-
[root@Red Hat mytest3]# ls mdadm.conf mtools.conf
-
命令执行的状态返回值:
3 如何定义一个命令别名
alias命令
作用:设置命令别名
用法:alias CMDALIAS=‘COMMAND [OPTION] [argument]‘
注意:在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围仅为当前shell进程。
unalias命令
作用:取消命令别名
用法: unalias CMDALIAS
如需执行命名本身:\CMD
4 如何在命令中引用另一个命令的执行结果
-
用法1:$(command)
-
用法2:反引号`COMMAND`,
-
作用:把命令中某个子命令替换为其执行结果的过程。
-
示例: echo “The current directory is $(pwd)” touch ./file-$(date +%F-%H-%M-%S).txt #创建当前以时间为名称的文件
5 文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息
STAT命令
-
显示文件或者文件系统的属性信息查
-
用法:
stat FILE…
-
其中信息包含了文件属性的三种时间:时间戳
-
access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间
-
modify time:表示我们最后一次修改文件的时间
-
change time:表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等。
-
示例:
-
[root@Red Hat Enterprise Linux etc]# stat /etc/inittab File: `/etc/inittab' Size: 884 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1175722 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-24 09:32:47.041490112 +0800 Modify: 2016-07-24 18:25:13.351570780 +0800 Change: 2016-07-24 18:25:13.351570780 +0800
6 练习
6.1 使用命令行展开功能来完成以下练习
创建/tmp目录下的:
a_c
,a_d
,b_c
,b_d
创建/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
示例代码:
1. mkdir /tmp/{a,b}_{c,d} 2. 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}}
6.2 显示/var目录下,所有以1开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录
示例代码:
ls -d 1*[0-9]*[[:lower:]]
6.3 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
示例代码:
ls -d [0-9]*[^0-9] /etc
6.4 显示/etc目录下,以非字母开头,后面跟一个字母以及其它任意长度任意字符的文件或目录
ls -d [^a-z][a-z]*
6.5 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
touch tile-$(date +%Y-%m-%d-%H-%M-%S)
6.6 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
cp -r /etc/p*[^0-9] /tmp/mytest1
6.7 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
cp -r /etc/*.d /tmp/mytest2
6.8 复制/etc目录下所有以1或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
cp -r [1mn]*.conf /tmp/mytest3
原创文章,作者:N22-武汉-enfp,如若转载,请注明出处:http://www.178linux.com/40016
评论列表(1条)
如果能在文件管理类命令说明后添加一些典型的使用样例就更好了