Linux学习第三章

4-1-1 shell特性

指令history 查看历史指令

root的历史指令存放在 /.bash_history上,默认保存1000条

指令!!查看上一条历史指令和结果

指令!$  上一条指令的最后一个变量

指令!100 执行历史第100条指令

指令!c

TAB键能自动补充指令

指令alias 查看命令别名

指令alias aa bbb 设置指令bbb的别名aa,输入指令aa就能等于输入指令bbb

指令unalias aa 解除别名aa

ls *.txt 把txt结尾的列出

ls 1* 把1为首的列出

ls ?.txt 只匹配一个字符以txt结尾的 例如1.txt

| 把前一个指令的结果丢给后一个指令 例 cat /etc/passwd|wc -1

> 覆盖写入

>>不覆盖写入

< 把文件内容丢给指令 例如 wc -1<1.txt

指令jibs 查看已停的指令

指令fg 调回前台执行

指令bg 调回后台执行

4-1-2 shell变量

指令env 查看系统变量

指令 echo $变量名 显示变量值

指令set 显示系统环境变量

指令a=1;b=2 设置变量a=1 b=2

echo $a $b 结果 1 2 查看a b的值

变量名首位不能是数字

b=‘ls /tmp /‘ 用单引号把特殊符号引起来

(电脑补一条反引号,引用命令结果)

d=“a”“b”3

echo $d 结果 123 必须用双引号

指令bash 进入全新环境,之前定义的变量无效

指令export a=1 把a=1设置为全局变量 创建新的shell,a也存在

unset d 取消变量d的值

4-1-3系统和用户的环境变量配置文件

vim /etc/profile(配置文件)

PASH 、HOME、SHELL

想改变变量时在 /etc/profile.d去定义 文件名需要加.sh

修改path

vim /etc/profile.d/path.sh

#!/bin/bash (#!可写可不写)

export PATH=$PATH:/tmp/:/data/bin/

:wq

source /etc/profile(重置一下更改)

echo $PATH

vim /etc/bashrc(配置文件)

修改PS1(指令最前的用户名)

cd /etc/init.d/

PS1=‘‘

大致同上

修改umask

vim /etc/profile.d/umask.sh

umask 0000

:wq

source /etc/profile

umask

4-1-4 shell中特殊符号

* 通配符 可以多位 例如 指令ls *.txt 结果 1.txt 22.txt 333.txt

?通配符 一位 例如 ls  ?.txt  1.txt 2.txt

# 不生效 指令前,行首加#,该行指令不生效,没意义 例如 #ls 1.txt 不运行不生效 例如 ls #1.txt=ls  ,#1.txt没意义

\脱意符合  例如 \# 让#号失去功能 例如ls \#1.txt=ls #1.txt 这里#1.txt是一个文件名

| 管道符 将前一个命令的结果丢给后面的命令

例如 cat 1.txt | wc -1

$ 变量前置 调用变量时加在变量名前 例如 echo $PATH

!$表示调用最后一次的$变量

; 夹在两条命令中间 两条同时运行

~ 用户家目录 ls ~=ls root

& 后台运行 加在命令后面

2>  2>>

[] 一位  例如 ls [12].txt=ls 1.txt 2.txt     ls [1-3].txt=ls 1.txt 2.txt 3.txt   ls [1-9a-z]=1.txt a

.txt b.txt

4-1-5 cut命令

cut -d:-f 1,2,3 /etc/passwd 把文件中1,2,3段截取出来

cut -c 2 etc/passwd 截取第二个字符

4-1-6 sort命令

sort /etc/passwd  开头以a-z排序

sort -t:-k3 以第三段排序

sort -t:-k3 -n 第三段以小到大排序 (字母比数字小)

-k3,5     第3,4,5段排序

-nr  从大到小排序

sort -u 减去重复项目排序

4-1-7 wc命令

wc -l 1.txt 查看行数

wc -w 1.txt 查看word数

wc -m 1.txt 查看字符数

4-1-8 uniq和tee命令

uniq 2.txt  去掉连着的重复项

uniq -c 2.txt 计算连着的每项数目

tee 重令项+双重输出

echo “111”>1.txt=echo"111" |tee 1.txt 将111写入1.txt 并显示1.txt的内容

4-1-9 tr和split命令

tr 替换

ls 1.txt |tr ‘a-z‘ ‘A-Z‘ 把1.txt中小写字母都改为大写字母

tr ‘a‘ ‘b‘ 把a改为b

split 文件分割

split -b 50m 1.txt 把1.txt分为每个大小50m的文件

split -l 100 1.txt  把1.txt分为几个文件 每个100行

分割后原文件不变 多了几个以x开头的小文件

在1.txt 后加aaa 分割的文件就以aaa开头

4-2-0 shell中连接符

&& 并且

ls 1.txt && ls2.txt 如果前面的命令执行成功就继续执行后面的命令,如果前面的命令执行失败则后面的命令不执行

