本文共 6151 字,大约阅读时间需要 20 分钟。
一.bash的快捷键:
Ctrl+a: 跳至命令行首
Ctrl+e: 跳至命令行尾
Ctrl+u: 删除命令行首至当前光标所在处的内容
Ctrl+k: 删除当前光标所有处至命令行尾的内容
Ctrl+l: 清屏,相当于clear命令
Ctrl+c: 取消或终止;
Ctrl+z: 将当前命令送至后台
Ctrl+Shift+t: 创建新的标签页
Ctrl+PageUp/PageDown: 切换标签页
Ctrl+Shift+c: 复制选中的内容
Ctrl+Shift+v: 粘贴
Shift+PageUp/PageDown: 上下翻动屏幕
空格键:向后翻一屏;
b: 向前翻一屏;
回车键:向后翻一行;
k: 向前翻一行;
Ctrl+d: 向后翻半屏;
Ctrl+u: 向前翻半屏;
G: 跳转至文件尾;
1G: 跳转至文件首;
q: 退出;
bash的快捷键:
Ctrl+a: 跳至命令行首
Ctrl+e: 跳至命令行尾
Ctrl+u: 删除命令行首至当前光标所在处的内容
Ctrl+k: 删除当前光标所有处至命令行尾的内容
Ctrl+l: 清屏,相当于clear命令
Ctrl+c: 取消或终止;
Ctrl+z: 将当前命令送至后台
二.
Ifconfig 显示登录地址,广播地址等信息
startx & 切换到图形界面 startx -- :1 &
# basename PATH
例如#. basename /usr/share/doc显示基名 doc
# dirname PATH
例如 dirname /usr/share/doc 显示路径 /usr/share
# logout: 登出
# passwd修改用户密码 /etc/passwd可以查看所有用户的属性信息
# which COMMAND
# type COMMAND 查看命令类型是内建命令还是外部命令
# echo ${VAR_NAME}变量引用
# hash
# history 显示此前的命令
!#: 执行历史中的第#条;
!-#: 执行历史中的倒数第#条;
!!: 命令历史中的最后一条命令;
!string: 执行命令历史中最近一条以“string”开头的命令;
[]:可省略之内容
<>: 必须提供的内容
a|b: 二者选择一个
...: 前面的内容可重复出现多次
三.如何获取命令帮助:
内建命令:help COMMAND
外部命令:
1、manual: 使用手册, man COMMAND
2、info: 信息页, info COMMAND
3、简要使用帮助: COMMAND --help
4、官方文档:google
5、额外的文档:README、INSTALL、ChangeLog 、/usr/share/doc/ls-VERSION
6、发行版官方文档,http://www.redhat.com/docs/
四.ls: 列出指定目录下的文件
-l:以长格式显示文件的详细属性 分别是(文件类型/属主、属组及其它用户的权限/文件被硬链接的次数/属主/属组/文件的大小/文件最近一次被修改的时间/文件名)
-a:显示所有文件,包括隐藏文件
-A:跟-a功能相同,但不显示.和..;
.: 当前目录;
..: 上级目录;
-n: 以用户及组的id号排序;
-h: 文件大小会自动进行单位换算;
-r:文件名逆序显示;
-R:递归显示;
date: date +%s
显示天 -d
显示月 -m
显示年 -Y
显示小时 -H
显示年-月-日 -F
显示小时:分钟:秒 -T
date mmddHHMM[CC[YY]][.SS]
hwclock
-w: 以系统时钟为准,将硬件时钟修改为系统时间
-s:以硬件时钟为准,将系统时间修改为硬件时间
目录相关命令:
cd /usr/share
回到家目录:cd ~
cd
cd ~USERNAME: 切换至USERNAME的家目录;
cd -: 在上个目录和当前目录之间切换;
pwd: 显示当前目录;
dirname:显示指定路径的目录;
mkdir 创建新目录
-p:没有错误,如果现有的,根据需要父目录
-v: 显示创建过程
bash支持命令行展开:{}
例如a_b, a_dc_b, c_d
mkdir a_b a_d c_b c_d
mkdir {a,c}_{b,d}
五.文本文件相关的命令:
查看:
cat, tac
more: 向后翻,在翻至文件尾部之前允许向前翻
less: 向前翻
head: 文件的前n行;
tail: 文件的后n行;-n # 或 -#
文本查找:查找单词
/keyword: 从当前光标所在行开始,向文件尾部查找;
?keyword: 从当前光标所在行开始,向文件首部查找;
n: 跟当前查找命令相同方向的下一个匹配;
N:跟当前查找命令相反方向的下一个匹配;
tail -f: 查看一个文件尾部内容后,不退出,等待并显示新增的行;退出使用Ctrl+C;
创建文本:
nano
touch: 修改文件时间戳;
-a: 访问时间
-m: 修改时间
-t STAMP: 指定时间,格式[CC]YYMMDDhhmm.ss
复制:
cp 要复制的文件路径 ... 目标
-r: 递归复制
-a: 递归复制
-i: 交互式,覆盖前提醒确认
-v:解释要做什么
移动:
mv 要移动的文件 ... 目标
-i: 覆盖前提醒确认;
删除:
rm
-i: 提醒
-f: 强行删除;
-r: 递归删除目录及其内部的所有文件;
-rf 删除目录及其内部的所有文件不会提醒确认
文本处理命令:
wc [options] FILE
-l: 只显示行数;
-w 只显示单词数
-c 只显示字符数
tr: translate
tr [options] '原来的字符集合' '转换为的字符集合'
-d '字符集合':把出现的文件中的,属于字符集合中的字符统统删除;
cut: 文本切割,
cut [options] FILE
-d: 默认分隔符为空白,-d:
-f 后面直接写所要取得段数
join: 和cut相反。组合内容
通配符:
*:任意长度的任意字符;
?: 任意单个字符;
[]: 指定范围内的任意单个字符;
[^]:脱字符,取反,指定范围外的任意单个字符,
字符集合:
[:digit:] : 所有数字, 相当于0-9
[:lower:]:所有的小写字母。相当于a-z
[:upper:]:所有的大写字母。相当于A-Z
[:alpha:]: 所有的字母。相当于a-zA-Z
[:alnum:]:所有的字母和数字。 相当于[0-9a-zA-Z]
[:space:]: 空白字符
[:punct:]:所有标点符号
判断普通文件的内容的类型,使用file命令;
# file FILE
文件相关:
touch:
access time: -a 最后一次的访问时间
modify time: -m 最后一次的修改时间
change time 最后一次的改变时间
stat FILE 查看文件的最近一次的访问时间,最近一次的修改时间,最近一次的改变时间等内容
-t [CC]YYMMDDhhmm.ss 修改为指定时间
六.添加用户:
useradd, adduser
# useradd USERNAME
定制用户属性:
-u UID,
-g GID, 有效范围已有的GID;
-G GID, 有效范围为已有的GID;可以有多个,用逗号分隔;
-c COMMENT 注释信息
-d /path/to/somewhere 指定路径
-s /path/to/shell_command
-r: 创建系统用户, ID号范围为1-499之间的用户;系统用户的家目录不会被真正创建;
-M: 不为用户创建家目录;
-m: 必须为用户创建家目录;
转换用户:
su (switch user)
su USERNAME
su - USERNAME
管理员su到普通用户,不需要密码;反之,不可以;
创建组:groupadd
groupadd GRPNAME
/etc/group:
组名:密码占位符:GID:以此组为额外组的用户列表,用户间用逗号分隔;
-g GID: 创建组的时候为其指定GID;
-r: 创建系统组;
修改用户属性:
usermod:
-u UID
-g GID
-a -G GID: -G修改额外组时会覆盖原有的额外组,同时使用则能保留原有的额外组;
-c COMMENT 注释信息
-s /PATH/TO/SHELL
-l NEW_NAME: 改用户的登录名称;
-m -d /path/to/somewhere:-d只修改家目录指向,同时使用-m选项则可实现将原来家目录移动为新的家目录;
密码管理:
passwd: 修改自己的密码;
passwd USERNAME: 修改指定用户的密码
-l: 锁定用户帐号
-u: 解锁
groupmod: 修改组属性
-g GID
-n NEW_NAME
useradd密钥属性的修改:
passwd:
-e
-n: 密码最短使用天数;
-x:最长使用天数;
-w: 警告天数;
-i: 非活动时长;
chage
-d: 修改密码的最近一次修改时间
-m, --mindays MIN_DAYS:最短使用期限;
-M, --maxdays MAX_DAYS:最长使用期限;
-W, --warndays WARN_DAYS:警告天数;
-I, --inactive INACTIVE:非活动天数;
-E, --expiredate EXPIRE_DATE:过期时间;
usermod
-e YYYY-MM-DD: 指定帐号过期期限;
-i #: 非活动天数;
gpasswd: 为组设定密码;
newgrp GROUP: 临时设定指定的组为自己的基本组;
权限:
r: read, 文件可读
w: write, 文件可写
x: execute, 文件可发起为进程,目录表示可ls -l, cd
改变文件权限:属主 u 属组 g 其它 o 所有的a
chmod: change mode
权限定义方式:
1、同时修改三类用户的权限: 8进制数字方式
2、修改某一类或某些类用户的权限:u=,g=
3、只操作某类用户的某位或某些位权限:u+x ,u-x
选项:
-R: 递归修改权限;
--refernce=/path/to/somefile FILE
修改文件的属主和属组:
chown [选项] 用户 文件
chgrp [选项] 组 文件
-R: 递归修改权限;
--refernce=/path/to/somefile FILE
chown 用户:组 文件
chown 用户.组 文件
删除用户:
userdel:
userdel [options] USERNAME
-r 不保留用户的家目录
删除组:
groupdel
groupdel GRPNAME
命令补齐:
Tab键会搜索PATH环境变量所指定的路径下的所有可执行文件,如果“命令的部分字符”能惟一表示某命令,则直接补全为那个命令;
如果不能惟一表示,则再敲一次tab键,会显示所有以“命令的部分字符”开头的命令
七.基本正则表达式:
^:锚定行首的符合条件的内容,用法格式“^pattern”;
$: 锚定行尾的符合条件的内容,用法格式“pattern$”;
^pattern$:
^$: 空白行
.: 匹配任意单个字符
*:匹配紧挨在其前面的字符任意次;
.*: 匹配任意长度的任意字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
[:lower:]
[:upper:]
[:digit:]
[:alpha:]
[:alnum:]
[:space:]
[:punct:]
\?: 匹配紧挨在其前面的字符0次或1次;
\{m,n\}: 匹配其前面的字符至少m次,至多n次;
\{0,n\}: 至多n次;0-n次;
\{m,\}:至少m次
\{m\}: 精确匹配m次;
\<: 锚定词首,用法格式:\<pattern
\>: 锚定词尾,用法格式:pattern\>
\<pattern\>:锚定单词
\(\): 分组,用法格式: \(pattern\)
ab任意字符ab:ab.*ab
a.b任意字符a.b: \(a.b\).*\1
grep的选项:
--color=auto 有颜色显示
-v: 反向选取,只显示不符合模式的行;
-o: 只显示被模式匹配到的字串,而不是整个行;
-i: 不区分字符大小写;
-A #:显示匹配到的行时,顺带显示其后面的#个行;
-B #:前面的#行;
-C #:前后的#行;
-E: 使用扩展的正则表达式grep -E = egrep
扩展正则表达式: egrep
.: 任意单个字符
[]: 匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
*
+: 匹配其前面的字符至少1次;
?:
{m,n}: 至少m次,至多n次;
():分组,支持引用\1, \2;
a|b: 二选一;
\<:锚定词首
\>:锚定词尾
^ 锚定行首的符合条件的内容
$ 锚定行尾的符合条件的内容
| :表示或者的意思
sort: 排序
-f: 忽略字符大小写;
-n: 以数值大小进行排序;
-r: 降序;
-u: 移除重复的行,具有相同内容的行只保留一个;
-R: 随机排序;
uniq:
-c:统计每行重复的次数;
-u:只显示没有重复的行
-d: 只显示重复过的行;
八.输出重定向:
>:覆盖重定向;
set -C: 避免覆盖已经存在的文件中的内容;
强制覆盖:>|
set +C: 关闭上述功能;
>>:追加重定向;
/dev/null: 数据黑洞,bit bucket
错误输出重定向:
2>: 覆盖重定向;
2>>: 追加重定向;
同时重定标准输出和错误输出:
例如:COMMAND > /path/to/stdout 2> /path/to/error
标准输出和错误输出定向至一个文件:
COMMAND &> /path/to/somewhere
COMMAND > /path/to/somewhere 2>&1
输入重定向:
<:COMMAND < /from/somewhere
<<:Here Document,此处创建文档
cat > /path/to/somefile << EOF
abc
hello
EOF
通常用于脚本中生成文档
cat << EOF
abc
hello
EOF
通常用于脚本中向用户输出大段信息;
管道:|
COMMAND1 | COMMAND2 | COMMAND3 | ...
本文转自 宋鹏超 51CTO博客,原文链接:http://blog.51cto.com/qidian510/1248779,如需转载请自行联系原作者