自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 1 系统监测工具

1 系统监测工具常用工具tcpdump常用的选项常用的表达式逻辑操作符lsof常用工具LInux提供了很多方便开发人员调试和测评服务的工具,本节按照使用频率依次介绍这些工具: tcpdump 、 lsof、 netstat、strace、 nc 、 vmstat 、 ifstattcpdump常用的选项tcpdump是一款网络抓包工具,他给使用者提供了大量的选项,用来过滤数据包。参数 -n:使用IP地址表示主机而不是主机名;使用数字表示端口号,而不是服务名;参数 -i:指定要抓包的网卡,-i

2021-04-05 19:50:21 417

原创 c++中数值运算的几个函数

以下几个函数都要包含头文件<numeric>1 itoa函数先看函数原型template<class _FwdIt, class _Ty> inlinevoid iota(_FwdIt _First, _FwdIt _Last, _Ty _Val)这个函数先把value赋值给*first, 再奖value++, 再把value赋值给下一个值,以此类推。#include <iostream>#include <vector>#include &

2021-01-06 22:58:34 309

原创 ubuntu16.04安装google浏览器

Ubuntu16.04(64位)安装chrome浏览器在64位ubuntu系统中,通过google-chrome-stable_current_amd64.deb安装谷歌浏览器。下载好google-chrome-stable_current_amd64.deb包,可以通过这个百度云链接;把deb包放到用户目录下,比如我的是在这个位置:执行命令sudo dpkg -i google-chrome-stable_current_amd64.deb等待一会之后,看看会不会有以下的依赖关系的报错,依

2020-11-15 22:51:09 818 1

原创 每天三分半钟搞定linux基础知识(19) echo命令实现字符串的截取和替换

echo命令实现字符串的截取和替换1 ## 号截取,从右往左找第一个匹配的,从右往左删[aitian@aitian-CW65S ~]$ var=eaabbccddaa5[aitian@aitian-CW65S ~]$ var2=`echo ${var##*aa}`[aitian@aitian-CW65S ~]$ echo $var252 #号截取,从右往左找最后一个匹配的,从右往左删[aitian@aitian-CW65S ~]$ var=eaabbccddaa5[aitian@aitia

2020-10-02 10:13:58 1836

原创 每天三分半钟搞定linux基础知识(18) tr命令替换或删除字符

tr命令tr命令把输入替换或者删除后再输出。1.替换一个字符[aitian@aitian-CW65S shell->master]$ cat testfile 2019年 12月 25日 星期三 22:18:19 CST2019年 12月 25日 星期三 22:23:14 CST[aitian@aitian-CW65S shell->master]$ cat tesfile |tr "\n" "\0"2019年 12月 24日 星期二 22:51:50 CSTwu lin wai

2020-10-02 00:44:53 218

原创 每天三分半钟搞定linux基础知识(17) xargs命令组合输入

xargs命令xargs是组合多个命令的一个工具,可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空格,不过通过 xargs 的处理,换行和空格将被空格取代。1 先看下xargs不加任何参数的情况:[aitian@aitian-CW65S test]$ find . -maxdepth 1

2020-09-20 21:48:00 215

原创 每天三分半钟搞定linux基础知识(16) 用户组

1 用户组/etc/group文件包含系统上用到的组的信息,比如:aitian@aitian-CW65S:/home$ cat /etc/grouproot:x:0:daemon:x:1:bin:x:2:...saned:x:127:aitian:x:1000:sambashare:x:128:aitiandocker:x:999:aitiansnn:x:1001:aitiannew_user:x:1002:这里的四个字段分别是:组名,组密码,GID,属于该组的用户列表2

2020-08-28 23:47:06 199

原创 每天三分半钟搞定linux基础知识(15) 用户设置

1 用户设置用户设置包括添加新用户,删除用户,修改用户。1.1 添加新用户添加新用户的时候有一些缺省值,如下:aitian@aitian-CW65S:~$ useradd -DGROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/shSKEL=/etc/skelCREATE_MAIL_SPOOL=no上面的默认值的含义是:新用户被添加到GID为100的公共组新用户的HOME目录为/home/登录名新用户账户密码过期后不会被禁用新用户

2020-08-28 23:45:58 319

原创 每天三分半钟搞定linux基础知识(14) linux安全

1. linux安全linux安全是通过用户和组根据每个文件和目录的安全性设置来访问文件,linux安全的核心是用户账户,每个能进入linux系统的用户都会被分配唯一的用户账户,用户对系统中各种对象的访问权限取决于用户。用户权限是通过创建用户时分配的用户ID(UID)来跟踪的,UID是一个数字。1.1 /etc/passwd文件linux系统用/etc/passwd文件将用户的登录名匹配到对应的UID,比如:aitian@aitian-CW65S:~$ cat /etc/passwdroot:x:

