一、文件管理命令以及演示方法
1.1. mkdir命令
作用:创建文件夹
基本用法:mkdir [OPTION]… DIRECTORY…
参数:
-p: 自动创建父目录
-v: 显示创建详细过程
-m MODE: 直接给dig你权限
用例:
[root@golet ~]# mkdir -p -v /tmp/dirtest mkdir: created directory `/tmp/dirtest' [root@golet ~]#
1.2.rmdir删除目录
作用:删除文件夹
基本用法: rmdir [OPTION]… DIRECTORY…
参数:
-p:删除目录后,如果期父目录为空,则一并删除
-v: 显示过程
用例:
[root@golet /]# rmdir -p -v /tmp/dirtest/xiaoxin/ rmdir: removing directory, `/tmp/dirtest/xiaoxin/' rmdir: removing directory, `/tmp/dirtest' rmdir: removing directory, `/tmp' rmdir: failed to remove directory `/tmp': Directory not empty [root@golet /]#
1.3. tree命令
作用: 列出目录
基本用法: tree [option]
参数:
-L level: 指定要显示的层级
用例:
[root@golet /]# tree -L 1 . ├── bin ├── boot ├── cgroup ├── data ├── dev ├── etc ├── home ├── lib ├── lib64 ├── lost+found ├── media ├── media2 ├── mnt ├── opt ├── proc ├── RECOVERED_FILES ├── root ├── rooto ├── sbin ├── selinux ├── srv ├── sys ├── test ├── tmp ├── usr └── var 25 directories, 1 file
1.4.stat命令
作用:显示文件状态
基本用法: stat [option] file
用例:
[root@golet /]# stat /root File: `/root' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 259075 Links: 26 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-16 10:58:21.679314558 +0800 Modify: 2016-08-14 00:36:28.833314963 +0800 Change: 2016-08-14 00:36:28.833314963 +0800
1.5. touch命令
touch – change file timestamps
touch [OPTION]… FILE…
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
用例:
[root@golet tmp]# touch xiaoxin [root@golet tmp]# ll xiaoxin -rw-r--r-- 1 root root 0 Aug 16 15:00 xiaoxin
1.6.cp命令:
作用:文件复制
基本用法:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE
参数:
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强制覆盖目标文件;
-r, -R:递归复制目录;
-d:复制符号链接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于实现归档;
–preserv=
mode:权限
ownership:属主和属组
timestamps: 时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
用例:
[root@golet tmp]# cp -a xiaoxin xiaoxin1 [root@golet tmp]# mkdir test [root@golet tmp]# cp -a aa.txt aaa.txt test/ [root@golet tmp]# ls aaa.txt aa.txt test xiaoxin xiaoxin1 [root@golet tmp]# tree . ├── aaa.txt ├── aa.txt ├── test │ ├── aaa.txt │ └── aa.txt ├── xiaoxin └── xiaoxin1 1 directory, 6 files
1.7.mv命令:
作用:文件重命名
基本用法:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE..
参数:
-i:交互式;
-f:force
用例:
[root@golet tmp]# ls aaa.txt aa.txt test xiaoxin xiaoxin1 [root@golet tmp]# mv xiaoxin movexiaoxin [root@golet tmp]# ll total 8 -rw-r--r-- 1 root root 0 Aug 7 14:54 aaa.txt -rw-r--r-- 1 root root 772 Aug 14 00:03 aa.txt -rw-r--r-- 1 root root 0 Aug 16 15:00 movexiaoxin drwxr-xr-x 2 root root 4096 Aug 16 15:34 test -rw-r--r-- 1 root root 0 Aug 16 15:00 xiaoxin1
8.rm命令:
作用: 删除文件或者目录
基本用法: rm [OPTION]… FILE…
参数:
-i: 交互式
-f: 强制覆盖
-r: 递归删除
注意:删除目录:rm -rf /PATH/TO/DIR
危险操作:rm -rf /*
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)
用例:
[root@golet tmp]# ls aaa.txt aa.txt movexiaoxin test xiaoxin1 [root@golet tmp]# rm -rf test [root@golet tmp]# rm -i xiaoxin1 rm: remove regular empty file `xiaoxin1'? y [root@golet tmp]# ls aaa.txt aa.txt movexiaoxin
二、bash的基础特性:
命令补全:
shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令;
命令查找机制:
查找内部命令;
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
给定的打头字符串如果能惟一标识某命令程序文件,则直接补全;
不能惟一标识某命令程序文件,再击tab键一次,会给出列表;
路径补全:
在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件:
tab:
如果能惟一标识,则直接补全;
否则,再一次tab,给出列表;
2.1 bash的基础特性之:命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b
问题1: tmp目录下创建a_c,a_d,b_c,b_d
[root@xiaoxin tmp]# mkdir -v {a,b}_{c,d} mkdir: created directory `a_c' mkdir: created directory `a_d' mkdir: created directory `b_c' mkdir: created directory `b_d' [root@xiaoxin tmp]# ls a a_c a_d b b_c b_d
问题2: 创建如下目录结构:
/tmp/mysysroot/
|– bin
|– etc
| `– sysconfig
| `– network-scripts
|– sbin
|– usr
| |– bin
| |– lib
| |– lib64
| |– local
| | |– bin
| | |– etc
| | |– lib
| | `– sbin
| `– sbin
`– var
|– cache
|– log
`– run
[root@xiaoxin tmp]# mkdir -pv /tmp/mylinux/{bin,sbin,etc/sysconfig/network-scripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}} mkdir: created directory `/tmp/mylinux' mkdir: created directory `/tmp/mylinux/bin' mkdir: created directory `/tmp/mylinux/sbin' mkdir: created directory `/tmp/mylinux/etc' mkdir: created directory `/tmp/mylinux/etc/sysconfig' mkdir: created directory `/tmp/mylinux/etc/sysconfig/network-scripts' mkdir: created directory `/tmp/mylinux/usr' mkdir: created directory `/tmp/mylinux/usr/bin' mkdir: created directory `/tmp/mylinux/usr/sbin' mkdir: created directory `/tmp/mylinux/usr/local' mkdir: created directory `/tmp/mylinux/usr/local/bin' mkdir: created directory `/tmp/mylinux/usr/local/sbin' mkdir: created directory `/tmp/mylinux/usr/local/etc' mkdir: created directory `/tmp/mylinux/usr/local/lib' mkdir: created directory `/tmp/mylinux/usr/lib' mkdir: created directory `/tmp/mylinux/usr/lib64' mkdir: created directory `/tmp/mylinux/var' mkdir: created directory `/tmp/mylinux/var/cache' mkdir: created directory `/tmp/mylinux/var/log' mkdir: created directory `/tmp/mylinux/var/run'
2.2 bash的基础特性:命令的执行状态结
命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
[root@xiaoxin tmp]# ls a a_c a_d b b_c b_d mylinux [root@xiaoxin tmp]# echo $? 0 [root@xiaoxin tmp]# ls e ls: cannot access e: No such file or directory [root@xiaoxin tmp]# echo $? 2 [root@xiaoxin tmp]#
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
命令正常执行时,有的还回有命令返回值:
根据命令及其功能不同,结果各不相同;
引用命令的执行结果:
$(COMMAND)
或`COMMAND`
[root@xiaoxin tmp]# aa=$(ifconfig seth0|grep -o 'inet.*[0-9]$'|awk -F '[: ]' '{print $3}') [root@xiaoxin tmp]# echo $aa 118.193.244.142
三、文件
3.1 文件元数据:
元数据分类两类:
元数据:metadata
元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有
者以及文件数据块的分布信息(inode…)等等
数据: data
普通文件中的实际数据
3.2 文件时间戳信息
3.2.1 查看文件时间戳信息
[root@mcloud logs]# stat /root/ File: `/root/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 801h/2049d Inode: 1700609 Links: 22 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-16 08:56:13.945460188 +0800 Modify: 2016-08-16 16:49:53.295440500 +0800 Change: 2016-08-16 16:49:53.295440500 +0800
3.2.2 修改文件时间戳信息
[root@mcloud logs]# stat /root/ File: `/root/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 801h/2049d Inode: 1700609 Links: 22 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-16 08:56:13.945460188 +0800 Modify: 2016-08-16 16:49:53.295440500 +0800 Change: 2016-08-16 16:49:53.295440500 +0800 [root@mcloud logs]# touch -a /root/ [root@mcloud logs]# stat /root/ File: `/root/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 801h/2049d Inode: 1700609 Links: 22 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-16 17:19:21.914439275 +0800 Modify: 2016-08-16 16:49:53.295440500 +0800 Change: 2016-08-16 17:19:21.914439275 +0800
四. 别名以及命令结果引用
4.1:定义别名
[root@xiaoxin tmp]# alias xiaoxin='ls -l' [root@xiaoxin tmp]# xiaoxin total 28 drwxr-xr-x 2 root root 4096 Aug 16 16:15 a drwxr-xr-x 2 root root 4096 Aug 16 16:43 a_c drwxr-xr-x 2 root root 4096 Aug 16 16:43 a_d drwxr-xr-x 2 root root 4096 Aug 16 16:15 b drwxr-xr-x 2 root root 4096 Aug 16 16:43 b_c drwxr-xr-x 2 root root 4096 Aug 16 16:43 b_d drwxr-xr-x 7 root root 4096 Aug 16 16:44 mylinux
4.2: 取消定义别名
[root@xiaoxin tmp]# unalias xiaoxin [root@xiaoxin tmp]# xiaoxin -bash: xiaoxin: command not found
4.3:命令结果引用
[root@xiaoxin tmp]# echo $(ls) a a_c a_d b b_c b_d mylinux
五. 文件操作
5.1 文件查看
5.1.1 显示/var目录下所有以1开头,以一个小写字符结尾,且中间至少出现一位数字
(可以有其他字符)的文件或者目录
[root@golet var]# ls /var/1*[0-9]*[a-z] /var/1as456sada /var/1x4seassda:
5.1.2 显示/etc目录下,以任意字符开头,且以非数字结尾的文件或目录
[root@golet var]# ls -l /etc/*[a-zA-Z]
5.1.3 显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度字符的文件或目录
[root@golet var]# ls /etc/[^a-zA-Z]* /etc/123ssss
5.2 文件创建
5.2.1 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形式:
tfile-2016-08-19
[root@golet var]# touch /tmp/tfile-$(date -I)
5.3 文件复制
5.3.1 复制/etc目录下所有以p开头,以非数字结尾的 文件或目录到/tmp/mytest1目录中
[root@app02 mytest1]# cp -a /etc/p*[a-zA-Z] ./ [root@app02 mytest1]# ls pam.d pcmcia plymouth popt.d prelink.cache printcap protocols pango pinforc pm postfix prelink.conf profile pulse
5.3.2 复制/etc目录下所有以d结尾的文件或者目录到/tmp/mytest2目录中
[root@app02 mytest2]# cp -a /etc/*d ./ [root@app02 mytest2]# ls bash_completion.d dracut.conf.d ipsec.d modprobe.d popt.d rc2.d blkid event.d ld.so.conf.d motd prelink.conf.d rc3.d chkconfig.d ha.d libibverbs.d oddjobd.conf.d profile.d rc4.d
5.3.3 复制/etc目录下所有以l或者m 或者n 开头,以.conf 结尾的文件至/tmp/mytest3目录中
[root@app02 mytest3]# cp /etc/[lmn]*.conf ./ [root@app02 mytest3]# ls ld.so.conf libuser.conf mke2fs.conf nfsmount.conf ntp.conf libaudit.conf logrotate.conf modprobe.conf nsswitch.conf
原创文章,作者:xiaoxin,如若转载,请注明出处:http://www.178linux.com/36307
评论列表(1条)
写的很好,排版也很棒,加油,创建目录的题目第2个不对