|| 或

ls 1.txt  || ls 2.txt 左边的命令不成功才执行右边的命令

;和

ls 1.txt ;ls 2.txt 左边命令成不成功,右边的命令都执行

4-2-1 grep过滤-1

grep egrep sed awk 正则表达式

grep ‘root‘ /etc/passwd 把含有root的行过滤出来

‘root‘ 前加--color 会有特殊颜色标记

root前加-n 显示行数 第几行

加-c 出现的行数  -v 不出现的行和内容

- A 2 显示有root的行再显示后两行

- B 2 再显示前两行

-C 2再显示前两行后两行

-r  或-rh显示关键词所在的目录

4-2-2grep过滤-2

[a-zA-Z]表示a-z所有大小写字母

grep --color  -n  ‘[0-9]‘ 1.txt  过滤出含有数字的行

[aN] 包含a或N的行  [3g]包含3或g的行

grep ‘^[1-9]‘ 2.txt 以数字开头的行

grep ‘[^1-9]‘ 2.txt  含有不是数字的字符的行

‘^[1-9]‘ 不以数字开头的行  不包括空行

‘[^$]‘ 表示空行

-v 取反

‘r.o‘ .表示任意字符  即r1o、ruo、r-o等等

‘r*o‘ 任意个r   即ro、rrrro、o

‘r.*o‘ 以r开头o结尾

‘r\?o‘  = -E ‘r?o‘     含有  ro、o

grep -E==egrep

4-2-3grep过滤-3

grep -E==egrep

‘r+o‘  1个或多个r     例ro、rrrro 、rrrrrrro

?+ | (){}要加/  或者egrep、grep -E

‘r|o‘ 含有r或者o

‘(rr)‘含rr

4-2-4 sed命令-1

sed 不能染色显示

sed -n ‘10‘p  1.txt 打开第10行

‘1,10‘p 第一至第十行

‘20,$‘p 20到最后一行

‘/root/‘p 包含root的行

/r.o/、/r*o/ 与grep使用功能一样

+ 、|、()、? 需要加\脱意符号

sed -r -n  后面特殊符号不需要加\

一般用法与grep相似

sed ‘1,19‘d 1.txt 显示1-19以外的行

sed -i ‘1,19‘d 1.txt 原文件删去1-19行

4-2-5sed 命令-2

替换功能

sed ‘1,10s/nologin/login/g‘ 1.txt 第1-10行的nologin换为login ,g是全局的并显示 原文件不变

修改内容存在路径或/符号时,要加\脱意符号或者改用#

1,10改为s  即所有行

替换为空格就删除显示 /nologin//g  原文件不变的

sed -n ‘/user/p;/root/p‘ 1.txt 先搜索一次含有user的行再搜索一次含有root的行

sed -n -r ‘/user|root/p‘ 1.txt 把包含user或root的行显示出来

sed -n -e 1 -e 2 和使用;一样

4-2-6 awk命令-1

awk -F ‘:‘ ‘{print $3,$4}‘ 1.txt 将第三,第四段列出

