Linux2

Linux

数据处理

grep命令

筛选数据(Globally search a Regular Expression and Print)的缩写,全局搜索一个正则表达式并打印,就是在文件中查找关键字,并显示关键字所在的行

grep命令的最基本用法

grep text file,text代表要搜索的文本,file代表供搜索的文件

-i参数:ignore,忽略大小写,默认情况下,grep命令是区分大小写的

image-20200315203228206

-n参数:number,显示搜索到的文本所在的行号,grep -n path /etc/profile

-v参数:invert,只显示文本不在的行,grep -v path /etc/profile

-r参数:recursive,递归,grep -r "Hello World" folder/

注:rgrep命令,作用相当于grep -r

grep的高级用法

配合正则表达式

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串

image-20200315211922870

-Eextended regular expression第一个字母,表示“扩展的正则表达式”

grep -E Path /etc/profile

image-20200315213121200

grep -E [Pp]ath /etc/profile,[Pp]ath就是既可以是Path,也可以是path

Sort命令

为文件排序

r参数:reverse,是相反

-R参数:随机排序,

-n参数:默认仅用sort命令,是不区分 字符是否是数字,会把这些看成字符串,按照1-9的顺序来排序

-n参数用于对数字进行排序,按从小到大排序

uniq命令

unique, 删除文件中的重复内容

-c参数用于显示重复的行数count

-d参数只显示重复的行的值,duplicated,重复的

cut命令

剪切文件的一部分内容

cut命令用于对文件的每一行进行剪切处理

-c参数:根据字符数来剪切,c是字符

cut -c 2-4 name.txt剪切第二个到第四个字符

流、管道、重定向

重定向

把本来要显示在终端的命令结果,输送到别的地方,例如输送到文件中或者作为其他命令的输入(命令的连接,或者叫命令的管道)

文件或者另一个命令的输入,通过在命令间插入特定的符号,这些符号可以称为“重定向流”符号

重定向流从Unix时代就已经是很重要的概念,后来Linux出现,重定向流的原理依旧被沿用,重定向流将会改变我们看待终端命令行的方式

管道

把两个命令连接起来使用,一个命令的输出作为另一个命令的输入,pipeline

在计算机学科中,流是时间上可用的一系列数据元素。我们可以把流比喻成传送带上的物件,每个时间点传输一个,而不是多个打包传输

>和>>

重定向到文件

最简单的操作就是把命令的输出结果重定向到文件中,就不会在终端显示命令运行结果了

cut命令进阶

根据分隔符来剪切

CSV是Comma Separated Values的缩写,逗号分隔值,CSV文件的后缀名是.csv,通常可以被Excel等软件打开

-d参数:d是delimiter的缩写,分隔符,用于指定用什么分隔符(比如逗号,分号,双引号等等)

-f参数:表示剪切下用分隔符分隔的哪一块或那几块区域

image-20200316094647371

>

重定向到新的文件

>可以将命令的输出结果重定向到你选择的文件中

cut -d , -f 1 notes.csv > student.txt

image-20200316104632482

使用>符号要小心,如果此文件不存在,则新建一个文件,如果此文件已经存在,那么就会把文件内容覆盖掉

>>

重定向到文件末尾

>>的作用和>的作用类似,不过它不像>那么危险,而是将重定向的内容写入到文件末尾,起到追加的作用,如果文件不存在,也会被创建

image-20200316105355028

image-20200316105716061

stdin、stdout、stderr

stdinh:标准输入

stdout:标准输出,不包括错误信息

stderr:标准错误输出,指终端输出的错误信息

image-20200316110414705

文件描述符

File Descriptor,简称fd

cat not_exist_file.csv > results.txt 2> error.log

> result.txt:将标准输出重定向到result.txt文件中

2>errors.log:将标准错误输出重定向到errors.log文件中

2>>:用于将标准错误输出重定向到文件末尾

2>&1:组合符号,将标准错误输出重定向到与标准输出相同的地方

cat not_exist_file.csv > results.txt 2>&1

