查阅命令帮助信息
man
man是manual的缩写,是Linux提供的手册包括大部分命令和函数的详细使用
操作键 | 功能说明 |
---|---|
空格键 |
显示手册下一个屏幕内容 |
回车键 |
一行滚动手册页 |
b |
回滚一屏 |
f |
前滚一屏 |
q |
退出 |
/内容 | 搜索/后面的内容 |
↑、↓ |
向上或向下滚动 |
man 命令
[root@node100 ~]# man find
help
显示命令帮助文本。
命令 --help
[root@node100 /]# find --help
切换目录
cd
切换工作目录
选项命令常用 | 说明 |
---|---|
cd |
进入用户主目录 |
cd ~ |
进入用户主目录 |
cd - |
返回该目录前的目录 |
cd .. |
返回上级目录(如果当前目录为"/",执行后还在"/";".."意思是上级目录) |
cd ../.. |
返回上两级目录 |
cd 相对路径 |
进入当前目录下的目录 |
cd 绝对路经 |
进入指定的绝对路径 |
[root@node100 ~]# cd /etc/ntp/
显示工作目录
pwd
对应英文(print work directory)用途:查看当前目录
[root@node100 ntp]# pwd
查看目录内容
ls
对应英文(list)显示目录内容列表
使用格式:ls [选项]... [目录或文件名]
选项命令常用 | 说明 |
---|---|
ls 目录 |
显示目录内容列表 |
ls -l 目录 |
显示详细信息 简写ll |
ls -a 目录 |
显示所有子目录和文件的信息,包括隐藏文件 |
ls -R 目录 |
递归显示内容 |
ls -h 目录 |
以友好方式显示文件大小 |
[root@node100 /]# ls
[root@node100 /]# ll
[root@node100 /]# ll -h
[root@node100 /]# ll /etc/ntp/
创建目录
mkdir
对应英文( make directory) 创建目录:
使用格式: mkdir [选项] [参数]
选项命令常用 | 说明 |
---|---|
mkdir test |
创建test目录 |
mkdir -p demo/test |
创建一级目录demo以及二级目录test |
[root@node100 /]# mkdir test
[root@node100 /]# mkdir -p demo/test
创建文件
touch
用途:创建文件,使用格式:touch 文件名
[root@node100 /]# touch a.txt
删除操作
rmdir
对应英文(remove)用途:删除空目录(只能删除目录)
使用格式:rmdir [-p] dirName
选项命令常用 | 说明 |
---|---|
rmdir test |
删除test目录 |
rmdir -p demo/test |
删除一级目录demo以及二级目录test |
[root@node100 /]# rmdir test
[root@node100 /]# rmdir demo/test
rm
使用格式: rm [选项] 文件或目录
删除文件或目录
使用 rm 命令要小心,因为文件删除后不能恢复
常用选项命令 | 说明 |
---|---|
rm a.txt |
删除文件a.txt |
rm -f a.txt |
强制删除,忽略不存在的文件,没有提示 |
rm -r demo |
递归删除目录或文件demo |
rm -rf 文件或目录 |
强制递归删除文件或目录 |
[root@node100 /]# rm -rf a.txt
复制文件
cp
使用格式: cp [选项] 源文件或目录 目标文件或目录
命令 | 说明 |
---|---|
cp a a_copy |
复制文件a,并命名为a_copy |
cp -R demo demo_copy |
复制目录demo,并命名为demo_copy |
[root@node100 /]# cp -R demo demo_copy
移动文件
mv
用途:移动文件,如果与源文件位置一样,则相当于重命名.
使用格式: mv [选项]... 源文件或目录 目标文件或目录
常用选项命令 | 说明 |
---|---|
mv a /demo |
将当前目录下的文件a移动到更目录下的demo目录里 |
[root@node100 /]# mv a /demo
查看文件内容
cat
用途:连接文件并打印到标准输出设备上
使用格式:cat [选项] 文件
常用选项命令 | 说明 |
---|---|
cat bb |
将文件bb内的内容全部打印出来 |
cat -n bb |
将文件bb内的内容全部打印出来,并显示行号 |
[root@node100 /]# cat -n bb
head
用途:在屏幕上显示指定文件的开头若干行,默认显示 10 行
使用格式:head [选项] 文件
常用选项命令 | 说明 |
---|---|
head cc |
打印文件cc内前十行的内容 |
head -15 cc |
打印文件cc内前15行的内容 |
[root@node100 /]# head -15 cc
tail
用途:在屏幕上显示指定文件的末尾若干行,默认显示 10 行。
使用格式:tail [选项] 文件
常用选项命令 | 说明 |
---|---|
tail cc |
打印文件cc内后十行的内容 |
tail -15 cc |
打印文件cc内后15行的内容 |
[root@node100 /]# tail -15 cc
more
用途:显示文件内容,每次显示一屏。
使用格式:more 文件
按键 | 说明 |
---|---|
按 Space 键 |
显示文本的下一屏内容 |
按 Enter 键 |
只显示文本的下一行内容 |
按 h 键 |
显示帮助屏,该屏上有相关的帮助信息 |
按 b 键 |
显示上一屏内容 |
按 q 键 |
退出 more 命令 |
less
用途:分屏上下翻页浏览文件内容
使用格式:less 文件
按键 | 说明 |
---|---|
按 e 键 |
向上滚动一行 |
按 y 键 |
向下滚动一行 |
G |
跳到文件末尾 |
g |
跳到文件首行 |
查找文件
find
findd的命令功能非常强大,通常用在“特定的目录下找符合条件的文件”
使用格式:find [路径] [选项] 表达式
常用选项命令 | 说明 |
---|---|
find *1 |
在当前目录下查找名字中最后一位为1的文件或目录 |
find / 1* |
表示从根目录中查找名字是1开头的文件或目录 |
find / -name *1* |
从根目录中查找名字中包含1的文件或目录 |
*注意:表示通配符
[root@node100 /]# find / -name *1*
清屏操作
clear
[root@node100 /]# clear
网络测试命令
ping
使用格式:ping ip地址或主机名称
[root@node100 /]# ping www.baidu.com
常用快捷键
tab
输入任何文件名或者目录名的部分字符,敲击
tab
键,它将会自动补充你需要的文件名,或显示全部可能出现的结果。
上下方向键或者CTRL+P、CTRL+N
↑
或CTRL+P
键显示上一条命令,↓
或CTRL+N
键显示下一条命令。
CTRL+U
清除光标前所有的内容。
CTRL+C
中断命令或任务,比如我们在ping网络的时候,可以使用
CTRL+C
来中断命令。
CTRL+R
在历史命令中查找,根据输入的字符进行模糊匹配,继续按
CTRL+R
,切换匹配的多个结果,按回车键选中,按ESC
选中。
复制粘贴
在Linux命令行中:复制
CTRL+INSERT
粘贴SHIFT+INSERT
关机和重启
poweroff
关机命令
reboot
重启
echo 输出
echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用
重定向 > 和 >>
> 表示输出,会覆盖文件原有的内容
>> 表示追加,会将内容追加到已有文件的末尾
vi文本编辑器
Linux中最常用的文本编辑器
vi:类Unix系统中默认的文本编辑器;
vim:vi编辑器的增强版本,习惯上也称为vi;
vi文本编辑器的作用和特性:vi可以执行插入、删除、查找、替换等众多文本操作,而且用户可以根据自己的需要对其进行定制,只是一个文本编辑器,不能排版;
vi没有菜单,只有命令 ;
vi的三种工作模式
vi有三种基本工作模式,分别是:
命令模式 (command mode):或叫一般模式
插入模式 (insert mode):或叫编辑模式
末行模式 (last line mode):命令行模式
vi操作命令
插入命令
按键 | 说明 |
---|---|
i | 在光标前插入 |
I | 在当前行首插入 |
a | 在光标后一位开始插入 |
A | 在当前行尾插入 |
o | 在当前行下面插入一个新行 |
O | 在当前行上面插入一个新行 |
定位命令
按键 | 说明 |
---|---|
$ | 移至当前行行尾 |
0 | 移至当前行行首 |
gg | 移到第一行行首 |
G | 移到最后一行行首 |
nG | 移到第n行行首 |
命令 | 说明 |
---|---|
:set nu | 显示行号 |
:set nonu | 隐藏行号 |
:n | 移到第n行 |
删除命令
命令 | 说明 |
---|---|
x | 删除光标所在的文字 |
nx | 删除光标后面的n个字符 |
X | 删除光标前面的一个字符 |
nX | 删除光标前面的n个字符 |
dd | 删除光标所在行 |
ndd | 删除从光标所在行开始向下数n行 |
复制和剪切命令
按键 | 说明 |
---|---|
yy、Y | 复制当前行 |
nyy、nY | 复制从当前行开始以下n行 |
p | 粘贴在当前光标所在行下 |
P | 粘贴在当前光标所在行上 |
替换和取消命令
按键 | 说明 |
---|---|
r | 替换光标所在处的一个字符 |
R | 进入替换模式,从光标所在处开始替换字符,按Esc结束 |
u | undo 撤销上一步操作 |
s(substitute)指令可搜寻某行列范围
g(global)指令可搜寻整个编辑缓冲区的资料
:%s/old/new/g # 将文件中所有的“old”替换成“new”
:10,20s/old/new # 将第10行至第20行第一次出现“old”的地方替换成“new”
:%s/^/hi/g # 在所有行的行首插入“hi”
:%s/$/goodbye/g # 在所有行的行尾添加“goodbye”
保存和退出命令
按键 | 说明 |
---|---|
:w | 保存修改 |
:q | 退出 |
:wq | 保存修改并退出 |
:q! | 强制退出 |
:wq! | 保存强制退出 |
系统时间管理
显示系统当前时间和时区
date
和date -R
[root@node100 ~]# date
[root@node100 ~]# date -R
格式化输出的选项
选项 | 说明 |
---|---|
%Y | 年 |
%m | 月 |
%d | 日 |
%H | 时 |
%M | 分 |
%S | 秒 |
[root@node100 ~]# date "+%Y_%m_%d %H:%M:%S" # 分隔符可自己定义
网络管理
ifconfig
查看当前所有活动网络接口的状态信息,如下图:
[root@node100 ~]# ifconfig
设置主机名
命令:hostname
查看主机名
[root@node100 ~]# hostname
CentOS 6修改主机名
编辑文件:/etc/sysconfig/network
[root@node100 ~]# vim /etc/sysconfig/network
CentOS 7修改主机名
编辑文件:/etc/hostname
[root@node100 ~]# vim /etc/hostname
配置主机映射
编辑文件:/etc/hosts
[root@node100 ~]# vim /etc/hosts
设置防火墙
CentOS 6命令
命令 | 说明 |
---|---|
service iptables status | 查看防火墙状态 |
service iptables start | 开启防火墙 |
service iptables stop | 关闭防火墙 |
CentOS 7命令
命令 | 说明 |
---|---|
systemctl status firewalld | 查看防火墙状态 |
systemctl start firewalld | 开启防火墙 |
systemctl stop firewalld | 关闭防火墙 |
进程管理
ps
命令
命令 | 说明 |
---|---|
ps | 查看系统进程的命令 |
ps -ef | 查看系统的所有进程的详细信息 |
[root@node100 ~]# ps -ef
kill
命令
命令 | 说明 |
---|---|
kill 进程号 | 结束进程 |
kill -9 进程号 | 强制杀死进程 |
用户和组
Linux是一个多任务多用户的操作系统,使用ls –l命令显示如下信息:
Linux用户类型
Linux用户信息相关文件:/etc/passwd 和 /etc/shadow
查看文件/etc/passwd 文件的内容
root:x:0:0:root:/root:/bin/bash
Linux组类型
Linux组信息相关文件:/etc/group 和 /etc/gshadow
查看文件/etc/group 文件的内容
hadoop:x:500:
\
用户操作
添加用户
useradd 用户名
设置密码
passwd 用户名
修改用户
usermod -l 新名字 旧用户名
删除用户
userdel -r 用户名
# -r 表示把用户及用户的主目录都删除
组操作
添加组
groupadd 组名
修改组
groupmod –n 新组名 旧组名
添加用户到组
gpasswd –a 用户 组
将组中的用户删除
gpasswd –d 用户 组
删除组
groupdel 组
创建用户指定组
useradd -g 组 用户
文件权限
-:标识节点类型(d:文件夹 -:文件 l:链接)
文件 | 文件夹 | |
---|---|---|
r | 可读取内容 | 可以ls |
w | 可修改文件的内容 | 可以在其中创建或删除子节点 |
x | 能否运行这个文件 | 能否cd进入到这个目录 |
数字权限值
除了用字母rwx来表示权限,还可以使用3位数字来表达文件或目录的权限。
每个数字是相应对象指派的以下三个值的和:
读:4
写:2
执行:1
修改权限
使用格式:chmod [选项] 符号 filename 或者 chmod [选项] 数值 filename
命令 | 说明 |
---|---|
chmod u=rwx demo |
设定demo目录的拥有者有读、写、和搜索或访问的权限,同时保证组和其它用户的原有权限不变 |
chmod ugo-rw demo 或者chmod a-rw demo |
任何用户对目录demo都没有读和写的权限 |
chmod -R ugo+rw demo |
设定所有用户对demo目录及以下所有文件都有读和写的权限 |
chmod 664 demo |
设定demo目录的拥有者和组用户有读和写的权限,其他用户只有读的权限 |
更改文件或目录的所有者和组
命令:chown
只修改
命令 | 说明 |
---|---|
chown 用户 文件 |
只更改所有者,而不更改组 |
chown :组名 文件 |
只更改组,而不更改用户 |
chown 用户:组 文件 |
同时更改文件的用户和组 |
计划任务
命令:crontab
功能:
在固定的间隔时间执行指定的系统指令;
时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合;
这个命令非常适合周期性的日志分析或数据备份等工作。
使用格式:crontab [-u 用户] [选项] (-u 用户:用来设定某个用户的crontab服务,若不指定则表示当前用户)
选项说明
选项 | 说明 |
---|---|
-e |
编辑某个用户的定时任务。 |
-l |
显示某个用户的定时任务。 |
-r |
删除某个用户的定时任务。 |
配置文件
* * * * * command
分 时 日 月 周 命令
第 1 列表示分钟 1~59 每分钟用*或者 */1 表示
第 2 列表示小时 0~23(0 表示 0 点)
第 3 列表示日期 1~31
第 4 列表示月份 1~12
第 5 列标识号星期 0~6(0 表示星期天)
第 6 列要运行的命令
特殊符号说明
“*” 代表取值范围内的数字
“/” 代表“每”,
“-” 代表从某个数字到某个数字,
“,” 分开几个离散的数字
配置示例
命令 | 说明 |
---|---|
*/10 * * * * echo 1 >> /a.txt | 表示每隔十分钟向a.txt追加数字1 |
30 21 * * * echo 1 >> /a.txt | 表示每晚的 21:30向a.txt追加数字1 |
55 5 1,15 * * echo 1 >> /a.txt | 表示每月 1、 15日的 5 : 55向a.txt追加数字1 |
0,30 18-23 * * * echo 1 >> /a.txt | 表示在每天 18 : 00 至 23 : 00 之间每隔 30 分钟向a.txt追加数字1 |
59 23 * * 6 echo 1 >> /a.txt | 表示每星期六的 11 : 59 pm 向a.txt追加数字1 |
压缩打包
gzip压缩
使用格式:gzip 文件名
gzip解压缩
使用格式:gzip -d *.gz格式的压缩文件
bzip2压缩
使用格式:bzip2 文件名
bzip2解压缩
使用格式:bzip2 -d *.bz2格式的压缩文件
压缩与解压缩:tar命令
tar打包
使用格式:tar -cvf 压缩名 文件名/目录
相关参数解释:
c: create,创建压缩文件
v: verbose,显示过程
f: file,指定文件
tar解包
使用格式:tar -xvf *.tar格式的打包文件
相关参数解释:
x: extract,解压缩文件,或者叫还原文件
tar打包并压缩(.tar.gz)
使用格式:tar -zcvf 打包压缩名 文件名/目录
相关参数解释:
z: gzip,通过 gzip 格式压缩或者解压缩
tar解包并解压缩(.tar.gz)
使用格式:tar -zxvf *.tar.gz格式的打包压缩文件
tar打包并压缩(.tar.bz2)
使用格式: tar -jcvf 打包压缩名 文件名/目录
相关参数解释:
j:支持 bzip2 压缩和解压缩
tar解包并解压缩(tar.bz2)
使用格式: tar -jxvf *.tar.gz格式的打包压缩文件
正则表达式
正则表达式概述
正则表达式(Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法,是一种字符模式,用于在查找过程中匹配指定的字符。 许多程序设计语言都支持利用正则表达式进行字符串操作。 正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。 支持正则表达式的程序如:locate |find| vi| grep| sed |awk
匹配邮箱、匹配身份证号码、手机号、银行卡号; 匹配某些特定字符串,做特定处理等等。
正则中普通常用的元字符
名词解释:
元字符:指那些在正则表达式中具有特殊意义的专用字符,如: 点 (.) 星(*) 问号(?)等。
前导字符:位于元字符前面的字符. abc* aooo.
元字符 | 功能 | 备注 |
---|---|---|
. | 匹配除了换行符以外的任意字符 | |
* | 前导字符出现0次或连续多次 | |
.* | 任意长度字符 | ab.* |
^ | 行首(以...开头) | ^root |
$ | 行尾(以...结尾) | bash$ |
^$ | 空行 | |
[] | 匹配括号里任意单个字符或一组单个字符 | [abc] |
[^] |
匹配不包含括号里任一单个字符或一组单个字符 | [^abc] |
^[] |
匹配以括号里任意单个字符或一组单个字符开头 | ^[abc] |
^[^] |
匹配不以括号里任意单个字符或一组单个字符开头 |
正则中其他常用元字符
元字符 | 功能 |
---|---|
\< |
取单词的头 |
\> |
取单词的尾 |
\< \> |
精确匹配 |
\{N\} |
匹配前导字符连续出现N次 |
\{N,\} |
匹配前导字符至少出现N次 |
\{N,M\} |
匹配前导字符出现N次与M次之间 |
\( \) |
保存被匹配的字符 |
\d |
匹配数字 |
\w |
匹配字母数字下划线 |
\s |
匹配空格、制表符、换页符 |
扩展类正则常用元字符
扩展元字符 | 功能 | 备注 |
---|---|---|
+ |
匹配一个或多个前导字符 | bo+匹配boo、bo |
? |
匹配0个或1个前导字符 | bo?匹配b、bo |
` | ` | 或 |
() |
组字符(看成整体) | (my|your)self:表示匹配myself或者yourself |
{N} |
前导字符重复n次 | |
{N,} |
前导字符重复至少n次 | |
{N,M} |
前导字符重复n到m次 |
表达式 | 功能 |
---|---|
[:alnum:] | 字母与数字 |
[:alpha:] | 字符(包括大小写) |
[:blank:] | 空格与制表符 |
[:lower:] | 小写字母 |
[:upper:] | 大写字母 |
[:punct:] | 标点符号 |
[:space:] | 包括换行符,回车等在内的所有空白 |
[:digit:] | 数字 |
grep
grep命令是一种强大的文本搜索工具,用于查找文件中符合条件的字符串,它能使用正则表达式搜索文本,并把匹配的行打印出来。
使用格式: grep [选项] "搜索内容" 文件名 [--color (将搜索结果中的搜索内容加颜色)]
常用选项 | 说明 |
---|---|
-i | 忽略大小写 |
-n | 输出行号 |
-v | 反向查找 |
[root@node100 /]# grep q a.txt --color
也可以使用上面的正则表达
[root@node100 /]# grep ^[0-9] a.txt --color
sed
sed是Stream Editor(流编辑器)的缩写,简称流编辑器;用来处理文件的
sed是一行一行读取文件内容并按照要求进行处理,把处理后的结果输出到屏幕。
首先sed读取文件中的一行内容,把其保存在一个临时缓存区中(也称为模式空间)
然后根据需求处理临时缓冲区中的行,完成后把该行发送到屏幕上,由于sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会直接修改原文件。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作,对文件进行过滤和转换操作
使用格式:sed [选项] '处理动作' 文件名
选项 | 说明 | 备注 |
---|---|---|
-e | 进行多项编辑 | |
-n | 取消默认输出 | 不自动打印模式空间 |
-r | 使用扩展正则表达式 | |
-i | 原地编辑(修改源文件) | |
-f | 指定sed脚本名称 |
动作 | 说明 | 备注 |
---|---|---|
'p' | 打印 | |
'i' | 在指定行之前插入 | 类似vim里的大写O |
'a' | 在指定行之后插入 | 类型vim里的小写o |
'c' | 替换指定行所有内容 | |
'd' | 删除指定行 |
1)打印文件内容
[root@tom ~]# sed -n 'p' a.txt # 打印每一行
[root@tom ~]# sed -n '1p' a.txt # 打印第1行
[root@tom ~]# sed -n '2p' a.txt # 打印第2行
[root@tom ~]# sed -n '1,5p' a.txt # 打印1到5行
[root@tom ~]# sed -n '$p' a.txt # 打印最后1行
2)增加文件内容
[root@tom ~]# sed '$a99999' a.txt # 文件最后一行下面增加内容
[root@tom ~]# sed 'a99999' a.txt # 文件每行下面增加内容
[root@tom ~]# sed '5a99999' a.txt # 文件第5行下面增加内容
[root@tom ~]# sed '$i99999' a.txt # 文件最后一行上一行增加内容
[root@tom ~]# sed 'i99999' a.txt # 文件每行上一行增加内容
[root@tom ~]# sed '6i99999' a.txt # 文件第6行上一行增加内容
[root@tom ~]# sed '/^bin/ih9999' # 以bin开头行的上一行插入内容
3)修改文件内容
[root@tom ~]# sed '5chello world' a.txt # 替换文件第5行内容
[root@tom ~]# sed 'chello world' a.txt # 替换文件所有内容
[root@tom ~]# sed '1,5chello world' a.txt # 替换文件1到5行内容为hello world
[root@tom ~]# sed '/^bin/c888888' a.txt # 替换以bin开头的行
4)删除文件内容
[root@tom ~]# sed '1d' a.txt # 删除文件第1行
[root@tom ~]# sed '1,5d' a.txt # 删除文件1到5行
[root@tom ~]# sed '$d' a.txt # 删除文件最后一行