在{前加OFS=“:” 显示的第三段和第四段以:分割开

awk ‘/user|root/‘ 1.txt 列出包含user或root的行。awk中使用|、?等特殊符号不用加\脱意符号

awk -F‘:‘ ‘$1~/ro/‘ 1.txt 匹配第一段中含有ro的

4-2-7awk 命令-2

awk -F ‘:‘‘$1==“root”  ‘ 1.txt 匹配第一段为root的行

‘$1==“root” || $7==“nolog”‘ 匹配出第一段为root或者第七段为nolog的行

‘$3>=500‘ 第三段大于500的行

‘$3>=“500”‘ 第三段大于500(ASCII码排序)的行

!= 不等于

!~不匹配

= 赋值

== 等于

4-2-8awk 命令-3

NR行 NF段

awk -F ‘:‘ ‘NR<10{print $1,$5}‘ 1.txt

显示前9行的第一和第五段

NR==10 第10行

awk -F ‘:‘ ‘ {if(NF==7{print $1,$5}‘ 1.txt 匹配有七段的行 讲第一和第五段显示出来

‘{(sum=sum+$3)};END{print sum}‘ 将所以第三段加起来

时间: 2024-10-29 15:10:11

Linux学习第三章的相关文章

oracle学习 第三章 常用的SQL*PLUS命令 ——02

今天接着昨天的RUN命令继续讲. 3.5 n(设置当前行)命令和A(PPEND)(附加)命令 设想,你输入了例3-10的查询语句 例 3-10 SQL> SELECT ename 2 FROM emp; 例 3-10 结果 看到以上输出时,您发现在SELECT子句中忘了job,sal.这时您又如何修改您的SELECT子句呢?首先您应该使用SQL*PLUS的L(LIST)命令来显示SQL缓冲中的内容. 例 3-11 SQL> L 例 3-11 结果 在例3-11显示的结果中,2后面的"

linux学习(三)

crontab: 对作业的控制一般有两种at与cron,at一般使用在那些只需要执行一次的任务中,而cron就是用于那些循环的作业.每一个用户都可以有自己的crontab文件,但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件.系统管理员是通过cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件.crontab文件中每一个条目对应一个任务,每个条目有六个域分别是:分钟1-59,小时0-23,日1-31,月1-12,星期0

Linux学习闲谈(三) ——SVN用法及切版本与合版本

Linux学习闲谈(三) --SVN用法及切版本与合版本 (转载请附上本文链接--linhxx) SVN(Subversion)在工程中运用广泛,多人合作项目.项目版本控制等方面,SVN都是不可或缺的.虽然最近很多项目也在使用Git,但SVN仍是现在流行的版本控制系统.SVN与Git相比,最大的一个优势是存在全局版本号. 一.概述 SVN分为客户端和服务端,即需要在一台大家都能访问到的服务器上安装SVN的服务端,然后各自的电脑里安装SVN的客户端.安装的过程这里不讲,有很多博客如http://w

安卓学习——第三章

安卓学习——第三章 由于自身的实力不足,经过尝试后放弃了自己编写记账本app,而是打算找到合适的相关项目进行学习.我找到了几个AndroidStudio项目,我在AndroidStudio里面直接打开文件,发现无法运行.想到应该是import项目才行(我可真是菜的真实). 通过import这些项目之后,发现其中一个项目竟然是可以跑起来的.我便将项目通过手机进行测试,发现在手机上也是可以运行的.不过有一些在外观上的问题. 首先是在手机上的显示,会有一部分文字内容是乱码.我便去找编译器里面相关文件的

linux学习第三周总结

linux学习第三周总结 学习linux的第三周,也是惊喜最多的一周,让我看到学linux并不是很枯燥,相反非常有趣,可玩性很多,但越深入越觉得可学习的地方有很多,也有非常多的不足,所以革命尚未成功,同志更需努力 同样来简单终结一下本周的重点,内容比较多,说要简单提一下,不做详解 一.shell脚本编程基础 内容:1. 编程基础 2. 脚本基本格式3. 变量4.运算5.条件测试6.条件判断if 7.条件判断case 8.配置用户环境 shell脚本:包含一些命令或声明,并符合一定格式的文本文件

linux学习第三天 (Linux就该这么学)

今天是学习的第三天,讲了很多命令,又赶上双11,网络经常波动,我经常掉线,没有听到多少,回头再看一下录播.我也写一下讲的命令吧,也加深一下命令的印象.第三章老师讲完了. ifconfig命令:输出信息后主要看5项:一.网卡名称 ,二.IP地址,三.物理网卡MAC地址,四,RX 是接收数据流量  五,TX,发送数据流量. linux系统中"一切都是文件"即 一切接文件 uname命令:查看系统内核版本信息, uname -a 要查看详细信息可以用命令:cat /etc/redhat-re

Struts2框架学习第三章——Struts2基础

本章要点 —  Struts 1框架的基本知识 — 使用Struts 1框架开发Web应用 —  WebWork框架的基本知识 — 使用WebWork框架开发Web应用 — 在Eclipse中整合Tomcat — 使用Eclipse开发Web应用 — 为Web应用增加Struts 2支持 —  Struts 2框架的MVC组件 —  Struts 2框架的流程 — 通过web.xml文件加载Struts 2框架 — 通过struts.properties文件配置Struts 2属性 —  str

汇编学习第三章

在第三章的学习中,我们开始更深入地学习寄存器. (一)字在内存中的存储与内存单元地址   在第二章中,我们了解到,在CPU中,用16位寄存器来存储一个字,但是由于内存单元是字节单元(即在一个单元内只能存放一个字节),所以一个字要用两个内存单元来存放.举个例子,我们用0.1两个单元来存放数据4E20H,0号单元为低地址单元,1号为高地址单元单元,分别存放它的低位.高位数据.由此,我们提出字单元的概念:由两个地址连续的内存单元组成,用来存放一个16位数据的内存单元.,一般我们将起始地址为N的字单元简

Linux学习笔记三:Linux的权限处理命令

1.改变文件或目录权限  chmod 语法:chmod [{ugo} {+-=} {rwx}] [文件或目录] 或 [mode] [文件或目录] 第一种语法中: 这里的u是所有者,g是指所属组,o是指其他人 +是指增加权限,-是指减少权限,=是指赋予权限 r是指读权限,w是指写权限.x只是执行权限 第二种语法中: 在这里,r的值是4,w的值是2,x的值是1. 这里写的mode,是指一组数字.如:421.这里的421,是指所有者所拥有权限的数字总和是4,所属组所拥有权限的总和是2,其他人所拥有权限