2020-08-28 23:43:46 128

原创 每天三分半钟搞定linux基础知识(13) 系统环境变量和数组变量

1 系统环境变量如果在PATH里面添加一个路径,当重启系统或者退出这个shell之后,新增的路径就没有了。所以需要设置系统环境变量,也就是任何用户在重启系统之后都可以继续访问最新的变量。1.1 /etc/profile文件/etc/profile文件是bash shell默认的主启动文件, 只要一登录linux系统,bash就会执行/etc/profile启动文件中的命令,这个文件或导出一些系统环境变量。1.2 用户专属启动文件除了/etc/profile文件外,还有4个启动文件,这4个启动文件都

2020-08-28 23:41:59 424

原创 每天三分半钟搞定linux基础知识(12) 环境变量

1. 环境变量环境变量是存储有关shell会话和工作环境的信息,环境变量允许脚本轻松访问他们,环境变量分为全局变量和局部变量。1.1 全局环境变量全局环境变量对于shell会话和所有生成的子shell都是有效的,局部变量则只对变量创建的shell有效。要查看全局变量可以使用env或者printenv命令。aitian@aitian-CW65S:~/at/shell$ printenvLC_PAPER=zh_CN.UTF-8XDG_VTNR=7ORBIT_SOCKETDIR=/tmp/orbit

2020-08-28 23:40:02 155

原创 每天三分半钟搞定linux基础知识(11)外部命令和内建命令

1 外部命令和内建命令1.1 外部命令外部命令是文件系统命令,不是shell程序的一部分,通常位于/bin,/usr/bin,/sbin或/usr/sbin中,比如ps命令就是一个外部命令。比如:aitian@aitian-CW65S:~/at/shell$ which ps/bin/psaitian@aitian-CW65S:~/at/shell$ type -a psps 是 /bin/ps当外部命令执行时,会创建出一个子进程。1.2 內建命令內建命令是属于shell的一部分,內建命

2020-08-28 23:30:56 119

原创 每天三分半钟搞定linux基础知识(10) 父子进程

1 shell父子进程关系当在shell的cli输入bash之后,会开启一个新的shell进程,并且是第一个shell的子进程,比如:aitian@aitian-CW65S:~$ ps -fUID PID PPID C STIME TTY TIME CMDaitian 5307 5296 0 10:59 pts/2 00:00:00 /bin/bashaitian 6115 5307 0 11:07 pts/2 00:00:00

2020-08-28 23:28:04 550 1

原创 每天三分半钟搞定linux基础知识(9) sort命令和tar命令

1 sort命令sort命令对文本按照字典顺序排序,数字在字母前面,大小字母在小写字母前面,比如a.txt内容为:wu lin wai zhuanWu lin fengzhao ben shanZeng zeng zengliu lao genye shen ren bu jing123785输入:sort a.txt结果为:123578liu lao genWu lin fengwu lin wai zhuanye shen ren bu jingZeng z

2020-08-28 23:22:03 316

原创 每天三分半钟搞定linux基础知识(8) kill,killall,df和du命令

1 kill命令和killall令kill命令使用方法是kill -n pid,表示将n号信号发给pid对应的进程,还有一个命令是killall 进程名。比如输入:kill -9 2786killall tcp*第一条命令是把9号信号发给2786对应的进程第二条命令是把所有tcp开头的进程都结束掉。2 df命令和du命令df命令可以查看所有已挂载磁盘的使用情况,比如输入:aitian@aitian-CW65S:~$ df文件系统 1K-块 已用 可用

2020-08-28 23:18:59 207

原创 每天三分半钟搞定linux基础知识(7) ps和top命令

1 ps命令ps命令能查看系统中进程相关的信息,对于ps命令而言,可以带的参数实在太多了,其实不需要记住所有的参数,只要记住自己常用的就行了。比如ps -ef可以显示系统上运行的所有进程,输入:ps -ef|more结果为:ps -ef可以显示出系统上运行的所有进程,其中-e表示显示所有运行在系统上的进程,-f表示则扩展打印出一些列,这些列包含很多重要信息,比如上图所示,其中:UID表示启动进程的用户;PID和PPID表示进程和该进程父进程的ID;C表示进程周期中的CPU利用率;STIM

2020-08-28 23:15:42 327

原创 每天三分半钟搞定linux基础知识(6) more,less,head和tail命令

水电费

2020-08-27 12:26:36 144

