常用命令:
1. ls 展示指定工作目录下的内容及属性信息
2. cp 复制文件或者目录
3. mv 移动文件或对其改名
4. mkdir 创建目录
5. touch 创建新文件或者修改文件属性
6. pwd 查看目录路径
7. cat 打印(查看)文本文件内容
8. echo 打印输出内容
9. rm 删除文件或者目录
10. rmdir 删除空目录
ls:list的缩写
| -a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
|---|---|
| -l | 使用长格式列出文件及目录信息 |
| -r | 将文件以相反次序显示(默认依英文字母次序) |
| -t | 根据最后的修改时间排序 |
| -A | 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录) |
| -S | 根据文件大小排序 |
| -R | 递归列出所有子目录 |
命令详解:
a) -a, --all 显示所有文件及目录(包括以’.’开头的隐藏文件)
b) -A, --almost-all 同-a,但不列出.(当前目录)及..(父目录)
i. --author 与-l同时使用时列出每个文件的作者
c) -b, --escape 以八进制溢出序列标识不可打印的字符
i. --block-size=SIZE 在打印之前按SIZE缩放尺寸
d) -B, --ignore-backups -- 不要列出以~结尾的隐含条目
e) -c with -lt: 按ctime排序并显示 with -l: 显示ctime并按名称排序 否则:按ctime排序,最新优先
f) -C 每栏由上至下列出项目
i. --color[=WHEN] 控制是否使用色彩分辨文件。WHEN可以是“never”(默认)、“always”或“auto”
g) -d, --directory 当遇到目录时列出目录本身二位目录内的文件
h) -D, --dired 产生适合Emacs的dired模式使用的结果
i) -f 不进行排序,-aU选项生效,-lst选项失效
j) -F, --classify 加上文件类型的指示符号(*/=@|其中一个)
i. --format=关键字 交错-x,逗号分割-m,水平-x,长-l,单栏-1,详细-l,垂直-C
ii. –full-time 既-l --time-style=full-iso
k) -g 类似-l,但不列出所有者
i. --group-directories-first 在文件前分组目录。此选项可以--sort一起使用.但一旦使--sort=none(-U)将禁用分组
l) -G, --no-group 以一个长列表的形式,不输出组名
m) -h, --human-readable 与-l一起,以易于阅读的格式输出文件大小
i. –si 同上面类似,但使用1000为基地而非1024
n) –H, --dereference-command-line 跟随命令行列出的符号链接
i. –dereference-command-line-symlink-to-dir 跟随命令行列出的目录的符号链接
ii. --hide=PATTERN 隐藏符合PATTERN模式的项目
iii. --indicator-style=方式 指定在每个项目名称后加上指示符号方式:none(默认),classify(-F),file-type(-P)
o) -i, --inode 显示每个文件的inode号
p) -I, --ignore=PATTERN 不显示任何符合指定shell PATTERN的项目
q) -k 即--block-size=1k
r) -l 使用较长格式列出文件及目录信息
s) -L, --dereference 当显示符号连接的文件信息时,显示符号链接所指示的对象而非符号链接本身的信息
t) -m 所有项目以逗号分割,并填满整行行宽
u) -n, --numeric-uid-gid 类似-l,但列出UID及GID号
v) -N, --literal 输出未经处理的项目名称(如不特别处理控制字符)
w) -o 类似-l,但不列出有关组的信息
x) -p, --indicator-style=slash 对目录加上表示符号‘/’
y) -q, --hide-control-chars 以“?”字符代替无法打印的字符
i. –show-control-chars 直接显示复发打印的字符(默认,除非调用的程序名是‘ls’并在终端输出结果)
z) -Q, --quote-name 将条目名称括上双引号
i. –quoting-stule=方式 使用指定的方式显示条目:literal、locale、shell、shell-always、c、escape
aa) –r, --reverse 逆序排序
bb) -R, --recursive 递归列出所有子目录
cc) -s, --size 以块数形式显示每个文件分配的尺寸
dd) -S 根据文件大小排序
--sort=WORD 以下是可选的WORD和它们代表的相应选项:
1. extension -X status -c
2. none -U time -t
3. size -S atime -u
4. time -t access -u
5. version -v use -u
--time=WORD 和-l同时使用时显示WORD所代表的时间而非修改时间:atime、access、use、ctime或status;加上--sort=time选项时会以指定时间作为排序关键字
--time-style=STYLE 和-l同时使用时根据STYLE代表的格式显示时间:full-iso、iso、locale、posix-iso、+FORMAT。FORMAT即是date所用的时间格式;如果FORMAT是FORMAT1<换行>FORMAT2,FORMAT1适用于较旧的文件而FORMAT2适用于较新的文件;如果STYLE以“posix-”开头,则STYLE仅在POSIX语系之外生效。
ee) -t 根据修改时间排序
ff) -T, --tabsize=宽度 指定制表符tab的宽度,而非8个字符
gg) -u 同-lt一起使用:按照访问时间排序并显示 同-l一起使用显示访问时间并按文件名排序 其他:按照访问时间排序
hh) -U 不进行排序;按照目录顺序列出项目
ii) -v 在文本中进行数字(版本)的自然排序
jj) -w, --width=COLS 自行指定荧幕宽度而不是用目前的数值
kk) -x 逐行列出项目而不是逐栏列出
ll) -X 根据扩展名排序
mm)-Z, --context 打印文件的安全上下文
nn) -1 每行只列出一个文件
i. --help 显示此帮助信息并退出
ii. --version 显示版本信息并退出
SIZE可以是一个可选的证书,后面跟着以下的单位中的一个:
KB 1000,K 2014, MB 10001000, M 10241024,还有G、T、P、E、Z、Y。
使用彩色来区分文件类型的功能已被禁用,默认设置和--color=never同时禁用了它。
使用—color=auto选项,ls只在标准输出被连至终端是才生成颜色代码。
LS_COLORS环境变量可改变此设置,可使用dircolors命令来设置。
退出状态:
0 正常
1 一般问题(例如:无法访问子文件夹)
2 严重问题(例如:无法使用命令行参数)
cp:copy 的缩写
cp [参数] 源文件 目标文件
1. -f 若目标文件已存在,则会直接覆盖源文件
2. -i 若目标文件存在,则会询问是否覆盖
3. -p 保留源文件或者目录的所有属性
4. -r 递归复制文件和目录
5. -d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
6. -l 对源文件建立硬连接,而非复制文件
7. -s 对源文件建立符号连接,而非复制文件
8. -b 覆盖已存在的文件目标前将目标文件备份
9. -v 详细显示cp命令执行的操作过程
10. -a 等价于“dpr”三个参数的结合
实例
1、 使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:
i. cp –r test/ newtest
2、 复制多个文件到指定的文件夹 dir
i. cp -r file1 file2 dir
注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R 。
mv:“move”单词的缩写
mv [参数] 源文件 目标文件
1、 -i 若存在同名文件,则向用户询问是否覆盖
2、 -f 覆盖已有文件时,不进行任何提示
3、 -b 当文件存在时,覆盖前为其创建一个备份
4、 -u 当源文件比目标文件新,或者目标文件不存在时,才执行移动操作
-v 详细显示进行的步骤
5、 -n 不要覆盖任何已存在的文件或目录
注:如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
示例
1、将 test.txt 文件重命名为 newtest.txt
mv test.txt newtest.txt
2、将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv info logs
3、将目录 dir 下的文件移动到当前目录下:
mv dir/* .
mkdir:“make directories”的缩写
mkdir [参数] 目录
1、 -p 如果上层目录不存在,会顺便把上层目录也创建
2、 -m 建立目录的同时设置目录的权限
3、 -z 设置安全上下文
4、 -v 每次创建新目录都显示信息
示例:
1、 创建一个test的目录
mkdir test
2、 如果test的父目录aaa不存在,也会顺便把父目录一同创建
mkdir -p aaa/test
3、 创建test目录时指定文件属性有读、写和执行权限,且其他人无权访问
mkdir -m 700 test
4、 同时创建多个目录dir1、dir2、dir3
mkdir dir1 dir2 dir3
touch:一是创建新的空文件,二是改变已有文件的时间戳属性
touch 命令会根据当前的系统时间更新指定文件的访问时间和修改时间。如果文件不存在,将会创建新的空文件,除非指定了”-c”或”-h”选项
1、 -a 改变档案的读取时间记录
2、 -m 改变档案的修改时间记录
3、 -r 使用参考档的时间记录,与-file的效果一样
4、 -c 不创建新文件
5、 -d 设定时间与日期,可以使用各种不同的格式
6、 -t 设定档案的时间记录,格式与date命令相同
7、 -no-create 不创建新文件
8、 -help 显示帮助信息
9、 -version 列出版本讯息
示例
1、将 test.txt 的档案时间改为,当前系统时间,文件不存在建之。(所以也可以当作创建空白新文件使用)
[root@haif ~]# touch test.txt
2、修改文件时间
(1)使用 ls 查看当前 test.txt 的文件属性
[root@haif ~]# ls -l test.txt
-rw-r--r-- 1 haif staff 0 7 9 16:05 test.txt #时间是 7月9号15:05
(2)将 test.txt 文件的时间改为 5月6日18点3分
[root@haif ~]# touch -c -t 05061803 test.txt
(3)再次使用 ls 查看属性
[root@haif ~]# ls -l test.txt
-rw-r--r-- 1 haif staff 0 5 6 18:03 test.txt# 时间是 5月6号18:03了
pwd:print work directory 的缩写,显示工作目录
-L 显示逻辑路径
-P 显示实际物理地址
示例:
显示当前目录
pwd => /home
目录是软连接,显示实际物理地址
pwd -P => /var/spool/mail
显示逻辑地址
pwd -L => /var/mail
cat:
将文件内容或标准输入组合输出到标准输出,不过 cat 这个命令适合用于查看内容较少的纯文本文件的,如果是较大的文件,推荐使用 more 这种命令。
另外当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。
cat [参数] 文件
-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
-E 每行结束处显示$符号
-T 将TAB字符显示为^|符号
-v 使用^和M-引用,除了LFD和TAB之外
-e 等价于-vE组合
-t 等价于-vT组合
-A 等价于-vET组合
-help 显示帮助信息
-version 显示版本信息
示例
1、普通输出
[root@haif ~]# cat test.txt
i love you
2、显示行号
[root@haif ~]# cat -n test.txt
1 i love you
2
3、空行不现实行号
[root@haif ~]# cat -b test.txt
1 i love you
4、清空文件内容
[root@haif ~]# cat /dev/null > test.txt
/dev/null 有点像是一个无底洞 ??
echo:
将文件内容或标准输入组合输出到标准输出,所谓标准输入,简单说就是从键盘输入的内容,标准输出,简单说,就是打印到屏幕上。
-n 不输出结尾的换行符
-e 允许对下面列出的加反斜线转义的字符进行解释
-e “\a” 发出警告音
-e “\b” 删除前面的一个字符
-e “\c” 结尾不加换行符
-e “\f” 换行,光标仍停留在原来的坐标位置
-e “\n” 换行,光标移至首行
-e “\r” 光标移至首行,但不换行
-E 禁止反斜杠转义,与-e参数功能相反
-version 查看版本信息 -help 查看帮助信息
示例
1、输出一段字符串:iamhaif
[root@haif ~]# echo "iamhaif"
iamhaif
2、将字符串 iamhaif 导入到文件 test.txt 中
[root@haif ~]# echo "iamhaif" >> test.txt
3、输入变量的值
[root@haif ~]# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/haif/program/go:/usr/local/go/bin
4、输出信息中删除某个字符,注意看数字 3 消失了
[root@haif ~]# echo -e "123\b456"
12456
5、输出带有换行字符的内容
[root@haif ~]# echo -e "a\nb\nc"
a
b
c
rm:remove 的缩写
删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。
不过需要注意的是,对于链接文件,它只是删除了链接,原有文件均保持不变。
rm 也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令。
rm -rf /* 这个执行了就凉了。
另外就是,通过该命令删除的文件,其实是可以恢复的哦。
rm [参数] 文件
-f 强制删除,忽略不存在的文件,不会出现警告信息
-i 删除前会询问用户是否操作
-r/R 递归删除目录及其内容
-v 显示指令的详细执行过程
-d 删除空目录
默认时,rm不会删除目录。使用(-r或-R)选项可删除每个给定的目录,以及其下所有的内容。
示例
1、删除前逐一询问确认
[root@haif ~]# rm -i file1.txt
remove file1.txt?
2、删除当前目录下所有文件:
[root@haif ~]# rm -rf *
3、清空系统中所有的文件(需谨慎):
[root@haif ~]# rm -rf /*
rmdir: remove directory的缩写
删除空的目录。并且也只能删除空目录,当要删除非空目录时,就要使用带有“-R”选项的 rm 命令。
rmdir命令的“-p”参数可以递归删除指定的多级目录,但是要求每个目录也必须是空目录。
-p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
--ignore-fail-on-non-empty 忽略仅由目录非空产生的所有错误
-v 显示命令的详细执行过程
示例
1、删除空目录 test
[root@haif ~]# rmdir test
2、删除指定目录及其上级文件夹(如果删除了test之后,b为空文件夹,则b也会被删除,a类似)
[root@haif ~]# rmdir -p a/b/test