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}' 将所以第三段加起来
转载于:https://blog.51cto.com/12827365/1924418
Linux学习第三章相关推荐
- 【Linux】Linux学习(三)常用基本命令(一)
Linux学习(三)常用基本命令 常用基本命令 帮助命令 文件目录类命令 时间日期类命令 用户管理命令 用户组管理命令 文件权限类 搜索查找类 压缩和解压类 磁盘查看和分区类 进程管理类 学习总结 常 ...
- 【Linux】Linux学习(三)常用基本命令(二)
Linux学习(三)常用基本命令(二) crontab 系统定时任务 crontab 服务管理 crontab 定时任务设置 RPM软件包管理 RPM概述 RPM查询命令 RPM卸载命令 RPM安装命 ...
- Java学习 第三章 数组(三)排序算法
** Java学习 第三章 数组(三)排序算法 ** 主要内容:排序算法.排序算法横向比较.Arrays工具类的使用.数组常见异常 1.数组中涉及到的常见算法:排序算法 1.1 排序算法分类:内部排序 ...
- Python爬虫学习第三章-4.3-使用xpath解析爬取全国城市名称
Python爬虫学习第三章-4.3-使用xpath解析爬取全国城市名称 这一节主要是使用xpath解析爬取全国城市名称 这里使用的网址是:空气质量历史数据查询 这一个案例体现的点主要是xpat ...
- 深度学习 第三章 tensorflow手写数字识别
深度学习入门视频-唐宇迪 (笔记加自我整理) 深度学习 第三章 tensorflow手写数字识别 1.tensorflow常见操作 这里使用的是tensorflow1.x版本,tensorflow基本 ...
- linux的vi编辑器课件,linux课件--第三章+文本编辑器vi.ppt
<linux课件--第三章+文本编辑器vi.ppt>由会员分享,可在线阅读,更多相关<linux课件--第三章+文本编辑器vi.ppt(14页珍藏版)>请在人人文库网上搜索. ...
- linux学习第三天 (Linux就该这么学)
今天是学习的第三天,讲了很多命令,又赶上双11,网络经常波动,我经常掉线,没有听到多少,回头再看一下录播.我也写一下讲的命令吧,也加深一下命令的印象.第三章老师讲完了. ifconfig命令:输出信息 ...
- Linux学习(三)--vi和vim编辑器
Linux学习–vi和vim编辑器 一.基本介绍 首先,我们需要明白一点,所有的Linux系统内都会默认安装vi文本编辑器: 其次,vim可以看做是vi的增强版,具有程序编辑的能力,可以主动的 ...
- Kali Linux 秘籍 第三章 高级测试环境
第三章 高级测试环境 作者:Willie L. Pritchett, David De Smet 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 既然我们已经了解了 Kali Linux 所包 ...
最新文章
- windows域设计best practice
- 【星辰傀儡线·命运环·卷二 尘埃】 3 誓言
- BRCM5.02编译五: fatal error: uuid/uuid.h: No such file or directory compilation terminated
- c++ mysql 配置_C++--mysql相关配置
- jquery实现定时调度(倒计时)
- springboot集成邮箱功能
- JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取
- 3.Vue 条件渲染
- vue-cli起的webpack项目 用localhost可以访问,但是切换到ip就不可以访问
- Python3 OOP(四) 获取对象信息
- Oracle JRockit Mission Control 4.1发布
- linux-tar压缩与解压缩
- 极度丝滑!CentOS/Unbuntu系统下快速设置虚拟内存,一行命令快速搞定!!!
- 【DevCloud · 敏捷智库】两种你必须了解的常见敏捷估算方法
- 安卓应用安全指南 5.3.3 将内部账户添加到账户管理器 高级话题
- android编译framework架包运行报错 (转)
- 《博弈论与生活》思维导图
- tomcat日志中文乱码问题
- 计算机用户文件夹加密,如何加密文件夹?手把手教你给文件夹加密方法
- 三角形求高公式计算机,三角形已知边长求高公式有哪些
热门文章
- 对话科大讯飞刘聪:深度学习在中国是否“过火”?
- 揭秘人工智能的大脑是如何理解世界的
- 自动驾驶高峰激辩:寒冬还有多远,芯片路线之争,人才缺乏待解
- SAP WM LQ02 事务代码界面里不能为指定仓库号选择移动类型的问题对策
- 多目标跟踪 | AI产品经理需要了解的CV通识(三)
- python如何将图片的像素矩阵绘制成图片(python,matplotlib):TypeError: Invalid shape (1, 28, 28) for image data
- dgl库之高级用法dgl.DGLGraph.update_all
- 小白如何在Windows如何安装双系统Centos7
- sklearn警告:ConvergenceWarning: lbfgs failed to converge (status=1):
- “AI工厂”本质:AI基础设施及怎样将AI转化为运营动力