1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
cat
功能:有从磁盘创建文件的功能(但不具备编辑功能),但主要功能还是2个或者以上文件的合并。
常配合使用参数:
-n 或--number 由1 开始对所有输出的行数编号。
-b 或--number-nonblank 和-n 相似,只不过对于空白行不编号。
使用方法:
Cat –ndiannaob1>diannaob2,把diannaob1里的内容加上行号以后并入diannaob2。
Cat –b diannaob1diannaob2>>diannaob3,对diannaob1和diannaob2里的内容加上行号(空白行不加)并入diannaob3。
file
功能:辨识文件类型。
常配合使用参数:
-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。
-L 直接显示符号连接所指向的文件的类别。
-m<魔法数字文件> 指定魔法数字文件。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容。
使用方法:
比如要辨别diannaob1的文件类型
File diannaob1 文件位置
名称:more
使用权限:所有使用者
使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
说明:类似cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与vi 相似),使用中的说明文件,请按h 。
参数:
-num 一次显示的行数
-d 提示使用者,在画面下方显示[Press space to continue, q to quit.] ,如果使用者按错键,则会显示[Press hfor instructions.] 而不是哔声
-l 取消遇见特殊字元^L(送纸字元)时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟-p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号(根据环境变数TERM 指定的terminal 而有所不同)
+/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第num 行开始显示
fileNames 欲显示内容的档案,可为复数个数
范例:
more -s testfile 逐页显示testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
more +20 testfile 从第20 行开始显示testfile 之档案内容。
名称:mv
使用权限:所有使用者
使用方式:
mv [options] source dest
mv [options] source... directory
说明:将一个档案移至另一档案,或将数个档案移至另一目录。
参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。
范例:
将档案aaa 更名为bbb:
mv aaa bbb
将所有的C语言程式移至Finished 子目录中:
mv -i *.c
名称:rm
使用权限:所有使用者
使用方式:rm [options] name...
说明:删除档案及目录。
把计:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
范例:
删除所有C语言程式档;删除前逐一询问确认:
rm -i *.c
将Finished 子目录及子目录中所有档案删除:
rm -r Finished
名称:touch
使用权限:所有使用者
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
说明:
touch 指令改变档案的时间记录。ls -l 可以显示档案的时间记录。
参数:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与--no-create 的效果一样。
f 不使用,是为了与其他unix 系统的相容性而保留。
r 使用参考档的时间记录,与--file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。
范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
touch file
touch file1 file2
将file 的时间记录改为5 月6 日18 点3 分,公元两千年。时间的格式可以参考date 指令,至少需输入MMDDHHmm ,就是月日时与分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
将file 的时间记录改变成与referencefile 一样。
touch -r referencefile file
将file 的时间记录改成5 月6 日18 点3 分,公元两千年。时间可以使用am, pm 或是24 小时的格式,日期可以使用其他格式如6 May 2000 。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
名称:cp
使用权限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
把计:
-a 尽可能将档案状态,权限等资料都照原状予以复制。
-r 若source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案aaa 复制(已存在),并命名为bbb:
cp aaa bbb
将所有的C语言程式拷贝至Finished 子目录中:
cp *.c Finished
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
bash的基础特性之状态值返回:在bash中使用一个特殊的变量$?来保存上一个命令的执行状态结果。0表示成功,1-255表示失败
bash的基础特性之命令行展开:~username:展开指定用户的主目录;{}:可承载一个以逗号为分隔符的列表,并将其展开为多个路径。
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、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
使用alias命令来实现,格式为alias NAME="需定义的原命令",可以通过管道来实现,格式为COMMAND1 | COMMAND2 | ...
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls -d /var/l*[a-z]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls-d /etc/[^[:alpha:]]`alpha`*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-08-06-09-32-22。
mkdir /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
mkdir/tmp/mytest1 ; cp -r/etc/p*[^[:digit:]] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
mkdir /tmp/mytest2
cp -r /etc/*.d/tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
mkdir /tmp/mytest3
cp /etc/{l,m,n}*.conf /tmp/mytest3