1:线上查询及帮助命令:
man----------->查看命令帮助,命令的词典,更复杂的还有info,不常用
help------------>查看linux内置命令的帮助,
2:文件和目录操作命令(19个)
*ls------------>全拼list,作用是列出目录的内容,(用法:ls 回车
cd--------------> 作用是从当前工作目录切换到指定的工作目录。(用法:cd 目录名/绝对路径
cp------------->功能为复制文件或者目录。(用法:cp 目标名称 指定存放位置
scp----------->远程复制文件,(用法:scp 目标ip:绝对路径的目标文件名称 绝对路径的指定存放位置
*find------------>查找的意思,用于查找目录及目录下的文件 (用法:较多,一会在查。
mkdir---------->用于创建一个新的目录。(用法:mkdir 新的目录名称
touch---------->用于创建一个新的文件。(用法:touch 新的文件名称
mv---------->用于移动文件或者重命名文件。(用法:mv 目标文件名称 指定路径 *注意:在相对路径下移动同一个文件则可以实现改名
pwd------------>作用显示当前工作目录的绝对路径。(用法:pwd 回车
rename--------->作用是重命名文件,(用法:rename 目标文件名称 想要改的名称
rm------------>删除一个或多个文件或者目录。(用法:rm 目标文件名称/目录 *注意:rm -rf使用时确保无误,避免造成重大责任损失。
rmdir---------->作用 删除空额目录,(用法:rmdir 回车
tree---------->作用 以树形结构显示目录下的内容。 (用法:tree 回车
basename----------->显示文件名或目录名。(获取文件名,除去目录部分)(用法:basename 回车
dirname------------>显示文件或目录路径。(获取目录部分,除去文件名)(用法:dirname 目标文件名/目录名 回车
chattr--------------->改变文件的扩展属性。(用法:不会,稍后在查
lsattr------------>查看文件扩展属性,(用法:lsattr 文件名
file-------------->显示文件类型。(用法:file 文件名
md5sum-------------->计算和校验文件的MD5值
3:查看文件内容及处理命令 (21个)
cat----------->用于链接多个文件并且打印到屏幕输出或重定向到指定文件。(用法:cat 文件名
cat /proc/cpuinfo |grep vmx/smv--->查看inter/amd的cpu是不是支持虚拟化
cat /proc/cpuinfo------>查看cpu
tac------------>反向显示文件内容,(用法:tac 文件名
more---------->分页显示文件内容。(用法:more 文件名 *注意:使用指定键上下翻页。
less------------>分页显示文件内容,more命令的相反用法。(用法:less 文件名 *注意:使用指定键上下翻页。
head---------->显示文件内容的开头部分。(用法:head 文件名 *注意:head后面加上数字 可以显示指定数字的行数,如:head -10 显示文件开头十行
tail------------->显示文件尾部信息。(用法:tail 文件名 *注意:tail后面跟上数字可显示指定数字的相对的行数。如:tail -10 显示文件末尾十行。tail -f 日志文件名 可实现监控日志变化。
cut------------->将文件的每一行按指定分隔符分割并输出。(用法:待查
split---------->分割文件为不同的小片段。(用法:待查
paste---------->按行合并文件内容。(用法:待查
sort------------>对文件的文本内容进行排序。(用法:待查
uniq----------->去除重复行。(用法:待查
wc---------->统计文件的行数,单词数,字节数。(用法:wc 文件名
iconv------->转换文件的编码格式。(用法:待查
dos2unix----------->将DOS格式文件转化成UNIX格式。(用法:dos2unix 文件名
diff--------->比较文件的差异,常用于文本文件。(用法:待定
vimdiff------------>命令行可视化文件比较工具,常用于文本文件。(用法:待查
rev---------->反向输出文件内容。(用法:待查
grep/egrep-------->过滤字符串,三剑客之一。(用法:grep 目标字符串 目标文件/目录
join------------>按两个文件的相同字段合并。(用法:待查
tr---------->替换或删除字符。(用法:待查
tee---------------->输出结果的同时存入一个文件。
-a:追加
vi/vim--------->命令行文本编辑器。(用法:vi 文件名
lsmod----->查看模块
modprobe------>智能地向内核中加载模块或者从内核中移出(用法:modprobe ip_vs)
-a:载入全部模块
-c:显示所有模块的设置信息
-d:使用排错模式
-l:显示可用的模块
-t:指定模块类型
-V:显示版本信息
-v:执行时显示详细信息
4:文件压缩命令
tar--------->打包压缩。(用法:tar 太多待查
unzip-------->解压文件。(用法:unzip 文件名
gzip---------->压缩工具。(用法:太多,待查
zip-------->压缩工具。(用法:太多,待查
5:信息显示命令
uname---------->显示操作系统相关显示命令。(用法:uname 回车
-a:查看系统版本号及系统名称
hostname---------->显示或者设置当前系统主机名。(用法:hastname 主机名 *注意:此为临时设置,另:hostnamectl set-hostname 主机名:可实现永久修改主机名
dmesg---------->显示开机信息,用于诊断系统故障。(用法:dmesg 回车
uptime---------->显示系统运行时间及负载。(用法:uptime 回车
stat----------->显示文件或文件系统状态。(用法:stat 回车
netstat--------->查看网络链接状态。(用法:netstat anpt/anpu/r 回车
-a:显示当前系统中的所有链接
-n:禁用DNS反向解析(以数字的形式显示ip端口号等信息)
-p:显示相应的进程编号
-t:只显示tcp链接信息
-u:只显示udp信息
-r:显示路由表
du------------->计算磁盘空间使用情况。(用法:du 回车
df---------->报告文件系统磁盘空间的使用情况。(用法:df -hT 回车
top------------->实时显示系统资源使用情况 。(用法:top 回车/待查
free---------->查看系统内存情况。(用法:free 回车
date--------->显示与设置系统时间。(用法:date 回车 *注意:ntpdate ntp1.aliyun.com--->同步时间
cal----------->查看日历等时间信息。(用法:待查
route--------->查看路由表。(用法:route -n 回车
-n:禁用DNS反向解析
curl--------->访问网址,用于测试。(用法:curl www.name.com
-I:大i,之抓取头部信息
traceroute----------->追踪网络ip数据包。(用法:待查
nslookup---------->验证DNS解析。(用法:nslookup 指定IP 回车
dig-------->验证DNS解析
ifconfig------->查看系统中的网卡信息。(用法:ifconfig -a 回车
-a:列出所有网卡信息。
ifconfig 网卡名:子网卡名 子网卡IP/短格式子网掩码------>设置子网卡
showmount -e 本机IP------------>查看当前主机对外共享了什么目录
pgrep -t pts/0 -1---------->显示当前shell的pid
java -version-------------->查看当前java环境
cpuinfo------->查看当前服务器的cpu信息 (用法:cat /proc/cpuinfo
cat /proc/cpuinfo |grep "physicalid" | uniq | wc -l -------->查看机器一共几个cpu(物理机)
cat /proc/cpuinfo | grep "cpu cores" | uniq------>查看单个cpu的物理核数
cat /proc/cpuinfo | grep "processor" |wc -l------>查看逻辑核数
5:搜索文件命令
which------->查找二进制命令,按环境变量PATH路径查找。(用法:which 目标命令
find--------->从磁盘里查找文件或目录。(用法:待查
whereis------->查找二进制命令,按环境变量PATH路径查找。(用发:whereis 目标名称
locat--------->从数据库(/var/lib/mlocate/mlocate.db)查找命令,使用updatedb更新库。(用法:待查
6:用户管理的基本命令
userdel------->删除用户。(用法:userdel 用户名
useradd------->增加用户。(用法:useradd 用户名
选项待查
usermod-------->修改系统已经存在的用户属性。(用法:usermod 属主:属组 用户名
groupadd--------->添加用户组。(用法:groupadd 用户名 组名
passwd------>修改用户密码。(用法:passwd 用户名
chage------->修改用户密码有效期。(用法:待查
id----------->查看用户的uid gid 及归属的用户组,(用法:待查
su--------->切换用户身份。(用法:su 用户名
sudo----->以另一个用户的身份(默认root用户)执行是事先在sudoers文件允许的命令。(用法:sudo 用户名
visudo-------->编辑/etc/sudoers文件的专属命令。
基础网络操作命令
telnet--------->使用TELNET 协议远程登录。(用法:telent 目标IP 端口--->查看端口是否管用,注意:目标ip可以换成域名
ssh---------->使用SSH加密协议远程登录。(用法:ssh:待查
scp-------->用于不同主机之间复制文件。(用法:scp
wget--------->命令行下载文件。(用法:wget
ping--------->测试网络连通性。(用法:ping 指定ip 回车
-c:指定发送数据包的个数
-i:ping通后间隔多少秒发送下一个包
-s:指定ping包大小
-w:失败后隔多久退出当前ping命令
ifup------>启动网卡。(用法:ifup
ifdown--------->关闭网卡。(用法:ifdowm
netstat-------->查看网络状态。(用法:netstat -anpt
ss--------->查看网络状态。(用法:ss
深入网络操作命令
nmap-------->网络扫描命令。(用法:nmap 回车
nmap -Pn 目标网段.0/24 1-65535--->查看同网段其他机器开放了哪些端口
lsof------>列举系统中已经被打开的文件。(用法:lsof 回车
-i:指定端口号查看是否打开。
mail------>发送和接受邮件。
mutt------>邮件管理命令。
host------>查询DNS的命令。(用法:host
tcpdump------>命令行的抓包工具。(用法:tcpdump 回车
ss –lntpu------>查看本机开放的端口
nc -zv------>查看本机开放的端口
有关磁盘与文件系统的命令
mount-------->挂载文件系统。(用法:mount 目标名称 挂载点
-o:挂载一个文件到目录上。(用法:mount -o loop 镜像文件名 /目录
mount -o rw,remount /---->以读写模式重新挂载根目录
umount------->卸载文件系统。(用法:umount 目标名称
fsck------->检查并修复linux文件系统 (用法:fsck 回车
dd--------->转换或复制文件。(用法:dd if= of= 待查
dumpe2fs-------->导出ext2/ext3/ext4文件系统信息。(用法:dumpe2fs 待查
dump-------->ext2/3/4文件系统备份工具。(用法:dump 待查
fdisk-------->磁盘分区命令,适用于2TB以下磁盘分区。(用法:fdisk 待查
parted------->磁盘分区命令,没有磁盘大小限制。(用法:parted 待查
mkfs---------->格式化创建linux文件系统。(用法:mkfs 待查
partprobe--------->更新内核的硬盘分区表信息。(用法:partprobe 待查
e2fsck--------->检查ext2/ext3/ext4类型文件系统。(用法:e2fsck 待查
mkswap-------->创建linux交换分区。(用法:mkswap 待查
swapon------->启用交换分区。(用法:swapon 待查
swapoff------->关闭交换分区。(用法:swapoff 待查
sync----------->将内存缓冲区内的数据写入磁盘。(用法:sync 待查
resize2fs---------->调整ext2/ext3/ext4文件系统大小。
mdadm------>创建软raid的命令。(用法:待查。
mdadm –C 设备名 –l 级别 –n 磁盘数目被做的分区
6:系统权限及用户授权相关命令
chmod----------->改变文件或目录的权限。(用法:chmod 421 目标文件或目录
chown--------->改变文件或目录的属主属组。(用法:chown 属主:属组 目标文件或目录
chgrp--------->更改文件用户组。(用法:chgrp 待查
umask-------->显示或设置权限掩码。(用法:umask 待查
7:查看系统用户登录信息的命令
whoami----------->显示当前有效的用户名称,相当于执行id -un命令 (用法:whoami
who------------>显示目前登录系统的用户信息 (用法:who 回车
w-------->显示已经登录系统的用户列表,并显示用户正在执行的命令。(用法:w 回车
last------->显示登入系统的用户。(用法:last 回车
lastlog------>显示系统中所用用户最近一次的登录信息。(用法:lastlog 回车
users-------->显示当前登录系统的所有用户的用户列表。(用法:users 回车
finger---------->查找并显示用户信息。(用法:finger 待查
8:内置命令及其他
echo----->回显,或直接输出指定的字符串。 (用法:echo 指定字符串
printf--------->将结果格式化输出到标准输出,俗称打印 (用法:printf 待查
rpm-------->管理rpm包的专用命令。(用法:rpm 待查
yum------>自动简单话管理rpm包的命令。(用法:yum 待查
watch------>周期性执行给定的命令,并将命令的输出以全屏方式显示。(用法:watch 待查
alias--------->设置系统别名。(用法:alias 待查
unalias-------->取消系统别名。(用法:unalias 待查
date------>查看或设置系统时间。(用法:date 待查
clear------>清楚屏幕。简称清屏。(用法:clear 回车
history------>查看命令执行的历史记录 (用法:history 回车
eject---------->弹出光驱。(用法:eject 待查
time-------->计算命令执行时间。(用法:time 待查
nc--------->功能强大的网络工具。(用法:nc 待查
xargs------->将标准输入转换成命令行参数。(用法:xargs 待查
exec--------->调用并执行指令的命令。(用法:exec 待查
export--------->设置或显示环境变量。(用法:export 待查
unset--------->删除变量或函数。(用法:unset 待查
type--------->用于判断另外一个命令是否是内置命令。(用法:type 待查
bc--------->命令行科学计算器。(用法:bc 回车
9:系统管理与性能监视命令
chkconfig-------->管理linux系统开机启动项。( 用法:chkconfig 待查
vmstat---------->虚拟内存统计,(用法:vmstat 回车
mpstat------->显示各个可用cpu的状态统计。(用法:mpstat 回车
iostat--------->统计系统IO (用法:iostat 回车
sar------->全面地获取系统的CPU 运行队列 磁盘 I/O 分页(交换区) 内存 cpu中断和网络等性能数据。(用法:sar 回车
ipcs-------->用于报告linux 中进程间通信设施的状态 显示的信息包括消息列表 共享内存和信号量的信息。(用法:ipcs 回车
ipcrm---------->用来删除一个或更多的消息队列,信号量集或者共享内存标识。(用法:ipcrm 待查
strace---------->用于诊断 调试Linux用户空间跟踪器 我们用它来监控用户空间进程和内核的交互 比如系统条用 信号传递 进程状态变更等 (用法:strace:待查
ltrace--------->命令会跟踪进程的库函数调用,它会显示出哪个库函数被调用。(用法:ltrace 待查s
iptables -L----->查看防火墙
10:关机/重启/注销和查看系统信息的命令
shutdown-------关机 (用法:shutdown 回车
halt ------->关机 (用法:halt 回车
poweroff------->关闭电源 (用法:poweroff 回车
logout----------->推出当前登录的shell (用法:logout 回车
exit---------->退出当前登陆了的shell (用法:exit 回车
ctrl d------>退出当前登录的shell 的快捷键
11:进程管理命令
bg------>将一个后台暂停的命令,变成继续执行(在后台执行) (用法:bg 回车
fg--------->将后台中的命令调制前台继续运行 (用法:fg 回车
jobs---------->查看当前有多少后台运行的命令 (用法:jobs 回车
kill---------->终止进程 (用法:kill 进程编号 *详情:待查
killall----------->通过进程名称终止进程 (用法:kiall 进程名字
pkill-------------->通过进程名终止进程 (用法:pkill 进程名称
crontab-------->定时性任务 (用法 crontab 待查
ps----------->显示进程的快照 (用法:ps 待查
pstree--------->书形式显示进程 (用法:pstree 待查
nice/renice--------->调整程序运行的优先级 (用法:待查
nohup------->忽略挂起信号运行指定的命令 (用法:待查
pgrep-------->查找匹配条件的进程 (用法:待查
runlevel---------->查看系统当前运行级别 (用法:待查
init----------->切换运行级别 (用法:init 0/6
service--------->启动 停止 重新启动 和关闭服务系统 还可以显示所有系统服务当前状态 (用法:待查
systemctl-------->启动 停止 重新启动各种系统服务。(用法:待查
需要安装才能使用的命令
telent----->*待查
正则三剑客(grep sed awk)
grep--------->文本搜索工具,可以用于在文本文件中搜索指定格式(正则表达式)的字符串,并将匹配到的进行输出。
#用法:grep 选项 查找条件 目标文件
-i:忽略大小写
-n:显示行号
-c:仅显示匹配到的目标所在行。(-C n:显示n行的上下n行
-o:仅显示匹配到的字符串,不显示同行的其他内容。
-w:精确匹配单词。
-v:反向查找,查找不包含关键行的字。
-E:使用正则表达式(或者使用egrep)
-A:表示过滤出前几行
-B:表示过滤出后几行
正则表达式元字符的定义。
"^"和"$"---->用来位置锚定,(用法:grep -E "^abc" 文件名称--->在该文件内查找以abc开头的行。grep -E "abc,$" 文件名称--->在该文件内查找以abc,结尾的行。
"."---->表示匹配任意字符,(用法:grep "s..g" 文件名称------>在该文件内查找以s开头,g结尾的单词。
"[ ]"---->括号里面可以写想要匹配的字符,(用法:grep "^[Ss]" 文件名称--->在该文件匹配以S或s开头的行。
括号里还可以写[0-9]---->表示匹配0到9其中一个数字。[a-z]----->表示匹配单个小写字母。[A-Z]--->表示匹配一个大写的字母。[a-zA-Z]--->表示匹配任意一个字母,任意大小写。"[A-Z][a-z][a-z][a-z]"--->表示匹配首字母大写,其他小写的四个字母的单词
(用法:grep -E "[0-9]" 文件名称
“^"---->该字符写在中括号内的话,表示取反。(用法:grep -E "[^a-zA-Z]" 文件名称--->表示匹配所有除了字母外的所有的符号。
"?"-------->表示匹配0次或1次,(用法:grep -E "s?ng" 文件名称--->表示s被匹配到0次或者1次。所以sng或者ng都可以被匹配到。
"+"------->表示匹配至少1次。(用法:grep -E "s+ng" 文件名称--->表示s只至少要匹配一次,可以是sng或者ssng,但是单独的ng就匹配不到了。
"*"------>表示匹配到任意次,可以是0次也可以是1次,也可以是多次。(用法:grep -E "s*ng" 文件名称--->表示可以匹配到sng或者ssng,也可以单独的匹配到ng.
注意:"*"可以与"."搭配。(用法:".*"--->表示匹配任意数量的任意字符,比如:grep -E "s.*g" 文件名称--->表示匹配所有以s开头,以g结尾的单词
"{ }"---->用于表示明确的匹配次数。(用法:grep -E "so{2}g" 文件名称--->表示sog中间要匹配2个字母o,最后得到的结果是soog.
注意:"{ }"-->也可以指定一个匹配次数的范围,比如:"{2,3}"-->表示匹配2次到3次,"{2, }"--->表示匹配最少2次,最多不限。(用法:grep -E "go{2, }d" 文件名称
"( )"---->可以将括号内的所有字组合在一起作为一个整体处理。(用法:grep -E -i "(good){2}" 文件名称--->表示在该文件内不区分大小写的匹配good是否连续出现过2次。
sed:强大文本处理器,以文本行为单位,逐一处理,
sed 选项 '动作命令' 文件名称----->sed命令使用格式。
sed 选项 -f 脚本文件 文件名称------>sed的脚本格式。
选项:
-e:直接在命令模式上进行sed动作编辑,此为默认选项。
-f:将sed的动作写在一个文件内,用-f filename 执行文件内的sed动作。
-i:直接修改文件内容。
-n:只打印模式匹配的行。
-r:支持扩展表达式。
-h或--help:显示帮助。
-v或--version:显示版本信息。
sed常用命令
a \:即append追加字符串,可将其后的字符加在所选择内容的后面。
c \:取代/替换字符串,可将其后内容替换成所选内容,
i \:即insert插入字符串,可将其后内容插入所选内容前。
d:即delet删除,该命令会将当前选中的行删除
p:即print打印,该命令会打印当前选择的行到屏幕上。
s:替换,通常s命令的用法是这样的。s/old/new/g ,将old字符串换成new字符串。
命令实列:a命令:追加
sed '1a \qiyan' filename---->在filename中的第一行后追加字符qiyan. 数字1表示第一行,也可以写成2,或者写一个范围从1到4写成1,4。用$表示最后一行,比如2,$表示从第二行到最后一行所有行(包括第二行和最后一行)
sed '1,$a \qiyan' filename----->在filename中从第一行到最后一行所有行下面都加上qiyan。
sed '/song/a \qiyan filename----->表示在filename中的包含song所在行的下面追加qiyan
sed '/^ha.*day$/a \qiyan filename----->表示在filename中匹配到以ha开头day结尾的所在行下面追加qiyan
i命令:插入
注意:i命令的使用方法和a一样,只不过i是在匹配的行的前面插入字符串,所以直接将上面的a改成i即可。
c命令:替换
sed '$c \qiyan' filename---->将filename中的最后一行替换成qiyan. $也可是写成一个数字表示将第几行的内容替换。
sed '4,$c \qiyan' filename---->将filename中的第4行到最后一行内容替换成qiyan
sed '/^ha.*day$/c \qiyan' filename---->将filename中的以ha开头day结尾的行替换成qiyan
d命令:删除
sed '/^ha.*day$/d' filename----->将filename中以ha开头day结尾的行删除。
sed '4,$d' filename----->将filename中从第4行到最后一行中的内容删除。
sed '1,4p' filename---->打印从第一行到第四行的内容。
sed 's/old/new/g' filename----->全局替换,将old替换成new----------》不太对。需要转义可能,问老师
AWK:一种优良的文本处理工具,(本身也是一种编程语言),可以同时对一个或多个文件执行。
基本格式:
awk 选项 '{pattern action}'
awk 选项 'pattern {action}'------>其中pattern表示awk在数据中查找的内容,action是再找到匹配的内容时所执行的一系列命令。花括号{}不需要在程序中始终出现。但他们用于根据特定的模式对一系列指令进行分组。
选项:
-F:用来指定字段的分隔符,默认为空格,可以指定多个分隔符,例:-F '[ ,]'--->指定以空格或者,为分隔符。(用法:awk -F ':' '{print $1,$4,$5}' filename 还有可以用每列以TAB分割,将$1,$4,$5之间的逗号换成"t"
-v:赋值一个定义变量。(用法:awk -va=1 '{print $1,$1+a}' filename--->定义变量a=1 打印出第一列($1)同时第一列加上a(也就是$1+a)的结果也输出。可同时定义多个变量,例:awk -va=1 -vb=s '{print $1,$1+a,$1b} filename--->定a=1 b=s 输出第一列和第一列加上a和第一列后缀b的结果
-f:从脚本文件中读取awk命令。首先要编写好一个对应的awk脚本。(用法:awk -f awk脚本 filename
awk '/要匹配的字符/' filename---->在filename中匹配到相应的字符默认以空格我分隔符,没有动作命令,默认为输出匹配字符所在行的每行的内容。
awk -F '分隔符' '/要匹配的字符/' '{对匹配到的字符要执行的动作(命令)}' filename---->以指定的分隔符,匹配到相应的字符,对该字符执行对应的动作,
awk 'BGEIN {预定义变量} /匹配目标/{动作命令} END{动作命令}' filename--->模块式表达,一版应该用在脚本内,(不太清楚,待定)
awk内置变量:(预定义变量)
ARGC:命令行参数个数。
ARGV:命令行参数排列。
ENVIRON:支持队列中系统环境变量的使用。
FILENAME:awk当前正在处理的文件名。
FNR:浏览文件的记录数。
FS:设置字段的分隔符。等同于命令行-F选项。
NF:表示字段(域)的意思,俗称叫列。
NR:表示已读的记录数,也就是行数。
OFS:输出字段分隔符,
ORS:输出记录分隔符。
RS:控制记录分隔符。
$:该符号表示一行中的列。$数字,表示第几列。
$0:表示整行。
awk支持的正则表达的元字符。
^--->字符串开头。(用法:/^song--->匹配所有以song开头的行。
$---->字符串结尾。(用法:/song$--->匹配所有以song结尾的行。
.--->匹配任意单个字符包(包括回车符)。(用法:/s..g/--->匹配字母s,然后匹配任意两个字付,再以g结尾,比如song.
*--->重复0个或多个前一个字符。(用法:/s*ong/--->匹配0个或多个s后,紧跟着ong的行,比如,ong, sssong
+--->重复前一个字符一次或一次以上。(用法:/s+g/--->匹配一个或多个s加g的行,比如:sg , sssg.
?--->匹配0个或一个前导字符。(用法:/s?g/--->匹配g或sg的行。
[ ]--->匹配指定字符组内的任意一个字符,(用法:/^[sog]/--->匹配以字母s或o或g开头的行。
[^]--->匹配不在字符组内的任意一个字符,取反。(用法:/^[^sog]/--->匹配不以字母s或o或g开头的行。
( )--->子表达式组合,(用法:/(song)+/--->表示一个或(song)的组合,个人理解为将song看成一个整体。当需要匹配这个整体时就用小括号括起来。
|--->或者的意思。(用法:/(song)|L/--->匹配song或者字母L的行。
扩展元字符:
x{y}--->表示把字符x重复匹配y次,(用法1:/song{3}/--->表示匹配字符song并且把g匹配3次。用法2:/(song){2}/--->表示匹配字符song并且把song整体匹配2次
x{y,}--->表示把字符x至少重复匹配y次,(用法1:/song{3,}/--->同上,用法2:/(song){2,}/--->同上。
x{y,z}--->表示把字符x至少重复匹配y次,但不超过z次。注意:需要添加参数--posix. (用法1:/song{3,4}/--->表示匹配字符song并且匹配g最少3次,不超过4次。用法2:/(song){2,3}/--->表示匹配song并且匹配song最少2次,不超过3次
正则匹配操作符
~--->用于对行或列的表达式进行匹配。(用法:待查
!~---->用于表达与~相反的意思。(用法:待查。
awk支持的关系运算符:
==--->等于。(用法:x==y
!=--->不等于。(用法:x!=y
>=--->大于或等于。(用法:x>=y
>---》大于。(用法:x>y
mysql数据库基础命令。
mysql -u用户名 -p用户密码----->登录到本地数据库。
mysql -h主机地址 -u用户名 -p用户密码----->远程登录到该数据库。
exit--->退出数据库。
mysqladmin -u 用户名 -p 旧密码 password 新密码----->给mysql数据库修改密码。
show databases;----->显示当前数据库服务器中的数据库列表。
create database 库名;----->在数据库中建立一个库,
use 库名;----->切换库。
create table 表名 (字段名 varchar(20), 字段名 char(1));----->在当前库中建立一个表。(用法:create table 库名.表名 (字段1 数据类型 [是否为空] [默认值],字段2 数据类型 [是否为空] [默认值],....)
describe 库名.表明;----->查看表的结构。
drop database 库名;----->删除指定库名。
drop table 表名;----->删除指定表名。
delete from 表名;----->将表中记录清空。
alter table 库名.表名 add (字段1 数据类型(默认值),字段2 数据类型(默认值));----->在对应的表内添加一列,字段可多写。
alter table 库名.表名 drop 字段名;----->删除对应的一列。
alter table 库名.表名 change 字段名 新字段名 数据类型(默认值);----->更改一列。
insert into 库名.表名(字段1,字段2,字段3,) values(字段1的值,字段2的值,字段3的值,);----->对相应的字段写入数据(值)。字段可多写。值对应相应的字段。注意:插入数据时,值的部分除了数字以外,其他字母汉字等符号都需要用单引号括起来
insert into 库名.表名 values(字段1的值,字段2的值,字段3的值,);----->同样时插入数据,*但是注意输入的值,必须能够和全部的字段名称一一对应
select 字段1,字段2, from 库名,表名;----->根据字段信息查看对应的表。(注意:高危操作。!!!
select * from 库名,表名;----->查看表名中的所有数据。(注意:高危操作!!!
update 库名,表名 set 字段名=字段值 where 字段名=字段值;----->精准的修改表名中的数据。(翻译:where找到对应的行,set修改对应行下的一列,
例:
update kgc.yun210 set age=18 where name='王洪伟';
注释:
where用于找到对应行,找到name为王洪伟的这一行,set用于修改age这一列
delete from 库名,表名 where 字段名=字段值;----->删除对应表名中的对应的字段名所在的行。
select 字段名 from 库名.表名 where 条件表达式;----->按照条件查找对应的数据。
例:
select * from kgc.yun210 where id=3;
select 字段名 from 库名.表名 where 字段名 like '查询条件';----->按照查询条件在表名中查找对应的字段名。(like:像 大概的意思) 俗称:模糊查询
例:
select age from kgc.yun210 where name like '赵%';
select max(字段名) from 库名.表名;----->求出该字段名的最大值。
select min(字段名) from 库名.表名;----->求出该字段名的最小值。
select avg(字段名) from 库名.表名;----->求出该字段名的平均值。
select sum(字段名) from 库名.表名;----->求出该字段名的和。
select 字段名 from 库名.表名 where 字段名=(另外一个查询sql语句);----->嵌套查询
例:查询薪资最高的人的人名
select name from kgc.yun210 where 薪资=(select max(薪资) from kgc.yun210);
as a----->定义前面子语句查询结果为一个a ,俗称:起别名。通常用在一个sql语句的后面
例:
select id,name from (select id,name,age,sex,time from kgc.yun210) as a;
as a表示将前面子语句的查询结果定义一个别名为a--------->(不太懂有啥用。
select * from 库名.表名 order by 字段名 desc/asc;------->排序查询
例:
select name,薪资 from kgc.yun210 order by 薪资 desc;---->递减。
select name,薪资 from kgc.yun210 order by 薪资 asc;----->递增。
select * from 库名.表名 group by 字段名;------>分组查询。
例:
select avg(薪资),部门 from kgc.yun210 group by 部门;---->查寻该部门的平均工资
select * from 库名.表名 where 字段名 between 字段值1 and 字段值2;----->范围查询。(between:什么与什么之间
例:
select * from kgc.yun210 where time between '2020-07-09 22:31:00' and '2020-07-09 22:33:00';
select * from 库名1.表名1,库名2,表名2, where 表1.字段名=表2.字段名;----->多表联合查询,可以多写几个表按照where的条件一起查。
例:
select name,余额,部门 from kgc.yun210 as a,kgc.zhanghu as b where a.id=b.id;
//通过定义别名的方式进行多表联查
:插入数据是默认直接插入当前时间,及id号的自增
create table yun210(id int(10) auto_increment,time timestamp default current_timestamp,primary key(id) );
grant----->授权命令
用法:
grant {权限列表} on 库名.表名 to 用户名@'允许登录用户的主机IP' identified by '密码';
show grants----->查看权限
用法:
show grants;----->查询当前登录用户的权限
show grants for 用户@'允许登录的主机ip';----->查询特定用户的权限
revoke------>撤销权限
用法:
revoke {权限列表} on 库名.表名 from 用户名@'允许登录的主机ip';
flush privileges;----->权限刷新命令。通常在使用完grant或者 revoke后使用该命令。
注意:修改数据命令在某种情况下也可当做删除使用(就是可以将修改的内容改为空)。
kvm虚拟机常用命令:
virt-manager:开启图形配置界面
virt-install:命令行中新建虚拟机
qemu-img:定义新的虚拟机硬盘文件
virsh list --all:列出当前服务器中的所有虚拟机
virsh start :启动相应虚拟机
virsh shutdown :正常关闭相应虚拟机
virsh destroy :强制关闭相应虚拟机
virsh suspend :暂停相应虚拟机
virsh resume :从暂停状态中恢复
virsh reboot :重新启动相应虚拟机
virsh snapshot-create :建立快照
virsh snapshot-list :列出快照
virsh snapshot-revert :恢复快照
virsh snapshot-delete :删除快照
virt-clone -o -n -f
virsh undefine :删除虚拟机
docker的命令:
docker search----->用于在仓库中搜索镜像。(用法:docker search 目标镜像
docker pull 镜像名称-------->下载镜像
docker imager------>用于查看下载到本地的镜像
docker build----->通过dockerfile文件及现有镜像构建一个新的镜像
docker exec it 容器名称或id /bin/bash ----->进入一个容器,生成一个命令行,去掉it就是不进入容器就可以使用命令
docker cp 本地路径 容器id:容器中的路径 ----->用于将本地宿主机的文件拷贝到容器内,反过来用的话即可将容器内的文件复制到宿主机内
ctrl+p+q----->同时按,可以挪到后台
docker run------>通过镜像生成一个容器,并运行。(用法:docker run 选项 镜像名称或id
-i:允许与容器进行交互操作
-t:给容器一个终端(就有了命令行)
-d:将容器放在后台运行。(有的可以直接放后台(例如程序镜像,有的要使用交互(例如系统镜像
--name:指定镜像的名称,不指定的话,名称随机
-p:指定容器和宿主机之间的端口映射,(格式-p 宿主机端口号:容器中端口号。
-m:用于限制容器可以使用的内存大小。
--memory-swap:用于限制容器的交换分区大小(注意该选项设置的时物理内存+交换分区的总大小,所以该值的设置不能小于-m选项设置的值 (用法:--memory-swap=设置内存大小
-c:用于设置容器使用cpu时间的权重值,默认1024(如果没有指定容器的资源使用限制,容器将会可以使用宿主机的全部资源,但是如果资源占用过高cpu资源时,会优先关闭容器,来释放资源
--cpuset-cpus:用于设置容器可以使用哪些cpu核心。(用法:--cpuset-cpus=cpu核心号
--oom-kill-disable:启用该选项,可以禁止宿主机在出现资源不够用时,关闭容器的操作,(使用格式--oom-kill-disable=true
docker stats------>动态查看一个容器的而运行状态(用法:docker stats 目标id (不跟指定容器的话默认显示所有每隔一秒显示一次
--no-stream:只显示一次
docker create -------->创建一个容器,不运行
docker start 容器名称或id-------->启动一个容器
docker stop 容器名或者id------>停止一个正在运行的容器
docker pause 容器名称或者id----->暂停
docker unpause 容器名或id------>取消暂停
docker ps -a-------->查看容器(如果去掉-a只能查看当前正在运行的容器,
-q:至查看id号
docker attach------>用于进入一个后台运行的用于交互界面的容器(用法:docker attach 容器名称或编号
docker rm 容器名称或id----->删除一个已经停止的容器,如果容器在运行需要强制删除的话,加上-f选项
-f:强制删除,
docker rm -f $(docker ps -aq)---->一次性删除所有容器
docker rmi 镜像名称或id----->删除一个镜像(删除前确保没有正在运行的容器在依赖该镜像
docker rmi $(docker images -q)----->一次性删除所有镜像
docker commit 容器名或id 新镜像名称及tag标志 ---->动过现有的容器 转换成以恶搞新的镜像。
注意:虽然commit可以将容器转换成镜像,但是在制作新镜像的过程中很少使用这种方式,通常还是用
docker bulid配合dockersfile生成镜像,该命令不能在生成新景象时指定
新镜像启动的时默认运行的命令。
docker diff 容器名称或id---->用于比较当前同期和源镜像的差异
docker events----->监控容器本身的状态变化(开始,暂停,关闭)
docker export 容器名称或id > 自定义名字.tar---->将目标容器打包导出,
docker import 自定义名字.tar 新的镜像名称----->将本地有export 命令导出的文件加载会docker变成一个新镜像。
注意:经过导出导入操作后,原来的镜像设置的默认运行命令将会效,所以用镜像进行运行容器
时,需要额外手动指定容器要执行的命令 export/import都是针对容器的操作
docker save 镜像名称:标志 > 自定义文件名---->将一个镜像导出到本地,
注意:导出时尽量用指定镜像名导出,不然导回来时会没有名字
docker load < 自定义文件名------->用于将一个保存域本地镜像文件导入docker
docker tag 镜像名称:标志 新的镜像名称----->复制一个镜像,(复制结果可以改名
docker logs 容器id ---->显示容器中的进程回显的内容。
docker port 容器名称或id ----->查看容器进程端口映射关系
docker rename 容器id 新名字---->修改容器的名称。
docker restart 容器名或编号 ---->用于重启一个容器
docker top
docker histroy 镜像名称:标志----->查看镜像的修改情况
docker info ---->输出当前的docker属性。
docker inspoct 镜像名称:标志---->数以个镜像的星系
docker kill----->杀死容器(高危,慎用!
docker update------->用于给现有容器修改使用资源限制,选项和docker run一样
docker version and wait----->查看版本,捕捉docker的返回状态码。
docker volume create 卷名-----> 创建一个volume卷
docker volume prune------>删除所有没有运行的卷
docker run -dit --name=容器名 --mount src=容器卷名,dst=/usr/share/nginx/html
每一个卷的本地数据保存路径为/car/lib/docker/volumes/卷名/_data
docker run 选项 --mount type=bind,src=宿主机需要挂载额目录的绝对路径,dst=被挂载到的路径
docker run -dit -v 挂载目标:挂载到的路径
docker network create -d 网路类型 --subnet 自定义一个名字----->用桥接模式建立一个网络
网络类型:
1
docker network ls----->查看docker当前网络
docker run -dit --name=容器名称 --network=网络名称 -ip=目标ip 目标镜像---->创建容器到指定的网段