cat not_exist_file.csv >> results.txt 2>&1

<,<<

从文件或键盘读取

不是所有的命令都有输入,也不是所有的命令都有输出

<

用于指定命令的输入

cat < notes.csv,它的运行结果和cat notes.csv一模一样

<<

将命令的输入重定向为键盘输入,以逐行输入的模式(回车键换行),所有输入的行都将在输入结果字符串之后发送给命令

image-20200316130815856

image-20200316131221412

|:管道

|符号被称为管道符,其作用就是建立命令管道,管道也算是重定向流的一种

管道的原理

将两个命令连接成管道,简单地说就是将一个命令的输出作为另一个命令的输入

image-20200316161657028

Linux中的命令,每一个的功能虽然有限,但是一旦使用管道,那就会结合各个命令的功能

示例

按学生名字排序

image-20200316163055812

根据大小排序目录

image-20200316163600282

监视系统活动和查看进程

Linux可以管理多个同时运行的程序,是多任务系统,Linux也是一个多用户的系统,多个用户可以在不同地方通过网络连接到同一个Linux系统

多用户多任务的隐患

可能某个用户或者某个任务(其实就是运行的程序),在某时让Linux过载了

w命令

可以快速了解系统中目前有哪些用户登录着以及它们在干什么

image-20200316171959989

负载的三个数值

1分钟之内的平均负载,5分钟之内的平均负载, 15分钟之内的平均负载

USER:用户名(登录名)

TTY:登录的终端名称 ,:0意思是本地,就是目前所在的这个图形终端,pts是pseudo terminal slave,表示伪终端从属

FROM:用户连接到的服务器的IP地址(或者主机名)

LOGIN@:用户连接系统的时间

IDLE:用户有多久没活跃(没运行任何命令)

JCPU:该终端所有相关的进程使用的CPU(处理器)时间,每当进程结束就停止计时,开始新的进程则会重新计时

PCPU:表示CPU(处理器)执行当前程序所消耗的时间,当前进程就是在WHAT列里显示的程序

WHAT:当下用户正运行的程序

ps命令和top命令

列出运行的程序

简单来说,进程就是加载到内存中运行的程序,大多数程序运行时都只在内存中启动一个进程

ps命令

进程的静态列表,Process Status,用于显示当前系统中的进程,ps命令显示的进程列表不会随时间而更新,是静态的

PID:进程号,每个进程有唯一的进程号

TTY:进程运行所在的终端

Time:进程运行了多久

CMD:产生这个进程的程序名,如果在进程列表中看到有好几行都是同样的程序名,那么就是同样的程序产生了不止一个进程

ps -ef:列出所有用户在所有终端的所有进程,其中

UID:表示用户名,也就是运行进程的用户

PID:进程号

PPID:程序的父进程号

linux命令ps -ef | grep httpd

PS是LINUX下最常用的也是非常强大的进程查看命令
//以下这条命令是检查java 进程是否存在.
ps -ef |grep java

下面对命令选项进行说明:
-e 显示所有进程。
-f 全格式。

ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular

Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
ps -ef | grep httpd :
检查httpd进程是否存在 ps -ef | grep httpd :检查httpd进程的命令!

top命令

直接输入top就可以,进程的动态列表

Ctrl+c

停止终端中正在运行的进程

Ctrl+c可以比较友好的终止终端中正在运行的程序(进程),这个组合键也只有在终端中会这这样执行,如果在普通的图形界面中,它就是拷贝的快捷键

而在终端中拷贝和复制,需要用Ctrl+Shift+CCtrl+Shift+V来执行

前台进程和后台进程

可以在同一个终端中同时运行好几个命令,需要用到后端进程的概念

默认情况下,用户创建的进程都是前台进程,前台进程从键盘读取数据,并把处理结果输出到显示器

后台进程与键盘没有必然的关系,当然,后台进程也可能等待键盘输入,后台进程的优点是不必等待程序运行结束,就可以输入其他命令

&符号

