2018-05-11 课堂笔记
目录
一、FHS(Filesystem Hierarchy Standard)
二、特殊目录 & 绝对路径 & 相对路径
三、环境变量 PATH
四、文件、目录的权限(ls、umask)
五、基础命令(tree、file、which、man)
六、文件、目录权限管理(chown、chgrp、chmod)
七、文件、目录基本操作(cd、pwd、mkdir、rmdir、rm、cp、mv)
八、文件内容查看(cat、more、less、head、tail、wc)
九、命令别名(alias)
十、操作小技巧
一、FHS(Filesystem Hierarchy Standard)
是否发现 Linux 的每种发行版的目录组成都基本相同?不管使用哪种发行版都基本上不用再花时间去熟悉其目录结构。 ——归功于 文件系统层次化标准(FHS)
/bin:相当于 Windows 下的 Program Files,存放了大量的命令,但其实该目录只是软链接至/usr/bin
/sbin:存放了root 才能使用的命令,但其实该目录只是软链接至/usr/sbin
/dev:存放了所有设备
/home:存放了所有普通用户的家目录,如:/home/user1、/home/user2
/root:root 用户的家目录
/mnt:养成习惯,一般把临时挂载放在这个目录
/media:软盘、光盘、U 盘等设备都暂挂载于此
/proc:虚拟文件系统,其中的数据都在内存中,包括系统内核、进程、外部设备的状态、网络状态等
/run:进程产生的临时文件,重启后消失
/sys:同/proc 都是虚拟文件系统,数据在内存中,主要存储与内核相关的信息
/srv:存放网络服务所需要的数据
/tmp:临时目录,供一般用户或者正在执行的程序暂时放置文件的地方
/var:存放经常变化的文件,如缓存、日志、数据库等
/boot:主要放置系统启动时所需的文件,grub 也在该目录下
/etc:系统主要的配置文件都在该目录下。一般来说该目录下的文件只有 root 用户能修改,普通用户仅能查看
/opt:放置第三方软件
/usr:大量的软件都安装在该目录,包括/bin 和/sbin 都是链接到该目录下的,该目录类似 c:\windows\ 和 c:\Progarm Files
/lib:32位软件所需的库文件
/lib64:64位软件所需的库文件
ps. CentOS 7 后不再区分x64和x86,全部采用 x64。 x86和x64一个最大的区别就是内存识别的大小。
二、特殊目录、绝对路径 & 相对路径
1. 特殊的目录
.
代表当前目录
..
代表上一级目录
~
代表当前用户家目录
~<username>
代表 username 用户的家目录
2. 绝对路径 & 相对路径
顾名思义
绝对:放之四海皆准
相对:那就要看情况了
绝对路径:从根目录写起的文件 or 目录
如:/home/chocolee/.bashrc
相对路径:不是从根目录写起的文件 or 目录
如:../root
ps. 相对路径使用起来较为方便,但是编写脚本时尽量使用绝对路径来指明命令
三、环境变量 PATH
为何系统提供的命令,不需要使用绝对路径或相对路径来指定即可正常使用?
为何自己编写的脚本必须要在脚本所在目录下使用./xxx.sh
才能使用?
—— 系统的环境变量 PATH
1. PATH 变量的内容
[root@localhost ~]# echo $PATH #PATH 只是个变量名,要想使用该变量的内容是需要用$PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2. PATH变量的作用
只有在PATH所列目录下的二进制执行文件才能在不使用绝对路径或相对路径来指定的情况下被使用。
即:执行命令时,系统会搜寻$PATH所包含的这些目录中的二进制执行文件。
3. 修改PATH变量
- 临时修改:
PATH=$PATH:/root/ ##将/root/目录追加至PATH变量的末尾
- 永久修改:将上段命令加入到
/etc/profile
文件中,profile
文件是系统每次启动都会加载的用于配置用户使用环境的文档
四、文件、目录的权限
1. 用户的三种角色
owner: 所有者
group:所属组
other:其他人
ps. 同一个用户可以属于不同的 group
2. 每种角色的三种权限
r: read,读权限
w: write,写权限
x: excute,执行权限
3. 三种权限对于文件与目录的不同意义
对于文件
r:可以读取该文件的内容
w:可以修改、编辑该文件的内容
x:可以执行该文件(但能否执行成功,取决于它是否是个可执行文件)
对于目录
r:是否可以使用ls
查看该目录下的内容
w:能否对目录下的文件本体(而不是内容)进行操作,如:删、移、重命名等
x:是否可以cd
到该目录,使其成为工作目录
4. 权限查看命令——ls(当然,这个命令可不止查看权限,但真不知道该把他放哪章去)
-
作用
list,查看文件及目录 -
选项
-a
:all,查看所有文件,包括隐身的文件(Linux 中,以.开头的文件为隐身文件)
-l
:list,以列表的方式查看
-d
:directory,查看所指定的目录本身,而不是目录下的内容
-h
:human-readable,以较为人性化的单位显示文件大小,需要配合-l
选项一起使用
-i
:inode,查看文件的 inode,inode 相当于一个文件在硬盘中的索引,如果两个文件的 inode 相同,其实这两个文件指向硬盘上的同一个存储区域,其实就是同一个文件
-t
:以时间进行排序,近期的在上。
-
列表详解
-
文件类型详解
-
:普通文件
d
:directory,目录
c
:character,字符型设备
l
:link,链接
b
:block,存储设备
s
:socket,网络设备、通信接口 -
权限详解(有点难画,本着“不重复造轮子”的原则,厚颜无耻地盗了张图。。)
5. 默认权限与umask
每次新建的文件或目录,权限为何都是一样的?
—— umask
-
默认权限:文件的默认权限是666;目录的默认权限是777(因为目录通常需要被cd,所以默认对所有角色多个x权限)
-
umask:umask 可以称之为反掩码,表示需要从默认权限中删掉的权限。假设umask=022,则默认权限与该 umask 作用后,文件权限为644,目录的权限为755
-
配置文件:umask 的设置在 /etc/bashrc 中,默认 UID 为 0-199 用户的 unamsk 为 022,UID 为200以上的用户 umask 为 002
-
查看系统umask的数字形式:
umask
[root@choco-01 tmp]# umask
0022
- 查看系统umask的字母形式:
umask -S
[root@choco-01 tmp]# umask -S
u=rwx,g=rx,o=rx
- 修改umask:
umask ###
[root@choco-01 tmp]# umask 000
[root@choco-01 tmp]# umask
0000
五、基础命令(tree、file、which、man)
1. tree
其实
ls
命令也有个能够递归查看目录下多层文件的选项-R
,但是显示结果非常不直观;tree
命令就不同了
- 作用
以树形的样式,递归地展示目录及其下的子目录与子文件 - 选项
-L n
:默认情况,tree
会“一查到底”,该选项可已指定tree
命令只显示到指定目录下第n层的子目录及子文件 - 用法
一查到底:
[root@choco-01 ~]# tree /root/
/root/
├── anaconda-ks.cfg
└── expect-test
├── aaa
├── password-change.sh
├── test-dir
│ └── test.file # #test-dir下的子文件也显示了
└── test.sh
2 directories, 5 files
指定层级:
[root@choco-01 ~]# tree -L 2 /root/
/root/
├── anaconda-ks.cfg
└── expect-test
├── aaa
├── password-change.sh
├── test-dir ##不再显示 test-dir 下的子文件
└── test.sh
2 directories, 4 files
2. file
之前讲
ls
命令的时候,提到过文件类型,不仅可已通过ls -l
中显示信息的第一列查看文件类型,还可以直接用file
命令查看详细的文件类型说明
- 作用
查看文件类型 - 用法
file <file_name>
- 例子
[root@choco-01 dev]# file /dev/sr0 ; file /dev/tty ; file /dev/block/ ; file /dev/stdin
/dev/sr0: block special
/dev/tty: character special
/dev/block/: directory
/dev/stdin: symbolic link to `/proc/self/fd/0'
3. which
-
作用
a. 用来查看一个命令的绝对路径,但仅限于包含于环境变量PATH中的命令
b. 用来查看一个别名命令的真实命令 -
例子
[root@choco-01 expect-test]# which cd
/usr/bin/cd
[root@choco-01 expect-test]# which ls
alias ls='ls --color=auto' #ls有两个,一个是带选项的别名,一个是命令的绝对路径
/usr/bin/ls
4. man
不知道一个命令的具体用法?
不知道一个命令有哪些选项?
不知道某个选项具体能做什么?
——用 man 啊
-
作用
Linux提供的统一的操作手册(Manual),基本上每个发行的Linux软件都可以使用man命令查看其功能、描述、选项、用例等。该手册采用less
进行说明文档的查看,即查阅的时候可以用less所支持的翻页、查找等功能 -
例子
a. 先man
一下它自己
b.
man
一下 ls
六、文件、目录权限管理(chown、chgrp、chmod)
1. chown 命令
-
作用
change owner,改变文档或目录的所有者,但也可以改变所属组 -
选项
-R
:递归地持续更改,即连同子目录下的所有文件都更改 -
用法
a. 同时修改所有者及所属组:chown <owner>:<group> <file or dir>
b. 仅修改所有者:chown <owner> <file or dir>
c. 仅修改所属组:chown :<group> <file or dir>
- 例子
[root@localhost ~]# ll
总用量 4
-rw-------. 1 root root 812 5月 8 00:17 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 5月 13 23:54 test
[root@localhost ~]# chown nobody:nobody test && ll
总用量 4
-rw-------. 1 root root 812 5月 8 00:17 anaconda-ks.cfg
-rw-r--r--. 1 nobody nobody 0 5月 13 23:54 test ## owner 和 group 都改了
[root@localhost ~]#
- 注意
修改的用户必须在/etc/passwd
中存在,用户组必须在/etc/group
中存在,否则报错。
2. chgrp 命令
因为
chown
对于所有人及所属组都能修改,所以chgrp
基本上没啥用
-
作用
change group,仅能改变文档或目录的所属组 -
选项
-R
:递归地持续更改,即连同子目录下的所有文件都更改 -
用法
chgrp <group> <file or dir>
-
例子
[root@localhost ~]# ll
总用量 3
-rw-------. 1 root root 812 5月 8 00:17 anaconda-ks.cfg
-rw-r--r--. 1 root nobody 0 5月 13 23:54 test
[root@localhost ~]# chgrp root test && ll
总用量 3
-rw-------. 1 root root 812 5月 8 00:17 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 5月 13 23:54 test ## group 已更改
3. chmod 命令
修改最重要的读写权限,可以使用数字化的方式,也可以使用字母的方式进行权限的变更
-
作用
change mode,针对ls -l
命令显示的列表中的那9位权限进行更改 -
选项
-R
:递归地持续更改,即连同子目录下的所有文件都更改 -
用法
a. 使用数字指定:chmod 777 /root/test
b. 使用字母指定:chmod u=rwx,g=rwx,o=rwx /root/test
c. 使用字母增减:chmod u-x /root/test
- 例子
[root@localhost ~]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月 13 23:54 test
[root@localhost ~]# chmod 777 test && ll ##数字方法修改权限为777
总用量 0
-rwxrwxrwx. 1 root root 0 5月 13 23:54 test
[root@localhost ~]# chmod u=r,g=r,o=r test && ll ##字母方式修改权限为 三种角色都只能 read
总用量 0
-r--r--r--. 1 root root 0 5月 13 23:54 test
[root@localhost ~]# chmod u+w test ## 字母方式增加用户的写权限
[root@localhost ~]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月 13 23:54 test
七、文件、目录基本操作(cd、pwd、mkdir、rmdir、rm、cp、mv)
1. cd命令
-
作用
change directory,改变工作目录,将当前工作目录切换到所指定的目录 -
用法
a. 通过绝对路径、相对路径进行切换:cd /dev/
b. 切换至当前用户的家目录:cd
c. 切换至最近使用过的工作目录:cd -
d. 切换至某个普通用户的家目录:cd ~<username>
-
例子
a. 通过绝对路径、相对路径进行切换:cd /dev/
[root@choco-01 ~]# cd /dev/
[root@choco-01 dev]#
b. 切换至当前用户的家目录:cd
[root@choco-01 /]# cd ##直接cd,不加任何目标目录,将切换至当前用户家目录
[root@choco-01 ~]#
[root@choco-01 /]# cd ~ ##cd至~,即切换至当前用户家目录
[root@choco-01 ~]#
c. 切换至刚才最近使用过的工作目录:cd -
[root@choco-01 ~]# cd - #当前在root的家目录,切换至上一个工作目录 /
/
[root@choco-01 /]# cd - #当前已在/,切换至上一个工作目录 /root/
/root
[root@choco-01 ~]#
d. 切换至某个普通用户的家目录:cd ~chocolee911
[root@choco-01 ~]# cd ~chocolee911
[root@choco-01 chocolee911]#
2. pwd命令
-
作用:
print work directory,在屏幕上打印当前处于的工作目录 -
例子:
[root@choco-01 grub.d]# pwd
/etc/grub.d
3. mkdir
-
作用
make directory,新建一个目录 -
选项
-p
:递归建立目录。目录一层一层地往下建立,每一层目录的建立都是以上层目录存在为基础,加上该参数可以让mkdir
自动在每一层级检查是否存在所需的目录,如果不存在则自动建立,直到最后一层级的目录建立为止
-v
:展示目录建立的过程 -
例子
a. -p
的使用
[root@choco-01 test]# clear
[root@choco-01 test]# pwd
/tmp/test
[root@choco-01 test]# ls
[root@choco-01 test]# mkdir level-1/level-2/level-3
mkdir: 无法创建目录"level-1/level-2/level-3": 没有那个文件或目录 ##不加-p会报错
[root@choco-01 test]# mkdir -p level-1/level-2/level-3 && tree ##加了-p后会建立整串目录
.
└── level-1
└── level-2
└── level-3
3 directories, 0 files
b. -v
的使用
[root@choco-01 test]# mkdir -pv level-1/level-2/level-3 && tree
mkdir: 已创建目录 "level-1"
mkdir: 已创建目录 "level-1/level-2"
mkdir: 已创建目录 "level-1/level-2/level-3"
.
└── level-1
└── level-2
└── level-3
3 directories, 0 files
4. rmdir命令
-
作用
没什么用,只能删除空目录,使用场景很少,知道即可 -
例子
[root@choco-01 test]# rmdir level-1/
rmdir: 删除 "level-1/" 失败: 目录非空
5. rm命令
双刃剑。
删的时候很爽,啥都能删,命令还短
删错的时候很惨,是真的很惨。。。
-
作用
remove,删除文件、目录 -
选项
-i
:interactive,删除时进行提示,不过删除目录时是真心烦人,连进入目录的步骤都要我审批
-f
:force,强制删除,忽略-i
选项
-r
:recursive,递归地进行删除,可将目录连同其下所有文件全部删除 -
例子
a. -i
选项
[root@choco-01 tmp]# rm -ri test/
rm:是否进入目录"test/"? y
rm:是否进入目录"test/level-1"? y
rm:是否进入目录"test/level-1/level-2"? y
rm:是否删除目录 "test/level-1/level-2/level-3"?y
rm:是否删除目录 "test/level-1/level-2"?y
rm:是否删除目录 "test/level-1"?y
rm:是否删除目录 "test/"?y
b. -f
选项(不进行提示,且忽略-i
选项)
[root@choco-01 tmp]# tree test/
test/
└── level-1
└── level-2
└── level-3
3 directories, 0 files
[root@choco-01 tmp]# rm -rif test/
[root@choco-01 tmp]#
c. -r
选项(不加该选项无法删除目录,加后可递归删除目录)
[root@choco-01 tmp]# tree test/
test/
└── level-1
└── level-2
└── level-3
3 directories, 0 files
[root@choco-01 tmp]# rm -f test/
rm: 无法删除"test/": 是一个目录 ## see?不加 -r 没法删目录
[root@choco-01 tmp]# rm -rf test/ ##加了之后顺利删除
[root@choco-01 tmp]#
6. cp命令
使用
cp
复制时,若不加任何选项,复制产生的文件的owner及group会变为执行cp
命令的用户
-
作用
copy,Linux最常用的拷贝命令,可原封不动拷贝文件,也可在拷贝同时修改文件名 -
选项
-a
:相当于-pdr
-r
:recursive,递归复制,可复制目录
-p
:preserve,保存文件的owner、group、timestamp等属性
-d
:若源文件为链接文件,则复制链接文件的属性,而不是文件本身的属性 -
用法
cp <file1> <file2> <file3> <dest> ##将1/2/3文件复制到<dest>目录
- 例子
a. 原封不动地拷贝文件
[root@choco-01 test]# cp -a test-1/a test-2/ && ll test-1 test-2
test-1:
总用量 0
-rw-r--r--. 1 root root 0 5月 14 12:08 a
test-2:
总用量 0
-rw-r--r--. 1 root root 0 5月 14 12:08 a
[root@choco-01 test]#
b. 拷贝的同时改名
[root@choco-01 test]# cp -a test-1/a test-2/b && ll test-1 test-2 ## 将a拷贝为b
test-1:
总用量 0
-rw-r--r--. 1 root root 0 5月 14 12:08 a
test-2:
总用量 0
-rw-r--r--. 1 root root 0 5月 14 12:08 a
-rw-r--r--. 1 root root 0 5月 14 12:08 b
[root@choco-01 test]#
c. 目录的复制-r
[root@choco-01 test]# ll;cp -r test-1/ test-3;tree ##可以递归地将整个test-1目录及其下内容一起复制为test-3
总用量 0
drwxr-xr-x. 2 root root 15 5月 14 12:08 test-1
drwxr-xr-x. 2 root root 24 5月 14 13:45 test-2
.
├── test-1
│ └── a
├── test-2
│ ├── a
│ └── b
└── test-3
└── a
3 directories, 4 files
[root@choco-01 test]#
d. 保留owner、group、timestamp等属性-p
或-a
不加选项
[root@choco-01 test]# clear
[root@choco-01 test]# ll
总用量 0
-rw-rw-r--. 1 chocolee911 chocolee911 0 5月 14 13:49 aaa
[root@choco-01 test]#
[root@choco-01 test]#
[root@choco-01 test]# cp aaa bbb;ll
总用量 0
-rw-rw-r--. 1 chocolee911 chocolee911 0 5月 14 13:49 aaa
-rw-r--r--. 1 root root 0 5月 14 13:50 bbb
##以root身份执行了无选项的cp,结果复制得到的文件owner、group都已变为root,且时间被更新
加了-p
选项
[root@choco-01 test]# cp -p aaa ccc;ll
总用量 0
-rw-rw-r--. 1 chocolee911 chocolee911 0 5月 14 13:49 aaa
-rw-r--r--. 1 root root 0 5月 14 13:50 bbb
-rw-rw-r--. 1 chocolee911 chocolee911 0 5月 14 13:49 ccc ## ccc文件与aaa文件完全相同
[root@choco-01 test]#
注意:使用cp、mv等命令时,如果是对目录进行操作,那么在指定目录名时要在末尾加上斜杠
7.mv命令
-
作用
move,移动文件或目录,也可实现改名。
与cp不同的是:1. 使用mv,源文件将消失;2. 使用mv不会改变owner、group、timestamp等属性 -
选项
-i
:interactive,交互模式
-f
:force,强制模式,不进行提醒,会忽略-i
-u
:update,仅当更加新时才覆盖 -
用法
mv <source_file> <dest_file>
-
例子
a. 完整移动
[root@choco-01 test]# ll -R
./test1:
总用量 0
-rw-rw-r--. 1 chocolee911 chocolee911 0 5月 14 13:49 ccc
-rw-rw-r--. 1 chocolee911 chocolee911 0 5月 14 13:49 ddd
./test2:
总用量 0
-rw-r--r--. 1 root root 0 5月 14 13:50 bbb
[root@choco-01 test]# mv test1/ccc test2/;ll -R ## 目标文件中不写文件名,则保留源文件的文件名
./test1:
总用量 0
-rw-rw-r--. 1 chocolee911 chocolee911 0 5月 14 13:49 ddd
./test2:
总用量 0
-rw-r--r--. 1 root root 0 5月 14 13:50 bbb
-rw-rw-r--. 1 chocolee911 chocolee911 0 5月 14 13:49 ccc ## mv不像cp,mv不会改变文件的属性
[root@choco-01 test]#
b. 改名
[root@choco-01 test1]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月 14 14:13 aaa
[root@choco-01 test1]# mv aaa bbb;ll
总用量 0
-rw-r--r--. 1 root root 0 5月 14 14:13 bbb
c. 移动目录
[root@choco-01 test]# tree
.
├── test1
│ └── bbb
└── test2
├── bbb
├── ccc
└── kkk
2 directories, 4 files
[root@choco-01 test]# mv test1 test2/;tree
.
└── test2
├── bbb
├── ccc
├── kkk
└── test1
└── bbb
2 directories, 4 files
八、文件内容查看
查看文件内容的工具很多,但各自查看的重点不同
1. cat
-
特点
非常轻便的文件查看工具,但是不支持翻页 -
使用技巧
-A
:显示所有特殊字符,如TAB、断行符等
-n
:显示行号 -
例子
查看特殊字符(-A
):
[root@choco-01 etc]# cat -A /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet$
PROXY_METHOD=none$
BROWSER_ONLY=no$
BOOTPROTO=static$
DEFROUTE=yes$
.
.
显示行号(-n
):
[root@choco-01 etc]# cat -n /etc/sysconfig/network-scripts/ifcfg-ens33
1 TYPE=Ethernet
2 PROXY_METHOD=none
3 BROWSER_ONLY=no
4 BOOTPROTO=static
5 DEFROUTE=yes
2. more
-
特点
支持翻页,但一旦看到最后一行就结束了。不支持方向键 -
使用技巧
q
:退出
空格
:向后翻页
回车
:向后翻行
b
:向前翻页
3. less (less is more)
-
特点
more的进化版,支持方向键,看到最后都不退出,必须要按q
才能退出 -
使用技巧
a. 支持方向键翻页
b./<keyword>
:可搜索关键字,使用n / N 进行向下、向上查找,且所有匹配的关键字都会高亮显示
c. 退出时必须按q
,否则不会自动退出
e. 其他按键与more类似
4. head
-
特点
常用于查看文件的头几行,默认10行(包括空白行) -
使用技巧
-n #
:查看文件的头#行,如:head -n 50 ##输出前50行
5. tail
-
特点
常用于查看文件的末尾几行,默认10行(包括空白行) -
使用技巧
-n #
:查看文件的末尾#行,如:tail -n 15 ##输出末尾15行
-f
:动态查看,只要文件末尾有新增,就显示出来
-F
:功能同-f
,但是含有retry功能,即:文件短暂删除后,当文件新建起来时又能继续输出,而-f
当文件删除后就立即结束
6. wc
-
特点
word counts,能够计算文档的行数、字数、字节数等统计数据 -
选项
-l
:查看行数
-w
:查看词数
-
用法
wc -l < <filename>
-
例子
[root@choco-01 tmp]# cat test
one
two
three four
five
[root@choco-01 tmp]# wc -l < test
4
[root@choco-01 tmp]# wc -w < test
5
九、命令别名(alias、unalias)
为了方便用户执行命令,将某些命令或带选项的命令添加了别名
1. 查看自己系统的alias
[root@choco-01 tmp]# 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'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
2. 临时设置alias
alians <alias_name>='<command> <option> <para>'
[root@choco-01 tmp]# alias choco='/bin/ls -l'
[root@choco-01 tmp]# choco
总用量 36
-rw-r--r--. 1 root root 0 5月 14 11:31 aaa.txt
-rw-r--r--. 1 root root 0 5月 14 11:32 bbb.txt
-rw-r--r--. 1 chocolee911 chocolee911 0 5月 14 11:32 ccc.txt
-rw-r--r--. 1 chocolee911 chocolee911 0 5月 14 11:31 ddd.txt
-rw-r--r--. 1 chocolee911 chocolee911 0 5月 14 11:31 eee.txt
3. 取消alias(unalias
)
unalias <alias_name>
[root@choco-01 tmp]# alias
alias choco='/bin/ls -l'
alias cp='cp -i'
alias ls='ls --color=auto'
[root@choco-01 tmp]# unalias choco
[root@choco-01 tmp]# alias
alias cp='cp -i'
alias cp='cp -i'
alias ls='ls --color=auto'
3. 永久设置alias
将临时设置alias的语句,写入 /etc/profile
中,该文件为系统每次加载时都会读取的环境配置文件
十、操作小技巧
1. 使用上一条命令
!!
、上箭头
[root@choco-01 tmp]# clear
[root@choco-01 tmp]# ls /root
anaconda-ks.cfg expect-test
[root@choco-01 tmp]# !! ## 此时 !! 代表 ls /root
ls /root
anaconda-ks.cfg expect-test
2. 使用最近一条以<keyword>开头的命令
!<keyword>
[root@choco-01 tmp]# tree /root/
/root/
├── anaconda-ks.cfg
└── expect-test
├── aaa
├── password-change.sh
├── test-dir
│ └── test.file
└── test.sh
2 directories, 5 files
[root@choco-01 tmp]# !tre ## 叹号加上所需命令的头几个字母即可
tree /root/
/root/
├── anaconda-ks.cfg
└── expect-test
├── aaa
├── password-change.sh
├── test-dir
│ └── test.file
└── test.sh
2 directories, 5 files
[root@choco-01 tmp]#
3. 使用上一条命令的最后一个参数
!$
[root@choco-01 tmp]# tree -L 1 /root/
/root/
├── anaconda-ks.cfg
└── expect-test
1 directory, 1 file
[root@choco-01 tmp]# ls !$ ## 此时!$ 代表 /root/
ls /root/
anaconda-ks.cfg expect-test
[root@choco-01 tmp]#