Linux相关使用介绍

一、Linux内外部命令的判断方式以及命令的执行流程

1、Linux命令

Linux命令分为内部命令(shell自带的命令)和外部命令(不是shell自带的命令,由用户安装),怎么鉴别是内部命令和外部命令呢?可以通过type命令来鉴别
什么是shell呢?shell是一个程序,常用的有bash shell,平时我们通过用户名和密码登录到linux,其实就是登录到bash shell程序,通过bash shell来操作linux内核

命令执行流程


image.png

那岂不是说使用外部命令效率会很慢吗?
其实一点都不慢,它会去PATH环境变量设置的一堆目录中查找

2、type命令

image.png

cd is a shell builtin 表示内部命令
ifconfig is hashed (/usr/sbin/ifconfig) 表示外部命令

3、cd命令

cd命令切换文件夹
现在我们cd /usr/sbin

4、cat命令

通过cat命令查看文件内容
通过cat ifconfig来查看ifconfig,发现是乱码文件

5、file命令

file命令查看文件类型
输入file ifconfig


image.png

从输出信息可以看出它是一个二进制可执行文件

6、whereis命令

whereis命令查看文件位置


image.png

find / -name jdk

7、echo命令

echo命令用户打印信息,相当于java中的system.out.println


image.png

二、linux查看命令帮助文档

1、使用man命令查看相关命令的含义及描述信息

image.png

image.png

可以使用回车查看下一行、空格查看下一页、q退出

2、使用help查看内部命令

image.png

一般使用man查看外部命令,help查看内部命令

三、bash shell定义变量以及进程简单管理

1、变量的定义及使用

image.png

2、进程管理

(1)、ps -ef 命令

查看linux下的应用和应用的进程号

(2)、在一个新窗口输入vim a,在另外一个窗口查看进程信息 ps -ef,这个时候可以看到有一个vim a的进程

image.png

当我们在这个窗口中输入kill -9 1593的话,另外一个正在编辑文件的进程就会退出

四、Hash优化查询时间的原理

在前面我们已经讲过,bash shell程序在执行命令的一个过程及原理,对于外部命令,它会去PATH这个环境变量中查找执行命令所在的路径,当然在去PATH中寻找之前会先去hash表中查找这个命令有没有执行过,执行过的话会记录在hash表中,则此次查找只需从hash表中就可以很方便的找到


image.png

五、Linux文件系统介绍

image.png

六、文件系统相关命令

1、df命令

查看分区信息 -h 表示文件大小后面会显示文件大小


image.png

2、du命令

查看文件的使用情况


image.png

3、ls命令

image.png

使用man ls 查看ls命令的相关介绍
-a:可以查看隐藏文件
-l:以长列表的形式展示文件列表信息


image.png

第一位 -:表示文件,d表示文件夹,b表示块设备文件,c表示字符设备文件,p表示命令管道文件,s表示套接字文件, 从第二位开始往后数九位表示属主权限(每三位一组 rwx:读、写、执行),第11位表示的点表示分隔符,点后面的数字表示文件有几个硬连接,第一个root代表属主名,第二个root代表这个第一个root所在的组织,接下来的5表示文件大小,5后面的日期表示文件最后一次修改的时间, 1.txt代表的文件或文件夹的名称
小结:


image.png

4、cd命令

切换文件目录
cd 文件路径
cd:切换到家目录
cd ~:回到家目录(也就是家目录)
cd ..:回到上一级目录

5、mkdir命令

创建目录
mkdir 目录名
mkdir -p 目录名,级联创建目录


image.png

6、cp命令

cp 被拷贝的文件(可以是路径加文件名) 拷贝到哪个位置


image.png

复制目录使用
cp -r 被拷贝的目录 目标位置

7、mv命令

移动命令
mv 被移动的文件 目标位置+目标文件名


image.png

8、rm删除命令

rm 文件名(此中方式的删除需要再输入 yes)
rm -f 文件名,无提示直接删除
rm -rf 文件夹

9、ln命令

ln命令默认创建的是硬连接


image.png

ln profile a:将a硬连接到profile文件上,他们底层共用一个文件,删除他们之中任何一个
对另外一个没有影响,同时你也可以使用 ll -i命令查看文件编号

ln -s profile a:将a软连接到profile文件,当你访问a的时候会去访问profile,profile再访问底层文件,当将profile删除了之后a就无法访问了

10、stat命令查看文件详细信息

image.png

11、touch命令

一致时间、创建新文本
touch 已存在的文件:会将文件的访问时间、更新时间、改变时间(即上面stat中介绍的三个时间)变成一致
touch 不存在的文件:会创建一个新的文本

七、文本相关的命令

1、cat命令

cat命令查看文件内容
cat 1.txt:查看单个文件内容
cat 1.txt 2.txt:查看多个文件

2、more命令

more 1.txt:以分页的形式查看文件内容,按空格:下一页,回车:下一行(注意它不能回看,回看的话只能用鼠标回轮)

3、less命令

less 1.txt:使用空格下一页, b看上一页, 回车看下一行
注意less的话会把整个文件内容加载到内存,如果文件比较大的话,建议使用more命令查看