原创 每天三分半钟搞定linux基础知识(5) mkdir,file和cat命令

1 创建目录创建目录使用mkdir+目录名的格式,如果创建的目录中还有别的目录,那么就加上-p命令:aitian@aitian-CW65S:~/at/shell/0$ mkdir -p a/b/caitian@aitian-CW65S:~/at/shell/0$ ls -R a/a/:ba/b:ca/b/c:2 file命令file命令能够确定文件的类型以及文件的字符编码,比如下面的test.sh是文本内容,输入:aitian@aitian-CW65S:~/at/shell/0$

2020-08-27 12:25:38 248

原创 每天三分半钟搞定linux基础知识(4) touch,cp命令和软硬链接

1 touch命令touch可以创建文件,比如touch a.txttouch命令还可以改变文件的修改时间,注意这里并不会改变文件的内容,比如:aitian@aitian-CW65S:~/at$ ll vim.txt -rw-rw-r-- 1 aitian aitian 11191 1月 5 00:26 vim.txtaitian@aitian-CW65S:~/at$ touch vim.txt aitian@aitian-CW65S:~/at$ ll vim.txt -rw-rw-r

2020-08-27 12:22:26 241

原创 每天三分半钟搞定linux基础知识(3) cd和ls命令

cd和ls命令1 cd命令cd命令用于切换到对应目录下,使用方法为cd + 相应目录。如果在cd命令后面没有加目录,就会自动切换到用户主目录下。比如:aitian@aitian-CW65S:~/at/shell/0$ pwd/home/aitian/at/shell/0aitian@aitian-CW65S:~/at/shell/0$ cd aitian@aitian-CW65S:~$ pwd/home/aitian看上面的倒数第二行有一个波浪线~,这个就表示用户主目录,比如输入:ait

2020-08-27 12:18:20 286

原创 每天三分半钟搞定linux基础知识(2) shell操作

2. shell命令系统启动什么shell是根据用户ID配置决定的,在文件/etc/passwd文件中,第7个字段,就是该用户对应的默认shell程序,只要用户登录到某个虚拟控制台终端或在GUI中启动终端仿真器,默认的shell程序就会运行,比如下面root用户对应的默认shell程序。root:x:0:0:root:/root:/bin/bash除此之外,/bin/sh是是另一个默认的shell,这个shell是默认的系统shell,用于那些需要在启动时使用的系统shell脚本,不过一般情况下会把

2020-08-27 12:13:25 190

原创 每天三分钟搞定linux shell脚本(58) 正则来了!!!ERE模式

ERE模式ERE模式比BRE能支持更多的操作,当前sed不支持ERE,gawk支持ERE。1 问号之前介绍了点号匹配1次,星号匹配0次或多次,而问号是匹配0次或1次。比如文件data4的内容为:abcabbcaca输入:gawk '/ab?c/{print $0}' data4运行结果为:abcac可以看出abbc没有匹配上,同样,这里也可以使用BRE中的一些规则,比如使用方括号指定范围,输入:gawk '/a[a-c]?c/{print $0}' data4运行结

2020-08-27 10:19:23 292

原创 每天三分钟搞定linux shell脚本(57) 正则来了!!!自带的特殊字符正则表达式和星号

