一:目录管理命令
(1)ls:列出指定目录下的内容
格式:ls [OPTION]... [FILE]...
-a:显示所有文件包括隐藏文件
-A:显示除.和..之外的所有文件
-l,--long:显示文件的详细属性信息
-h:对文件大小进行单位换算,可能影响精度
-d:查看目录本身而非其内部的文件
-r:逆序显示文件
-R:递归显示文件
示例:ls -lah / --详细显示/目录下的所有文件(包括隐藏文件)
ls -ldh /etc --详细显示/etc目录本身
ls -lhv / --倒序显示/目录下所有文件(包括隐藏文件)
ls -R /etc --递归显示/etc下所有文件
(2)目录
格式:mkdir [OPTION]... DIRECTORY...
-p:自动按需创建父目录
-m:创建目录时给定权限
示例:mkdir -p /data/test/A/B --在/data目录下递归创建/test/A/B三个目录
mkdir -m 711 -p /data/MODE/A --在/data目录下递归创建MODE/A两个目录同时指定目录A的权限为711
——rmdir:删除目录
格式:rmdir [OPTION]... DIRECTORY...
-p:删除目录后如果其父目录为空,则一并删除
示例:rmdir -p /data/test/A --删除A目录后,test目录为空,一并删除
(3)cd:切换目录
示例:cd ..:切换到上级目录
cd ~:切换回自己的家目录
cd -:在上一次目录与当前目录直接来回切换
——pwd:显示当前目录
二:文件管理命令
(1)cp:复制
格式:单源复制:cp [OPTION]... [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:cp [OPTION]... SOURCE... DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归复制目录
示例:cp -if /data/[1-3].txt /data/test --test必须为目录,把三个文件一起复制到test中
cp -r /data /practice --把data目录及目录下的内容一起复制到practice中
——mv:剪切
格式:单源复制:mv [OPTION]... [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:mv [OPTION]... SOURCE... DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
示例:mv -i /data/[1-3].txt /practice --把/data目录下三个txt文件剪切到/practice下
(2)rm:删除
格式:rm [OPTION]... FILE...
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归处理,将制定目录下的所有文件包括目录一并删除
示例:rm -rf /practice --递归删除/practice目录
三:文本内容管理命令
(1)cat:正向查看文本内容
格式:cat [OPTION]... [FILE]...
-n:给显示的文本行编号
-E:显示行结束符号$
示例:cat -n /etc/fstab --查看/etc/fatab内容并显示行号
(2)tac:倒叙查看文本内容
格式:tac [OPTION]... [FILE]...
示例:tac /etc/passwd --倒叙查看文本内容
(3)head:显示文本内容,默认显示头10行
格式:head [OPTION]... [FILE]...
-n #:显示文本头#行内容
示例:head -5 /etc/passwd --显示/etc/passwd文件头5行内容
(4)tail:显示文本内容,默认显示后10行
格式:tail [OPTION]... [FILE]...
-n #:显示文本后#行内容
-f:查看文件尾部内容结束后不退出,跟随显示新增的行
示例:tail -8 /etc/passwd --显示/etc/passwd文件后8行内容
——more:分屏显示文本内容,每次显示一屏显示完停止
格式:more [options] file [...]
Space键:显示文本下一屏内容
Enter键:只显示文本下一行内容
b键:显示文本上一屏内容
q键:退出
(5)less:分屏显示文本内容,不主动退出
格式:less [options] file [...]
Space键:显示文本下一屏内容
Enter键:只显示文本下一行内容
b键:显示文本上一屏内容
q键:退出2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。(1)bash命令执行后通过状态返回值来确定执行结果: 成功:返回0 失败:返回1-255 注意,命令执行完成后,其状态返回值保存于bash的特殊变量“$?”中。 示例:
1[root@bogon data]# ls2etcls.sh gentoo love.txt tmpmk.sh varls.sh3[root@bogon data]# echo $?405
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
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,给出列表;
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表示失败
例如:
bash特性之七:变量变量引用:${NAME} $NAME
变量替换:把变量引用符号出现的位置替换为其指向的内存空间中的数据;
bash变量种类:本地变量:作用域为当前shell进程;不包括其子进程;环境变量:使用域为当前shell进程及其子进程;局部变量:作用域:生效范围,也即可引用到的范围;
本地变量:
变量赋值:NAME=VALUE变量引用:
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
mkdir -pv /tmp/{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
答:mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,li64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
(1)Linux文件的数据分为两类,一类为数据,即文件的实际内容(数据本身);一类为元数据,用来描述文件的特征(描述数据的属性)。
(2)通过 stat 命令可以查看文件的元数据,如图:

可以看到文件的元数据包括文件名(File)、大小(Size)、数据块(Blocks)、IO块(IO Block)、设备(Device)、节点号(Inode)、硬链接(Links)、权限(Access)、文件所属主(Uid)、文件所属组(Gid)、最近访问时间(Access Time)、最近文件修改时间(Modify Time)、最近文件属性更改时间(Change Time)。(3)通过 touch 命令修改文件的时间戳信息,其中: -c:指定的文件不存在时不予创建(所有时间都会改变); -a:仅修改access time(实际change time会随着改变); -m:仅修改modify time(实际change time会随着改变); -t:使用指定的日期时间,格式[[CC]YY]MMDDhhmm[.ss](access time和modify time为指定时间,change time为当前系统时间) 示例:
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
(1)通过 alias 命令可以查看所有命令的别名或者定义别名,定义别名格式:alias NAME=COMMAND(定义的别名只对当前shell终端有效)。
取消别名可通过命令 unalias。
示例:
1 [root@bogon data]# alias
2 alias cp=‘cp -i‘
3 alias egrep=‘egrep --color=auto‘
4 alias fgrep=‘fgrep --color=auto‘
5 [root@bogon data]# alias copy=‘cp -ri‘
6 [root@bogon data]# alias
7 alias copy=‘cp -ri‘
8 alias cp=‘cp -i‘
9 alias egrep=‘egrep --color=auto‘
10 alias fgrep=‘fgrep --color=auto‘
11 [root@bogon data]# unalias copy
2)引用命令的执行结果可通过 $(COMMAND) 或者 COMMAND
两种方式。示例:
1 [root@bogon data]# echo $(date)
2 2018年 03月 01日 星期四 11:41:20 CST
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls /vat/l[0-9][a-z]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls /etc/[0-9]*[^[0-9]]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls /etc/[^[:alpha:]][[:alpha:]*]
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch tfile-$(date ‘+%Y-%m-%d-%H:%M:%S‘)
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
cp -r /etc/p*[^[:digit:]] /tmp/mytwst1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
cp -r /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
cp -r /etc/[lmn]*.com /tmp/mytest3
原文:http://blog.51cto.com/13717728/2164790