一、系统基本命令
halt 关闭系统
poweroff 关闭系统
init 0 关闭系统
init 1 单用户模式,只root用户进行维护
init 2 多用户模式,不能使用NFS
init 3 完全多用户模式
init 4 安全模式
init 5 图形化界面
init 6 重启
shutdown -r now 重启
shutdown -r +10 十分钟后重启
shutdown -h now 关闭系统
shutdown -h 23:25 系统将会在今天23:25关机
reboot 重启
logout 注销
sync 将数据由内存同步到硬盘中
passwd:更改密码
二、文件操作
cat filename 从第一个字节开始查看文件内容
tac filename 从最后一行开始反向查看文件内容
more filename 查看一个长文件内
less filename 类似于more 命令,可前后翻页,切屏
head -n filename 查看前N行
tail -n filename 查看后N行
wc filename 显示文本的行数、单词 字节数
wc -l filename 显示行数
wc -w filename 显示单词数
wc -c filename 显示字节数
tr (translate or delete character) 字符处理命令,用于转换或者删除字符
tr [option]... SET1 [SET2]
tr -d :删除出现在字符集中所有的字符
命令行编辑:
光标跳转:
Ctrl+a 跳到命令行首
Ctrl+e 跳到命令行尾
Ctrl+u 删除光标至命令行首的内容
Ctrl+k 删除光标至命令行尾的内容
Ctrl+l、clear 清屏
命令历史:
查看命令历史:history
清空命令历史:history -c
删除制定位置的命令:history -d n
删除指定位置的命令:history -d OFFSET {n}
执行命令历史中的第N条命令: !n
执行命令历史中倒数第N条命令:!-n
执行上一条命令:!!
给命令起别名:
alias 别名='COMMAND [options] [args]'
命令替换:$(COMMAND),反引号:`COMMAND`
把命令中某个子命令替换为器质性结果的过程
eg:touch file-$(date +%F-%H-%M-%S).txt 生成时间格式的文件
bash支持的引号
``:命令替换
"":弱引用,可以实现变量替换
'':强引用,不完成变量替换
文件名通配 globbing
*:任意长度的任意字符
?:任意单个字符
[]:匹配值定范围内的任意单个字符
eg:[0-9] [a-z] [A-Z] [a-g] [a-zA-Z][0-9a-zA-Z]
[:space:]空白字符
[:punct:]标点符号
[:lower:]小写字母
[:upper:]大写字母
[:alpha:]大小写字母
[:digit:]数字
[:alnum:]数字和大小写
[^]:匹配指定范围外的任意单个字符
用户: UID /etc/passwd
组:GID /etc/group
用户管理
useradd,userdel,usermod,passwd,chsh,chfn,figer,id,chage
增加用户 useradd [options] username
-u UID 指定用户ID
-g GID 指定用户基本组
-G GID,... 指定附加组,可以有多个
-c "COMMENT" 指定注释信息
删除用户 userdel [OPTIONS] username
userdel 默认不会删除用户的家目录如需删除家目录加参数 -r
userdel -r username
组管理命令
groupadd, groupdel,groupmod,gpasswd
权限管理
r: 读 w: 写 x :执行
0 000 --- :无权限
1 001 --x : 执行权限
2 010 -w- : 写
3 011 -wx : 协和执行
4 100 r-- : 只读
5 101 r-x : 读+执行
6 110 rw- : 读+写
7 111 rwx : 读写执行
755 rwxr-xr-x
640 rw-r-----
权限管理chown,chgrp,chmod,umask
chown(只有管理员可以使用此命令)
chown USERNAME FILE,...改变文件的属主
chown -R USERNAME FILE,... 递归改变目录及其内部文件的属主
chown --reference=/path/to/file1 file2 参考file1的属主设置file2的属主属组
chown USERNAME:UGROUP FILE 改变属主属组
chown :Ugroup 改变属组
chgrp(只有管理员可以使用此命令)
chgrp USERNAME FILE,...改变文件的属主
chgrp -R USERNAME FILE,... 递归改变目录及其内部文件的属主
chgrp --reference=/path/to/file1 file2 参考file1的属主设置file2的属组
chmod:修改文件的权限
修改三类用户的权限(MODE用8进制权限表示)
chmod MODE FILE,...
chmod -R
chmod --reference=/path/to/file
修改某类用户或某些类用户的权限(MODE用rwx表示、用户类别(u、g、o、a))
chmod 用户类别=MODE file
chmod 用户类别+|-MODE file
注意标准输出和标准错误输出不是同一个数据流
> :覆盖输出
>> : 追加输出
2>:重定向错误输出
2>>:追加错误输出
&>:重定向标准输出和错误输出至同一个文件
<:输入重定向
set -C:禁止对已经存在的文件使用覆盖重定向
强制覆盖输出,则使用>|
set +C: 关闭上述功能
查找文件之find
find ./ -name test.sh 查找当前目录下查找名字为test.sh的文件
find ./ -name '*.sh' 查找当前目录下后缀为.sh的所有文件
find / -name "[A-Z]*" 查找根目录下大写字母打头的所有文件
find /tmp -size 2M 查找/tmp下等于于2M的所有文件
find /tmp -size +2M 查找/tmp下大于2M的所有文件
find /tmp -size -2M 查找/tmp下大小小于2M的所有文件
find ./ -size +4k -size -5M 查找当前目录下大于4K小于5M的所有文件
find ./ -perm 777 查找当前目录下文件权限为777的所有文件或者目录
vi 命令行模式下
yy:复制光标所在的行
3yy:复制光标所在行向下复制三行
p:粘贴
dd:剪切 光标所在行
2dd:剪切 光标所在行向下两行
D:从当前光标开始剪切,一直到行末
d0:从当前光标开始剪切,一直到行首
x:删除当前光标所在的字符,每次只删除一个
X:删除当前光标后面的字符,每次只删除一个
选中一片代码
v:从光标所在的字符开始
V:
光标移动
h左j下k上l右
H:当前屏幕的上方
M:当前屏幕的中间
L:当前屏幕的下方
Ctrl+f:向下翻一页代码
Ctrl+b:向上翻一页代码
Ctrl+d:向下翻半页代码
Ctrl+u:向上翻半页代码
20G:快速定位到第20行代码
G:快速回到整个代码的最后一行
gg:快速回到整个代码的第一行
w:切换到下一个单词
b:切换到上一个单词
u:撤销
Ctrl+r反撤销
三、Linux之正则表达式
正则表达式 REGEXP
元字符
\:转义字符
x|y:匹配x或y
匹配次数
*:匹配其前面子表达式任意次;等价于{0,}
+:匹配前面子表达式一次或者多次;等价于{1,}
?:匹配前面子表达式0次或着1次;等价于{0,1}
{n}:匹配前面子表达式n次;
{n,}:匹配前面子表达式出现至少n次;
{n,m}:匹配前面子表达式出现至少n次最多m次
定位符:
^:匹配输入字符串的开始的位置
$:匹配输入字符串结尾的位置
\b:匹配一个单词边界,即字与空格之间的位置
\B:非单词边界匹配
常见字符集合:
\d:任意数字字符,相当于[0-9]
\D:任意非数字字符,相当于[^0-9]
\s:任意空白字符,包括Space,Tab,换页符等。等价于[\r\n\t\f\v]
\S:任意非空白字符,等价于[^\f\n\r\t\v]
\w:任意字母、数字、下划线;等价于[A-Za-z0-9_]
\W:任意非字母数字下划线;
\t:制表符
\v:垂直制表符
\f:换页符
\r:回车符
\n:换行符
字符簇:
[[:alpha:]] 任何字母
[[:digit:]] 任何数字
[[:alnum:]] 任何数字和字母
[[:space:]] 任何空白字符
[[:upper:]] 任何大写字母
[[:lower:]] 任何小写字母
[[:punct:]] 任何标点符号
[[:xdigit:]] 任何16进制数字
Linux三剑客
grep、sed、awk
sed基本用法 sed(流编辑器)
sed默认不编辑源文件,仅对末世空间中的数据做处理。sed可依照script的指令,来处理、编辑文本文件。 Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed(Stream Editor)
语法: 1、sed[-hnV][-e<script>][-f<script文件>][文本文件]
-n:静默模式只显示符合条件的行,不再默认显示模式空间中的内容
2、sed 'AddressCommand' file ...
Address:
1、Startline,Endline 例如 1,100
2、/RegExp/ 用正则表达式匹配
3、/pattern1/,/pattern2/ 第一个被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束;
4、LineNumber 指定的行
5、startLine,+N 指定行开始向后N行
Command:
1、d 删除
2、p 打印符合条件的行
3、a \string 在指定行后面追加新行,内容为string
4、r File 将指定行添加File的内容
5、w FILE 将指定的范围内的行另存至指定的文件中
6、s/pattern/string/ 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
加修饰符 g :全局替换
i: 忽略字符大小写