自带的特殊字符正则表达式和星号1 自带的特殊字符正则表达式正则表达式引擎中自带了一些特殊字符,这些字符要用到双方括号中去才能生效:1) [[:alpha:]] 匹配任何字母,无论大小写2) [[:alnum:]] 匹配任何字母,无论大小写,还匹配数字0~93) [[:blank:]] 匹配空格和制表符4) [[:digit:]] 匹配数字0~95) [[:upper:]] 匹配大写字母6) [[:lower:]] 匹配小写字母7) [[

2020-08-27 09:41:51 499

原创 每天三分钟搞定linux shell脚本(56) 正则来了!!!点号和方括号

点号和方括号1 点号点号.用于匹配除换行符之外的任何单个字符,必须匹配一个字符。比如文件data2的内容为:wu lin wai zhuanwu l in wai zhuanlin wai zhuanwulinwaizhuan输入:sed -n '/lin ./p' data2结果为:wu lin wai zhuanlin wai zhuan2 方括号方括号在正则表达式中应用广泛,用于限定所有的可匹配字符,方括号在正则表达式中有以下四种常用用法。2.1 方括号中列出所有的

2020-08-27 09:35:32 515

原创 每天三分钟搞定linux shell脚本(55) 正则来了!!!锚字符

锚字符锚字符用于匹配一个模式出现行首或者行尾,也就是说当模式出现在行首或者行尾的时候才能匹配成功。1 脱字符匹配行首脱字符^匹配对应的模式是否出现在行首,如果不是在行首,即使有对应的字符串也不会匹配:比如输入:echo "wu lin wai zhuan"|sed -n '/^wu/p'运行后结果为:wu lin wai zhuan再输入:echo "wu lin wai zhuan"|sed -n '/^lin/p'运行后结果为空。如果把脱字符放到其他位置,也就是非开头的位置

2020-08-27 09:23:04 171

原创 每天三分钟搞定linux shell脚本(54) 正则来了!!!特殊字符构造的正则表达式

特殊字符构造的正则表达式有一些字符有特别的含义,在纯文本中是不能直接使用的,如果想要在纯文本中使用的话必须在这些特殊字符前面加上转义符号\进行转义,特殊符号包含:.*^$\+?|[]{}()比如输入:echo "\ is character"|sed -n '/\/p'运行结果为:sed: -e 表达式 #1, 字符 4: 未终止的地址正则表达式然后加上转义符号\进行转义:echo "\ is character"|sed -n '/\\/p'运行结果为:\ is charac

2020-08-25 23:28:52 853

原创 每天三分钟搞定linux shell脚本(53) 正则来了!!!纯文本正则表达式匹配

shell脚本经常要处理大量数据如日志等,有些内容需要用到正则表达式,正如之前的sed和gawk,里面经常使用正则表达式。正则表达式要通过正则表达式引擎实现,负责对表达式的模式进行解释。当前有两种引擎,分别是基础正则表达式引擎(BRE)和扩展正则表达式引擎(ERE)。1 纯文本正则表达式匹配之前的sed和gawk中已经用到过纯文本的正则表达式,纯文本正则表达式中是没有特殊字符的,比如输入:echo 'wu lin wai zhuan'|sed -n '/wai/p'运行后结果为:wu lin w

2020-08-25 23:23:29 256

原创 每天三分钟搞定linux shell脚本(52) gawk来了!!!gawk中使用内建函数

gawk中使用内建函数gawk中有一些内建函数用于处理比较通用的运算,比如数学运算和字符串处理。1 gawk中使用数学运算的内建函数常用的数学运算函数有sin,cos,sqrt,int等等,int是用于取整运算,输入:gawk 'BEGIN {y=int(3.14);z=int(-3.14);print y,z}'运行后结果为:3 -32 gawk中使用字符串处理的函数个人感觉这一节非常重要,之后可以用到的地方非常多。2.1 toupper,tolower,length的使用比如文

2020-08-25 23:11:51 426

原创 每天三分钟搞定linux shell脚本(51) gawk来了!!!gawk中使用printf打印

gawk中使用printf打印gawk中除了可以使用print语句外,还可以使用printf语句打印,用法和C语言相同。比如data7文本的内容为:312 3.145 great666 45.01 good899 0.004 nothing输入:gawk '{printf "integer:%d, float:%f, string:%s\n",$1,$2,$3}' data7运行后结果为:integer:312, float:3.145000, string:great

2020-08-24 11:26:33 463

原创 每天三分钟搞定linux shell脚本(50) gawk来了!!!gawk中使用分支语句,while和for语句

gawk中使用分支语句,while和for语句1 gawk中使用分支语句gawk中可以使用if-else这样的分支语句,其语法与C语言的语法相同,比如data5的内容为:100 madashuai xiaozhang200 fandebiao chuzi300 yufugui cunzhang输入:gawk '{if ($1 ==300){x=$1;x=x*x;print x}}' data5运行后结果为:90000当然,gawk中也可以使用else if和else语句,同样

2020-08-23 11:24:52 395

原创 每天三分钟搞定linux shell脚本(49) gawk来了!!!gawk中数字和字符串的比较

gawk中数字和字符串的比较对于数字的比较跟C语言的语法相同,有以下5种:a)数字x与数字y相等 ,x==yb)数字x大于数字y, x>yc)数字x大于等于数字y, x>=yd)数字x小于数字y, x<ye)数字x小于等于数字y, x<=y新建文件data5,内容为:100 madashuai xiaozhang200 fandebiao chuzi300 yufugui cunzhang输入:gawk '$1==200 {print $0}

2020-08-23 11:19:48 327

原创 每天三分钟搞定linux shell脚本(48) gawk来了!!! gawk中使用正则表达式

gawk中使用正则表达式gawk中可以使用正则表达式去匹配,当然详细的正则表达式的内容这一节不展开。这里以文件data4为例,data4的内容为:Vedio wulin is awesomeApparently that is correctwhich vulin首先不用正则表达式,搜索匹配wulin这个单词并把第一个字段打印出来,输入:gawk '/wulin/{print $1}' data4运行后结果为:Vedio这是因为data4中的三行数据只有 第一行有wulin这个单词