4、head命令

head命令默认查看文件前10行内容, head 1.txt
head -5 1.txt:查看文件前5行的内容

5、tail命令

tail命令默认查看文件后10行的内容 tail 1.txt
tail -5 1.txt:查看文件后5行内容
tail -f 1.txt:实时查看文件增量内容

6、| 管道命令

cat b.txt | head -3:管道左边的命令会以输出流的形式交给管道右边的命令,管道右边以输入流的形式接收并且拼到命令的右边


image.png

image.png

注意:ls -l 不能接受前面的输出流,这个怎么办呢?可以通过xargs命令


image.png

7、vi文本编辑器命令

image.png

vi文本编辑器末行模式的操作

(1)、set设置

set nu(number的缩写): 设置行号
set nonu(nonumber的缩写):取消行号
set readonly:设置为只读

(2)、/ 向下查找

n:往下查找
N:往上查找

(3)、? 向上查找

n:往上查找
N:往下查找

(4)、! 执行命令

一般我们会在/etc/profile文件中设置一些环境变量,但是在设置的时候可能没有记住目录,这时候我们可以使用如下方式


image.png

效果


image.png

再次按回车就会切回到文件中去

(4)、s 查找并替换

格式 :s/str1/str2/gi
/ : 临近s命令的第一个字符边界字符,也可以是 @或#
g : 一行内全部替换
i : 忽略大小写

范围
n:行号
. :当前光标行
+n :偏移n行
:末尾行-3
%:全文

image.png

image.png

image.png

image.png

image.png

image.png

(5)、删除

全部删除 1,$d


image.png

删除前三行


image.png

删除第3~5行数据
image.png

删除倒数第2行


image.png

(6)、复制及黏贴

image.png

光标挪到最后一行 按下小写的p
效果图


image.png

八、正则表达式

1、定义

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

2、正则表达式特定字符

(1)、匹配操作符

\ :转义字符
. :匹配任意单个字符
[1249a] :匹配中括号中任意字符
[^12] :匹配中括号中任意非1和2的字符
[a-k] :匹配中括号中任意a~k中的一个字符
^ :行首
$ :行尾
<abc> :单词首尾边界(匹配单词abc)
| :连接操作符
(,) : 选择操作符
\n :反向引用

(2)、重复操作符

? :匹配0到1次

  • :匹配0到多次
  • :匹配1到多次
    {n} :匹配n次
    {n,} :匹配n到多次
    {n,m} :匹配n到m次

3、正则表达式练习

在Linux中通过grep命令使用正则表达式来匹配信息

hello shanghai
hello angelababy
hello dilireba
iii250 wyf
hello zhangxinyi
11 hel yhelloubin lo
h2341123i bj
iiii521 fanbingbing
111 hello 222
wo ai bj tam
helloahihelloahi

(1)、查找包含hello的行

image.png

(2)、查找包含数字的行

image.png

(3)、查找包含了2或者5的行

image.png

(4)、查找包含3位数的行 {}是正则表达式的字符,需要加\或者使用grep -E

image.png

(5)、包含3位数字的行

image.png

(6)、查找包含hello这个单词的行

image.png

(7)、查找出hello为单词词首的行

image.png

(8)、查找出现2到3次l的行

image.png

(9)、查找出 hi hello hi hello 这种结构的行

image.png

九、其它文本处理命令

1、cut 显示切割的行数据

f :选择显示的列
s :不显示没有分隔符的行
d :自定义分隔符


image.png

2、sort

n :按数值排序
r :倒序
t :自定义分隔符
K :选择排序列
u :合并相同行
f :忽略大小写

angelababy 10
dilireba 11
zhangxinyi 8
zhangxinyi 8
Angelababy 10
image.png

3、wc (wordcount)

image.png

image.png

十、Linux行编辑器 sed的使用方式

sed:行编辑器,以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定工作

1、使用方式

sed [options] 'Command' file ...

2、options

-n :静默模式,不再默认显示模式空间(内存)中的内容
-i :直接修改原文件
-e SCRIPT :可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
-r :表示使用扩展正则表达式

3、Command

d :删除符合条件的行
p :显示符号条件的行
a \string :在指定的行后面追加新行,内容为string
\n :可以用于换行
i \string :在指定的行前面添加新行,内容为string
c :取代,c的后面可以接字符串
s /pattern/string/修饰符:查找并替换。默认只替换每行中第一次被模式匹配到的字符串
g :行内全局替换
i :忽略字符大小写
s///:s###,s@@@
(),\1,\2

4、示例

(1)、显示文件中的第二行

sed "2p" ctxt
但是在执行下面的操作的时候文本中的内容都显示出来了,它的原理是,打印匹配的行,以及文本中所有的内容


image.png

(2)、只显示第二行

image.png

(3)、删除指定文件静默空间中的第三行

注意:它删的是内存中的数据,而不是目标文件


image.png

(4)、删除源文件中的第三行

sed -i "3d" ctxt


image.png

它的原理是先把内存中的第3行数据删除,然后再把内存中的数据写回原文件,这时原文件中的第三行就没有了

