2020.8.27课堂笔记(Linux常用命令2)

echo命令:使用echo命令可以打印变量的值,也可以打印系统变量

echo有显示、印出的意思,在PATH前面加$表示后面接的是变量,所以会显示出目前的PATH!
echo $PATH 输出结果
/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

在这里插入图片描述五个放在3个文件夹:/usr/local /usr /root 环境变量
目的:把它当成根目录,可以直接使用它的命令
在这里插入图片描述除了系统变量还可以自己定义变量:
定义变量的方法:export //声明,在定义Java环境变量的时候使用过
在这里插入图片描述
echo相当于Java中的sout
注意:这种叫做临时变量,作用范围:在当前页签session(会话)可以使用,外界Windows用户使用moba与Linux虚拟机之间的远程通信/远程会话
ssh root@cent01 这个时候 echo $a 也不可使用
exit还原到原来的会话。 继续有效
第二种方式:在文件里使用export外界可以看到么?
不能。如果想要让外界看到,可以使用source

echo $PATH 已经可以看到一部分环境变量了,如果想要看的更多一点可以使用printenv命令
printenv命令:printenv命令可以打印环境变量
在这里插入图片描述如果以后想要做Linux操作系统,可以参考它的环境变量是怎么做的。它的环境变量的做法,就可以体现文件是怎么组织的。

在小黑界面的时候,大文件展示不全,但是无法上翻,在一定的特殊工作场景就是看不了。不能使用工具查看,该怎么办?
more命令:more命令可以查看文件内容 printenv | more

more + 文件名 按空格下一页,按回车下一行,按b键向上返回一页,还有搜索字符串的功能(与vi相似),按q退出

在这里插入图片描述比较常用的 -s 当遇到有连续两行以上的空白行,就替换为一行的空白行
还有一种用法 cat Hello.txt | more 与 more Hello.txt 命令是一致的,只不过底下不显示 %了 - - More - -

less命令:less命令可以查看文件内容 printenv | less
less和more的区别:more是一次性全部把文件加载,只是一部分一部分的显示,less在查看之前不会全部加载,而是你要查看多少我加载多少。less在查看巨大文件的时候当时的效能会比较快,不会因为文件过大而读取缓慢,但是每一步都要重新去加载,折合下来,总效率都是一样的。所以less比more使用的更普遍,特别是查看大文件的时候。
less命令也与more命令类似,但是有一个查看缓冲区大小,指的是一次多少个字符。

Linux less命令
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
语法
less [参数] 文件 
参数说明:
    -b <缓冲区大小> 设置缓冲区的大小
    //在加载完之后,会加载多少个字节在缓冲区里,下次再加载的时候,缓冲区的部分就不需要重新加载了,加载效率,与缓冲流类似。但是缓冲区不适合设置的太大
    -e 当文件显示结束后,自动离开
    //more在文件显示结束后会自动离开,less不会,到最后了按q退出,但是加上 -e 读完之后就会退出,不需要手动输入q
    -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
    -g 只标志最后搜索的关键词
    //-g 只标记最后搜索的关键字,可能有多次搜索的时候
    -i 忽略搜索时的大小写
    //比较常用,驼峰命名法有时比较烦人
    -m 显示类似more命令的百分比
    -N 显示每行的行号
    //比较常用 搜索可以快速看到多少行
    -o <文件名> 将less 输出的内容在指定文件中保存起来
    //输出的内容是指加载查看了多少
    -Q 不使用警告音
    -s 显示连续空行为一行
    -S 行过长时将超出部分舍弃
    //超过一页,出现在只需要看开头一部分,不需要看后边的部分
    -x <数字>"tab"键显示为规定的数字空格
    //先把tab键都换成空格,再去替换查找的时候。数字如果是4就把一个tab键替换成4个空格
    /字符串:向下搜索"字符串"的功能
    ?字符串:向上搜索"字符串"的功能
    n:重复前一个搜索(与 /? 有关)
    N:反向重复前一个搜索(与 /? 有关)
    b 向上翻一页
    d 向后翻半页
    h 显示帮助界面
    Q 退出less 命令
    u 向前滚动半页
    y 向前滚动一行
    空格键 滚动一页
    回车键 滚动一行
    [pagedown]: 向下翻动一页
    [pageup]: 向上翻动一页