2020-08-23 11:12:02 365

原创 每天三分钟搞定linux shell脚本(47) gawk来了!!!gawk中使用自定义变量和字典

gawk中使用自定义变量和字典1 自定义变量gawk中也可以自己定义一些变量,在使用变量的时候不需要加美元符号。比如在gawk中定义并打印字符串:gawk 'BEGIN{str="Wu lin wai zhuan";print str}'运行后输出结果为:Wu lin wai zhuangawk中也可以使用数学运算,如输入:gawk 'BEGIN{x=4;x=x*x+4;print x}'运行后结果为:202 gawk中使用字典gawk中能够定义字典,类似于C++中的map一

2020-08-23 11:06:23 212

原创 每天三分钟搞定linux shell脚本(46) gawk来了!!!gawk中分隔符内建变量

gawk中分隔符内建变量内建变量值得是shell中已经定义过可以直接使用的变量,shell中用于分割作用的内建变量有5个,之前已经提到过一个FS,FS是输入字段的分隔符,除了FS还有FIELDWIDTH,OFS,RS,ORS。比如文件data的内容为:This is Fruit:appleThat is City:BeijingThese are books:mathsThose are animals:dogs1 OFS对输出进行分割默认情况下,对输出进行分割的是空格。当然如果设置OF

2020-08-23 11:00:37 298

原创 每天三分钟搞定linux shell脚本(45) gawk来了!!!gawk中BEGIN和END关键字

gawk中BEGIN和END关键字1 BEGIN关键字BEGIN关键字后面可以加语句,这些语句会在gawk读取文件之前就执行。比如文件data的内容为:This is Fruit:appleThat is City:BeijingThese are books:mathsThose are animals:dogs输入命令:gawk 'BEGIN {print "Read file:..."} {print $0}' data运行结果为:Read file:...This is

2020-08-23 10:49:34 597

原创 每天三分钟搞定linux shell脚本(44) gawk来了!!!gawk中使用多个指令

gawk中使用多个指令gawk中使用多个指令的时候,除了最后一个指令外,每个指令的结尾都要加一个分号。比如文件data的内容为:This is Fruit:appleThat is City:BeijingThese are books:mathsThose are animals:dogs输入命令gawk '{$1="This";print $0}' data运行后结果为:This is Fruit:appleThis is City:BeijingThis are books

2020-08-23 10:44:41 163

原创 每天三分钟搞定linux shell脚本(43) gawk来了!!!gawk处理一行数据时的分隔符

本节gawk是awk的gun版本,gawk实际上是一种编程语言而不是一个命令。gawk要用单引号和大括号包含进来,把程序写到大括号里面。gawk处理一行数据时的分隔符gawk会把一行数据按照任意的空白字符(比如空格或者制表符)进行分割,$0表示代表整行,$1代表第一个数据段,以此类推。比如文件data的内容为:This is Fruit:appleThat is City:BeijingThese are books:mathsThose are animals:dogs按照默认的空白字符.

2020-08-23 10:31:30 458

原创 每天三分钟搞定linux shell脚本(42) sed编辑器来了!!!sed写入文件

sed写入文件写入文件要用w指定,比如把第二行到第四行的内容写到文件test中,输入:sed '2,4w test' value查看test中的内容为:This is line 2This is line 3This is line 4再举例输入:sed -n '/line 3/w test2' value运行后查看test2文件,内容为:This is line 3...

2020-08-23 10:21:06 316

原创 每天三分钟搞定linux shell脚本(41) sed编辑器来了!!!sed字符串打印

sed字符串打印打印文本中的内容有3个方法,第一个方法是使用p来打印一行内容,第二个方法是使用等号=打印出来行号,第三个方法是使用小写字母L(l)打印一行。比如文件value的内容为This is line 1, num is 134This is line 2, num is 158This is line 3, num is 238This is line 4, num is 849 This is line 5, num is 666 This is line 6, num is

2020-08-22 22:32:17 297

原创 每天三分钟搞定linux shell脚本(40) sed编辑器来了!!!sed字符串修改

sed字符串修改如果需要修改某一行的内容,可以使用c(change)去修改。比如上面的data文件,内容为:This is line 1This is line 2This is line 3This is line 4This is line 5This is line 61 修改指定的某一行比如要修改第三行的内容修改为changed line 3,输入:sed '3c\changed line 3' data运行后结果为:This is line 1This is lin

2020-08-22 22:22:48 299

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除