1.echo (printf)
echo - display a line of text - 显示一行文本
常用选项:
-n: 不换行;
-e: 使 "\" 生效;(eg:\n: 换行,\t: 水平制表符)
文本颜色标识方法:
\033: 代表 Ctrl 键
[: 控制字符和颜色代码之间的分隔符;
所有颜色代码都需要使用 m 结尾;
颜色代码:
0: 关闭颜色显示属性, 恢复为黑白色;
1: 加粗显示文本字符;
4: 为文本字符添加下划线;
5: 是文本字符闪烁;
7: 将文本字符的背景颜色和前景颜色交换;
8: 将文本字符的背景颜色设置为与前景色相同;
30-39: 设置文本字符的前景色, 38,39 为保留, 暂时未被使用;
40-49: 设置文本字符的背景色, 48,49 为保留, 暂时未被使用;
- eg:~]# echo -e "\033[1;31mboom\033[0m"
- 2.cd
Change the shell working directory - 切换工作目录
cd /PATH/TO/SOMEDIR: 将工作目录切换至参数所代表的目录;
cd: 将工作目录切换至当前登录用户的家目录; 相当于 cd ~;
cd -: 将工作目录切换至此前最后一次的工作目录;
cd ~USERNAME: 将工作目录切换至指定用户的家目录中;
3.pwd
Print the name of the current working directory - 输出当前工作目录
shell 提供了两个变量: PWD,OLDPWD
PWD: 当前工作目录
OLDPWD: 上一级工作目录
4.ls
ls - list directory contents - ; 列表文件内容
目录的内容即是文件名;
常用选项:
-a, --all: 显示所有文件, 包括隐藏文件;(在 Linux 的文件系统中, 所有以 "." 作为文件名的起始字符的文件, 都是隐藏文件)
-A, --almost-all: 显示除了 "." 和 ".." 之外的所有文件, 包括隐藏文件;
--color[=WHEN]: 以不同的颜色来显示查询结果;
-h, --human-readable: 在显示文件的大小的时候, 显示为更加易读的格式; 通常与 - l 选项一同使用;
-l: 使用长列表格式显示文件的详细属性;
-rw-------. 1 root root 1458 12 月 23 2016 anaconda-ks.cfg
-: 表示文件类型;
rw-------: 文件的权限位设置;
.: 表示该文件是否具有特殊属性或扩展属性;
1: 表示该文件被硬链接的次数;
root: 文件的属主(所有者)
root: 文件的属组
1458: 表示文件的大小, 在没有使用 - h 选项时, 其单位为字节;
12 月 23 2016: 文件的时间戳之一, 表示最后一次被修改的时间;
anaconda-ks.cfg: 文件名
对于设备文件:
~]# ls -l /dev/sr0
brw-rw----. 1 root cdrom 11, 0 9 月 24 10:50 /dev/sr0
11, 0:major, minor
major: 主设备号, 用于标识设备类型, 进而确定需要加载何种驱动程序;
minor: 次设备号, 用于标识同一种设备类型中的不同的设备;
设备号默认使用 8 位二进制表示, 所以默认的设备号的范围是 0-255;
-r, --reverse: 倒序输出结果
-R, --recursive: 递归显示, 如果目标目录中有子目录, 则递归显示子目录的内容, 依次递归下去;
-Z, --context: 显示文件的 SELinux 安全上下文标签;
5.mkdir
mkdir - make directories - 创建新目录
常用选项:
-p, --parents: 在创建目录的时候, 如果其父目录不存在, 则优先创建之;
-v, --verbose: 为每个被创建的目录显示一条信息;
6.rm
rm - remove files or directories - 删除文件或目录
常用选项:
-f, --force: 暴力, 强制删除; 不弹出询问信息;
-r, -R, --recursive: 递归删除目录及目录中的内容;
7.touch
touch - change file timestamps - 修改文件的时间戳
常用选项:
-c, --no-create: 不创建任何文件;
-a: 仅修改文件的访问时间戳;
-m: 仅修改文件的修改时间戳;
-t STAMP: 使用指定的 STAMP 替换文件的时间戳;
STAMP 的格式为:[[CC]YY]MMDDhhmm[.ss]
如果没有指定 - c 选项的话, touch 命令可用作创建文件;
8.stat
stat - display file or file system status - 显示文件或文件系统的状态
常用选项:
-c, --format=FORMAT: 以指定的格式显示文件的指定状态属性;
FORMAT:
%b 文件的总数据块
%d 文件系统中空闲文件节点数
%f 文件系统中的空闲块
%i 文件的 inode 号
%l 文件名的最大长度
%n 文件名
%s 文件大小
9.nano: 文本模式下的全屏编辑工具;
nano 界面下:
^: 脱字符, 表示键盘上的 Ctrl 按键;
^+o: 保存文档内容;
^+x: 退出编辑界面;
10.cat
cat - concatenate files and print on the standard output - 连接文件并在标准输出显示
常用选项:
-b, --number-nonblank: 对非空白行进行编号输出;
-n, --number: 对所有行编号输出;
-s, --squeeze-blank: 合并连续的空白行;
-E, --show-ends: 在行尾以 $ 字符显示;
tac - concatenate and print files in reverse - 基于 cat 命令反向输出结果
注意: cat 或 tac 命令, 如果没有给出参数, 则所有的内容需要通过标准输入 (从键盘键入) 完成; 而后可以使用 "^+c" 或者 "^+d" 退出即可;
11.head
head - output the first part of files - 输出文件的起始部分;
常用选项:
-c, --bytes=[-]K: 以字节为单位显示相应长度的内容;
-n, --lines=[-]K: 以行为单位显示相应长度的内容;
- -# : 显示前 #行
- K may have a multiplier suffix:b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.
如果不使用任何选项, 则默认显示指定文件内容的前 10 行;
12.tail
tail - output the last part of files - 输出文件的最终部分;
常用选项:
-c, --bytes=[-]K: 以字节为单位显示相应长度的内容;
-n, --lines=[-]K: 以行为单位显示相应长度的内容; 可以使用 -#K 方式替换 - n #K;
-f, --follow[={name|descriptor}]: 监控文件末尾的变化;
- eg: ~]# tail -f /etc/a.txt 占用标准输出持续监控该文件的变化
- 13.more
more - file perusal filter for crt viewing - 分页显示文档内容, 过滤;
交互式编辑方法:
可以使用 "/" 根据后续给出的字符串组合进行查找过滤;
可以使用 "n" 找到下一个匹配项;
使用 "q" 退出 more 模式;
使用 Enter, 可以向下翻一行;
使用 Space, 可以向下翻一页;
14.less
less - opposite of more - 与 more 相对应的命令
交互式编辑方法:
可以使用 "/" 或 "?" 根据后续给出的字符串组合进行查找过滤;
可以使用 "n" 或 "N" 找到下一个匹配项;
使用 "q" 退出 more 模式;
使用 Enter, 可以向下翻一行;
使用 Space, 可以向下翻一页;
15.date
操作系统时间, 简称系统时间; 使用软件模式的时钟记录的时间;
date - print or set the system date and time - 打印或设置系统日期和时间
常用选项:
-s, --set STRING: 设置系统时间为指定的时间;
两种格式:
1) MMDDHHmm[[CC]YY][.ss]
2) "CCYY-MM-DD HH:mm:ss" 或 "CCYY/MM/DD HH:mm:ss"
- eg:~]# date -s 2018-4-3 +20:55:22
- FORMAT:
%F: 表示完整的年月日格式, 即: YY-mm-dd
%T: 表示完整的时分秒格式, 及: HH:MM:SS
%Y: 表示完整年份
%m: 表示月份
%d: 表示日期
%H: 表示小时
%M: 表示分钟
%S: 表示秒钟
%s: 时间戳, 从 1970-01-01 00:00:00 到当前系统时间所经历的秒数;
注意: 1970 年 1 月 1 日作为 Unix 元年;
此时间戳是由 32 位二进制表示的, 所以其表示的最大范围 0~4294967295;
16.clock/hwclock
hwclock - query or set the hardware clock (RTC) - 查询或设置硬件时钟(RTC)
常用选项:
-s, --hctosys: 根据硬件时钟设置系统时间;
-w, --systohc: 根据系统时间设置硬件时钟;(不推荐)
17.cal - 显示一个日历
18.cp
cp - 复制文件和目录
格式: cp [OPTION]... [-T] SOURCE DEST: 单源复制
cp [OPTION]... SOURCE... DIRECTORY: 多源复制
1) cp 命令至少要接两个参数;
2) 最后一个参数, 通常是此次复制到的目标位置;
3) 如果在复制时给出的目标是目录, 则直接将文件复制到指定的目录中, 保留原文件名; 如果在复制非目录文件时, 给出的目标时非目录的文件, 则此次操作时复制并改名;
常用选项:
-R, -r, --recursive: 递归地复制目录文件;
-d same as --no-dereference --preserve=links
复制的源文件是符号链接文件时,-d 选项可以保留该符号链接文件作为此次的源文件被复制, 而不会复制该符号链接文件所指向的那个文件;
-p same as --preserve=mode,ownership,timestamps
复制的源文件中的权限位所有权及时间戳属性会保留下来;
-a, --archive same as -dR --preserve=all
相当于 - dpr 的组合;
-f, --force: 如果目标文件已经存在, 则强制复制并且不提示; 想要使该选项生效, 执行 cp 命令时, 需要在 cp 前面加上 "\", 即:# \cp Source_file Destination_file
19.mv
mv - move (rename) files - 移动或重命名文件
格式:
mv [OPTION]... [-T] SOURCE DEST: 单源移动
mv [OPTION]... SOURCE... DIRECTORY: 多源移动
常用选项:
-f, --force: 移动文件并强制覆盖目标位置同名文件; 不给提示;
-n, --no-clobber: 移动文件时, 如果源文件与目标位置中的文件重名, 则不移动;
20.alias
alias - 定义或显示别名
格式: alias [-p] [名称[= 值] ... ]
注意: 如果 alias 命令不带任何选项和参数, 则表示显示所有已经定义并生效的别名设置;
- # alias ALIAS='COMMAND [OPTION]... [ARGUMENT]...'
- unalias
unalias - 从别名定义列表中删除每一个 "名字"
格式: unalias [-a] 名称 [名称 ...]
注意:
无论使用 alias 命令还是使用 unalias 命令, 其功能都会立即生效; 此二命令的生命期仅为当前 shell 的生命期; 一旦注销登录, 相当于关闭了 bash, 则使用 alias 命令定义的别名或使用 unalias 命令删除的别名操作, 会立即失效;
对于每个用户来说, 都有一个私有的 bash 的配置文件, 就在用户的家目录中的一个隐藏文件, 文件名为 ".bashrc", 其主要功能就是用来保存命令的别名的定义;
注意:
在对于此文件中的命令别名进行编辑并保存之后, 在当前已经运行的 bash 中并不会立即生效, 需要重新加载此文件才能使配置生效, 以下两种操作皆可实现:
1. 重启 bash: 注销之后再次登录即可;
2. 执行文件中定义的命令: 使用 source 命令, 或者. 命令;
eg:~]# source .bashrc
source - 在当前 shell 中执行一个文件中的命令
. - 在当前 shell 中执行一个文件中的命令
来源: http://www.bubuko.com/infodetail-2547624.html