wc命令:wc命令用于计算字数

在这里插入图片描述

-w 统计单词个数
-l 统计行数
-L 计算最长行的长度

在这里插入图片描述可以通过这种方式让程序知道查询结果有多少行!!以后的脚本会使用到

grep命令
在这里插入图片描述

管道符 | 把左侧程序的输出作为右侧程序的输入
printenv | less
grep命令用法
printenv | grep path    //环境变量中寻找小写path
printenv | grep -i path //寻找path,不区分大小写
查找出来两条:
PATH=/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
CLASSPATH=.:/opt/jdk1.8.0_221/lib/rt.jar:/opt/jdk1.8.0_221/lib/tools.jar:/opt/jdk1.8.0_221/lib/dt.jar
如果只想看PATH不想看CLASSPATH[root@localhost ~]# printenv | grep -iw path
PATH=/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/opt/jdk1.8.0_221/bin:/opt/jdk1.8.0_221/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
grep -ir python .    //在当前和所有子目录中的任何文件中查找python
grep -ir python  file1  //在file1中找到python
grep -ir --include *.py math ~  //在home和所有子目录中的py文件中查找包含'math'的行,不区分大小写

file命令:

Linux file命令用于辨识文件类型。
通过file指令,我们得以辨识该文件的类型。
语法
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
参数:
    -b  列出辨识结果时,不显示文件名称。
    -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
    -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
    -L  直接显示符号连接所指向的文件的类别。
    -m<魔法数字文件>  指定魔法数字文件。
    -v  显示版本信息。
    -z  尝试去解读压缩文件的内容。
    [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

在这里插入图片描述I/O Stream
在这里插入图片描述
但是在Linux命令行里不使用stdin stdout stderr,这种只在脚本里写。在命令行里基本上直接使用重定向
在这里插入图片描述在免密登录的时候见过

在这里插入图片描述
which命令

用于查找命令
which bash
which hexdump

which+命令 使用比较频繁,特别是使用yum去安装的东西,实际上在哪我们并不知道,使用which可以查看,注意:只是看到命令在哪,而不是安装目录在哪,所以which后加的一般是命令,而不是文件夹
在这里插入图片描述ln命令
在文件之间建立连接

ln -s /usr/bin/hexdmp d
#创建了一个符号d链接到/usr/bin/hexdump

在这里插入图片描述软链接和快捷方式一样好用,相当于快捷方式
在这里插入图片描述删除软链接会把原目录删掉么?
rm -rf 软链接 并不会把原目录删掉

find命令

搜索目录层次结构中的文件
find  /  -name  'tar'
#从根目录访问所有目录以查找'tar'
find  ~/tmp  -name  '*.txt'  -type f  -exec  d -C {} \;
#从〜/ tmp目录开始,找到所有'.txt'文件并将其转换为hexdump
find常用的参数:
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-type c : 文件类型是 c 的文件
d: 目录/c: 字型装置文件/b: 区块装置文件/p: 具名贮列/f: 一般文件/l: 符号连结/s: socket
-pid n : process id 是 n 的文件
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

在这里插入图片描述find的复合用法:
在这里插入图片描述
-size的用法:
在这里插入图片描述
date命令

打印或设置系统日期和时间
date +%Y-%m-%d  #2017-12-23
date +%H:%M:%S  #13:29:03
date +%I:%M:%S    #12小时时间显示
date +%c  	     #locale的完整日期和时间
date -u 	     #UTC日期和时间
date -R	     #RFC-2822格式
date -Iseconds         #ISO-8601格式

在这里插入图片描述
date也是比较常用的命令

Linux date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面:
    % : 印出 %
    %n : 下一行
    %t : 跳格
    %H : 小时(00..23)
    %I : 小时(01..12)
    %k : 小时(0..23)
    %l : 小时(1..12)
    %M : 分钟(00..59)
    %p : 显示本地 AMPM
    %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
    %s :19701100:00:00 UTC 到目前为止的秒数
    %S : (00..61)
    %T : 直接显示时间 (24 小时制)
    %X : 相当于 %H:%M:%S
    %Z : 显示时区
日期方面:
    %a : 星期几 (Sun..Sat)
    %A : 星期几 (Sunday..Saturday)
    %b : 月份 (Jan..Dec)
    %B : 月份 (January..December)
    %c : 直接显示日期与时间
    %d :  (01..31)
    %D : 直接显示日期 (mm/dd/yy)
    %h :%b
    %j : 一年中的第几天 (001..366)
    %m : 月份 (01..12)
    %U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
    %w : 一周中的第几天 (0..6)
    %W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
    %x : 直接显示日期 (mm/dd/yy)
    %y : 年份的最后两位数字 (00.99)
    %Y : 完整年份 (0000..9999)

cut命令

从文件中提取字段
date -u | cut -d ' '  -f2,3,6
#输出的日期格式按空格分割,取出2,3,6位
cut -d ' '  -f1,2  /etc/mtab 
#此示例从文件/etc/mtab中读取数据

在这里插入图片描述

tr命令

用于转换或删除文件中的字符
date -u | tr 'a-z' 'A-Z' 	# 小写转大写
echo 'abcdefg' | tr -d 'b-e' 	# 删除
echo 'abbbbg' | tr -s 'b' 	# 重复单词显示一次

在这里插入图片描述tr命令只能是字符,替换要使用sed命令。。

ping命令

用于测试与目标主机的连通性
ping www.ibm.com
ping 192.168.0.16

Windows环境下ping命令只测试4次,Linux环境下如果不停止就一直ping
需要使用CTRL+C停止

sed命令:

Linux sed 命令
Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
语法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数说明:
    -e<script>--expression=<script> 以选项中指定的script来处理输入的文本文件。
    -f<script文件>--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
    -h或--help 显示帮助。
    -n或--quiet或--silent 仅显示script处理后的结果。
    -V--version 显示版本信息。
动作说明:
    a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
    c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
    d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
    i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
    s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦! 

在这里插入图片描述使用sed命令和vi的末行模式命令相似,但文件没有变

其他的一些命令:
chgrp :change group 为文件夹更换群组
chown:为所属用户和群组一起更换
paste:用于合并文件的列,会把文件以列对列的方式,一列一列的加以合并,默认都是以空格来分隔
split:把大文件切分成比较小的文件,与paste相反,指定每多少行切成一个小文件
scp:不同虚拟机之间远程文件传输
whereis:查找文件而不是命令,一般不太去用
read:控制台输入,脚本的时候会使用 -n 后跟一个数字,定义输入文本的长度
look:查询单词,给它首字符串,查询开头字符串符合条件的单词
查找以字母L开头的所有行:look L testfile
let:用于计算的工具,主要脚本中使用,定义变量计算,自加,自减,+=,-=
df:df -h 当前Linux虚拟机磁盘的使用情况
du:查看某个目录/文件的大小占用磁盘的空间 默认是-a的所有都显示 -s 仅显示总计
//一般是批量查看某些大文件,如果文件过大要进行清理的情况
dirs:显示目录和记录,作用不大和pwd没啥差别
mount:用于挂载设备
tree:显示目录树
fdisk:格式化硬盘,创建和维护分区表 fdisk -l 当前设备的使用情况
telnet:用于远程登陆,云计算会使用,cmd命令行也有,用于测试两台机器间的网络是否连通
netconf:网络管理
logout:当前session连接,退出登陆
poweroff:关机
reboot:重启
系统管理用的不多,主要有:systemcontroller和service,export定义变量,ulimit使用到的时候再说,clear清屏,clock时钟
备份压缩:zip gzip unziip tar 都是说过的

使用都非常灵活!多练习!

8.28课前复习:
1、如何查看a.txt的第8~10行,并替换到b.txt中,如果出错则追加到c.txt
head a.txt | tail -3 > b.txt 2>> c.txt
2、查找yum命令的位置,可以使用哪几个命令
which yum
whereis yum
find / -name ‘*yum’
3、如何显示当前日期的日月年,时分秒
date ‘+%d%m%Y %H%M%S’
4、在Linux中定义变量的几种方式,作用范围分别是什么
export 在命令行使用:当前会话有效
export 在文本中使用:只在文本中有效,如果要全局有效,则 source 文本

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值