在后台运行进程

cp file.txt file-copy.txt &

image-20200316193304732

调节时间

定制date的输出

date "+%H" H是hour的首字母,表示”小时“

date "+$H:%M:%S"

date "+%H时 %M分 %S秒"

image-20200316201149061

压缩解压

tar命令

同时压缩多个文件

打包:是将多个文件变成一个总的文件,这个文件通常称为archive,归档存档

压缩:是将一个大文件通过某种压缩算法变成一个小文件

首先用tar将多个文件归档为一个总的文件,称为archive,然后,用gzip或bzip2命令将archive压缩为更小的文件

image-20200316203843514

将多个文件合并为一个文件

-cvf

创建一个tar归档

c:create

v:verbose,表示冗余,会显示操作的细节

f:file,表示文件,指定归档文件

image-20200316223030923

image-20200316223324273

可以直接对文件进行归档操作,不需要先把所有文件放到一个目录中

tar -cvf archive.tar file1.txt file2.txt file3.txt,把file1.txt,file2.txt,file3.txt归档为archive,tar

-tf

显示归档里的内容,并不解开归档

tar -tf sorting.tar

image-20200317081053233

-rvf

追加文件到归档

tar -rvf archive.tar file_erxtra.txt,将file_erxtra.txt这个文件添加到archive.tar归档中

-xvf

解开归档

-cvf的反向操作,将生成的归档解开,x是extract,提取

tar -xvf sorting.tar

gzip和bzip2命令

压缩归档

gzip:比较常用

bzip2:不是那么常用,压缩率比gzip更大,但是更耗时

.tar.gz:用gzip命令压缩后的文件后缀名,gzip sorting.tar

.tar.bz2:用bzip2命令压缩后的文件后缀名,bzip2 sorting.tar

gunzip和bunzip2命令

解压

gunzip sorting.tar.gz

bunzip2 sorting tar.bz2

用tar命令同时归档和压缩

可以用tar命令同时完成归档和压缩的操作,一气呵成,就是给tar命令多加一个选项参数,使之完成归档操作之后还是调用gzip和bzip2命令来完成压缩操作

-zcvf:归档,然后用gzip来压缩归档

tar -zcvf sorting.tar.gz sorting

用tar命令同时解压

tar -zxcf sorting.tar.gz

jcvf

归档,然后用bzip2来压缩归档

tar -jcvf sorting.tar.bz2 sorting/

jxvf

解压

tar -jxvf sorting.tar.bz2

zcat/bzcat,zmore/bzmore,zless/bzless

显示用gzip/bzip2压缩的文件的内容

zcat sorting.tar.gz

bazcat sorting.tar.bz2

zip/unzip

压缩/解压zip文件

RedHat一族中的安装方式:sudo yum install unzip

解压.zip文件:unzip zrchive.zip

不解压.zip文件,只看其中的内容:unzip -l archive.zip


RedHat一族中的安装方式:sudo yum install zip

压缩为.zip文件:zip -r sorting.zip sorting-r是recursively,表示递归

编译安装

yum可以下载安装大部分的软件

1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1

2 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1

3 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

4 删除程序
yum remove | erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况

5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的header

编译安装的大致步骤

下载源代码–>解压压缩包–>配置–>编译–>安装

首先尝试找安装包

这一部分涉及到的软件包安装等,是基于RedHat一族的Linux发行版,包括CentOS,其他不是RedHat一族的Linux发行版,安装软件的方式大同小异

当要找的软件不在CentOS的软件仓库中时,可以试试去软件的官方网站找后缀是.rpm的安装包

.rpm的安装包用于RedHat一族的操作系统,包括CentOS

Debian一族(包括Ubuntu和Debian)用后缀为.deb的安装包,deb就是Debian的缩写

alien软件

有个软件可以将deb安装包和rpm安装包互相转换,这个软件是alien,alien默认没有安装,所以首先要安装它

sudo yum install alien

将deb转换为rpm

sudo alien -r xxx.deb