(5)、再每一行的下方加上 yubin

image.png

(6)、在每一行的下方加上 yubin

image.png

(7)、将文本中的内容替换成hi

image.png

(8)、查找并替换

image.png

使用变量的形式


image.png

image.png

十一、文本分析工具awk

awk是一个强大的文本分析工具。
相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。
简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk -F '{pattern + action}' {filenames}
支持自定义分隔符,默认是以空格分隔的
支持正则表达式匹配
支持自定义变量,数组 a[1] a[tom] map(key)
支持内置变量
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
支持函数
print、split、substr、sub、gsub
支持流程控制语句
if、while、do/while、for、break、continue

练习题
passwd文件内容解读:
passwd文件中每行由7个字段组成,字段与字段之间由:分隔,第一个字段代表用户名,第二个字段表示用户对应的加密后的密码,第三个字段表示userId,第四个字段表示groupId,第五个字段表示对用户的描述,第六个字段表示用户的家目录,第七个字段表示的是这个用户默认使用的shell


image.png

1、只是显示/etc/passwd的账户

image.png

2、只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行开始前添加列名name,shell,在最后一行添加"end"

image.png

3、搜索/etc/passwd有root关键字的所有行

image.png

其中$0表示整行

4、统计/etc/passwd文件中,每行的行号,每行的列数,对于的完整行内容

image.png

5、比较麻烦的一道题

统计报表:合计每人1月工资, 0:manager,1:worker

Tom 0 2012-12-11 car 3000
John 1 2013-01-13 bike 1000
vivi 1 2013-01-18 car 2800
Tom 0 2013-01-20 car 2500
John 1 2013-01-28 bike 3500
image.png

将awk后面的内容封装到一个文件中(封装的脚本要遵循一定的格式)


image.png

qqq文件的内容格式


image.png

十二、Linux用户与权限

1、useradd test01 添加test01用户

2、userdel test01 删除test01用户

如果仅仅只是执行上面这个操作的话,会残留一些文件,如用户的家目录,以及用户的mail信息


image.png

3、passwd test01 给test01用户设置密码

image.png

image.png

4、groupadd share 创建share组

groupdel share 删除share组


image.png

5、usermod -G share test01将test01用户加入share组

image.png

image.png

6、chown root:share share/ 改变share文件夹的属主及属组信息

image.png

image.png

7、chmod g+w share/ 给share文件夹的组增加写的权限

chmod:修改文件的权限 权限表示方式:字母、数字


image.png

image.png

image.png

值得注意的是:当前给某个组或者用户赋权后,如果被赋权的用户在登录的过程中被赋权,则需要退出重新登录(当用户登录时,会将权限信息加载到内存)


image.png

8、su test02 切换到test02用户

image.png

十三、Linux软件安装与卸载

1、Linux软件rpm安装

(1)、RPM安装介绍

Linux软件安装方式有:一、基于软件的源码进行编译安装,二、基于已经编译好的安装包,下一步下一步的安装
Redhat提供了rpm(小红帽包管理)管理体系
rpm软件包包含依赖检查,但还需人为解决

(2)、rpm相关命令

rpm安装
rpm -ivh filename(全路径)
--prefix (指定安装目录)


image.png

rpm卸载
-e PACKAGE_NAME


image.png

其它选项
rpm -qa:查询已经安装的所有包
查看已经安装的jdk
image.png

rpm -q PACKAGE_NAME:查询指定的包是否已经安装
rpm -qi PACKAGE_NAME:查询指定包的说明信息


image.png

rpm -ql PACKAGE_NAME:查询指定包安装后生成的文件列表
rpm -qc PACKAGE_NAME:查询指定包安装的配置文件
rpm -qd PACKAGE_NAME:查询指定包安装的帮助文档
rpm -q --scripts PACKAGE_NAME:查询指定包中包含的脚本
rpm -qf /path/to/somefile:查询文件是由哪个rpm包安装完成的
image.png

2、yum安装与配置

(1)、yum介绍

yum(全称为 Yellow dog Updater,Modeified)是一个Shell前端软件包管理器(软件)。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无需繁琐地一次次下载,安装。
原理图


image.png

(2)、配置修改yum国内源

目前国内有2个比较有名的软件源,阿里:http://mirrors.aliyun.com/ ,163:http://mirrors.163.com/

如果我给大家提供的两个地址,你可以任意选择一个,这里我选择阿里云的国内源

image.png

点击centos,进入详情页面,按照提供的配置方式修改yum源
image.png

步骤1:修改配置文件
由于我这边没有wget,首先我通过rpm安装了一个wget
image.png

wget的rpm安装包可以http://mirrors.163.com/centos/7/os/x86_64/Packages/ 这个地址下载
image.png

image.png

到这里我们就配置好了yum国内源

步骤2:yum clean all 清空本地的依赖缓存
步骤3:yum makecache将依赖缓存下载到本地


image.png

(3)、配置yum本地源

如果你现在待得是军工等企业的话,是不能够连接外网的,针对这种情况我们可以使用本地源


image.png

image.png

image.png

image.png

image.png

image.png

image.png

卸载光盘之后就不能安装了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270