用alien转换成rpm包不能保证100%顺利安装,所以能找到rpm安装包的话,最好使用rpm

安装rpm安装包

sudo rpm -i xxx.rpm

实在找不到rpm安装包

就需要获取软件源代码,并自行编译,编译就是将程序源代码转换成可执行文件的过程

大多数Linux的程序都是开放源代码的,可以编译成合适我们的电脑和操作系统属性的可执行文件

rar/unrar

压缩和解压rar文件

安装rar和unrar

安装CentOS服务器

Servlet,Tomcat和Jenkins

Jenkins

用Java语言开发的一种持续集成(CI)工具

CI表示Continuous Integration,表示持续集成,能让软件的测试、编译和部署自动化

通常与版本管理工具、构建工具结合使用

常用的版本管理工具有SVN、GIT

常用的构建工具有Maven、Gradle

Jenkins是以Sevlet形式提供的,它采用扩展名为.war的二进制文件的形式

为了使用Jenkins应用程序,需要安装Tomcat服务器,jenkins也可以独立运行,因为它自身也包含了名为“Winstone”的Servlet微型容器

配置Java环境并安装Tomcat

文章目录
  1. 1. Linux
    1. 1.1. 数据处理
      1. 1.1.1. grep命令
      2. 1.1.2. grep命令的最基本用法
      3. 1.1.3. grep的高级用法
      4. 1.1.4. Sort命令
      5. 1.1.5. uniq命令
      6. 1.1.6. cut命令
    2. 1.2. 流、管道、重定向
      1. 1.2.1. 重定向
      2. 1.2.2. 管道
      3. 1.2.3.
      4. 1.2.4. >和>>
      5. 1.2.5. cut命令进阶
      6. 1.2.6. >
      7. 1.2.7. >>
      8. 1.2.8. stdin、stdout、stderr
    3. 1.3. <,<<
      1. 1.3.1. <
      2. 1.3.2. <<
      3. 1.3.3. |:管道
        1. 1.3.3.1. 管道的原理
        2. 1.3.3.2. 示例
    4. 1.4. 监视系统活动和查看进程
      1. 1.4.1. 多用户多任务的隐患
      2. 1.4.2. w命令
      3. 1.4.3. ps命令和top命令
        1. 1.4.3.1. ps命令
      4. 1.4.4. linux命令ps -ef | grep httpd
        1. 1.4.4.1. top命令
      5. 1.4.5. Ctrl+c
    5. 1.5. 前台进程和后台进程
      1. 1.5.1. &符号
    6. 1.6. 调节时间
      1. 1.6.1. 定制date的输出
    7. 1.7. 压缩解压
      1. 1.7.1. tar命令
      2. 1.7.2. 将多个文件合并为一个文件
        1. 1.7.2.1. -cvf
        2. 1.7.2.2. -tf
        3. 1.7.2.3. -rvf
        4. 1.7.2.4. -xvf
        5. 1.7.2.5. gzip和bzip2命令
        6. 1.7.2.6. gunzip和bunzip2命令
        7. 1.7.2.7. 用tar命令同时归档和压缩
        8. 1.7.2.8. 用tar命令同时解压
        9. 1.7.2.9. jcvf
        10. 1.7.2.10. jxvf
        11. 1.7.2.11. zcat/bzcat,zmore/bzmore,zless/bzless
        12. 1.7.2.12. zip/unzip
    8. 1.8. 编译安装
      1. 1.8.1. 编译安装的大致步骤
      2. 1.8.2. 首先尝试找安装包
        1. 1.8.2.1. alien软件
        2. 1.8.2.2. 将deb转换为rpm
      3. 1.8.3. 安装rpm安装包
      4. 1.8.4. 实在找不到rpm安装包
      5. 1.8.5. rar/unrar
    9. 1.9. 安装CentOS服务器
    10. 1.10. Servlet,Tomcat和Jenkins
      1. 1.10.1. Jenkins
      2. 1.10.2. 配置Java环境并安装Tomcat
|