同样的效果 :cat -n 文件名
nl - number lines of files
[root@sc lianxi]# nl hosts
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@sc lianxi]#
[root@sc lianxi]# top 查看系统的cpu,内存,进程等信息,系统负载(运行的压力情况) %Cpu(s): 0.8 us, 7.8 sy, 0.0 ni, 90.8 id, 0.0 wa, 0.0 hi, 0.6 si, 0.0 st us --》user process 用户进程消耗的cpu资源 sy --》system process 系统进程消耗的cpu资源 us+sy = 总的消耗的cpu资源 id --》idle 空闲的cpu系统资源 100% 表示cpu满负荷运转| 管道符号: 将前面一个命令的输出送给后面一个命令作为输入
管道符号:本质是实现了进程和进程之间的通信
[root@localhost lianxi]# tac song.txt |nl
1 SONG ZHI QIANG
2 东北 吉林 长白山
3 changsha
4 男
5 22
[root@localhost lianxi]#
[root@localhost lianxi]# cat -n zhangshaowei.txt |more
wc 统计文件有多少行,单词,字节
head 默认取文件前10行
tail 默认取文件的尾10行
[root@localhost lianxi]# cat zhangshaowei.txt |wc -l 统计zhangshaowei.txt文件有多少行
19980000
[root@localhost lianxi]#
wc 统计文件有多少行,单词,字节
wc - print newline, word, and byte counts for each file
-l, --lines
print the newline counts
[root@localhost lianxi]# wc -l zhangshaowei.txt 直接统计有多少行
19980000 zhangshaowei.txt
[root@localhost lianxi]#
head 默认取文件前10行
tail 默认取文件的尾10行
[root@localhost lianxi]# head -5 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost lianxi]#
[root@localhost lianxi]# tail -3 passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
[root@localhost lianxi]#
[root@localhost lianxi]# nl passwd|head|tail -6 取5到10行的内容
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost lianxi]#
只取第8行
[root@localhost lianxi]# nl passwd|head -8|tail -1
8 halt:x:7:0:halt:/sbin:/sbin/halt
[root@localhost lianxi]#
两种格式: head -n number 文件名
head -数字 文件名
[root@localhost lianxi]# nl passwd|head -n 8|tail -n 1
8 halt:x:7:0:halt:/sbin:/sbin/halt
[root@localhost lianxi]# nl passwd|head -8|tail -1
8 halt:x:7:0:halt:/sbin:/sbin/halt
[root@localhost lianxi]#
[root@localhost lianxi]# head -200 zhangshaowei.txt
1 welcome to sanchuang ,we are now learning cat and more , we want to know what their diffrence
2 welcome to sanchuang ,we are now learning cat and more , we want to know what their diffrence
tail -f 动态监控某个文件,一直盯着这个文件的末尾查看,一旦有的内容往文件里写入,马上就可以看到
[root@localhost lianxi]# touch zengqilin.txt
[root@localhost lianxi]# tail -f zengqilin.txt
hello,zengqilin
hello,zengqilin
hello,zengqilin
zengdashi
^C ---》按ctrl+c强行终止
[root@localhost lianxi]#
再另外开一个终端,使用重定向追加内容到zengqilin.txt里
[root@localhost lianxi]# echo "hello,zengqilin" >>zengqilin.txt
[root@localhost lianxi]# echo "hello,zengqilin" >>zengqilin.txt
[root@localhost lianxi]# echo "hello,zengqilin" >>zengqilin.txt
[root@localhost lianxi]# echo "zengdashi" >>zengqilin.txt
[root@localhost lianxi]#
tail -f 未来我们会监控一些日志文件,看日志文件的变化
日志文件:记录日志的文件
日志 log: 是电脑里的程序记录当时发生的事情到一个文件里,会记录时间,程序,发生事情 --》摄像头监控,把发生的事情记录下来,方便以后排查故障
[root@localhost log]# df -Th 查看linux里的磁盘分区的挂载使用-->打开计算机
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 903M 0 903M 0% /dev
tmpfs tmpfs 915M 0 915M 0% /dev/shm
tmpfs tmpfs 915M 9.5M 905M 2% /run
tmpfs tmpfs 915M 0 915M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 3.5G 14G 21% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 183M 0 183M 0% /run/user/0
windows里喜欢叫盘,linux喜欢叫分区
一个分区就是一个盘
挂载: 相当于windows里的移动硬盘连接到系统里,系统给它分配一个盘符,这样我们就可以去使用移动硬盘里的数据了
[root@localhost log]# df |tail -n +2 从第2行开始,显示到末尾
devtmpfs 924396 0 924396 0% /dev
tmpfs 936380 0 936380 0% /dev/shm
tmpfs 936380 9704 926676 2% /run
tmpfs 936380 0 936380 0% /sys/fs/cgroup
/dev/mapper/centos-root 17811456 3583272 14228184 21% /
/dev/sda1 1038336 153580 884756 15% /boot
tmpfs 187280 0 187280 0% /run/user/0
[root@localhost log]# df |tail -n 2 显示最后2行
/dev/sda1 1038336 153580 884756 15% /boot
tmpfs 187280 0 187280 0% /run/user/0
[root@localhost log]#
sed 可以显示不连续的行
sed是linux里的文本替换和处理的命令
-n 不显示不符合条件的行
1p 显示第1行 print
; 命令连接符号:作用是先执行前面的命令,然后执行后面的命令
多个命令一起执行的时候使用
[root@localhost lianxi]# nl new_passwd|sed -n '1p;3p;5p' 不连续的
1 root:x:0:0:root:/root:/bin/bash
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost lianxi]# nl new_passwd|sed -n '1,5p'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost lianxi]# nl new_passwd|sed -n '5,10p'
5,10p 显示第5行到第10行之间的行
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost lianxi]#
history 查看历史命令记录,你累计使用了多少命令了
提升效率–》偷懒的
!620 表示执行第620条历史命令
!nl 表示执行离最后一条命令最近使用过的以nl开头的命令
上下方向键 --》可以调出以前的历史命令
history -c 清除历史命令 clear
env bc grep[root@localhost lianxi]# env 查看Linux系统里的当前的环境变量,
HISTSIZE=1000 --》指明历史命令最多可以保留1000条
[root@localhost lianxi]# yum install bc -y
bc 是linux里计算器
[root@localhost lianxi]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
20*1*2000
40000
40000/1024
39 --》39k的空间
quit
[root@localhost lianxi]#
[root@localhost lianxi]# echo "60+50"|bc
110
[root@localhost lianxi]# echo 60+50
60+50
[root@localhost lianxi]# echo 60+50|bc
110
[root@localhost lianxi]#
[root@localhost lianxi]# echo 60+50.5|bc
110.5
[root@localhost lianxi]#
数组:
[root@localhost lianxi]# vim /etc/profile
修改HISTSIZE变量的值
HISTSIZE=2000
[root@localhost lianxi]# env|grep HIS
HISTSIZE=1000
HISTConTROL=ignoredups
[root@localhost lianxi]#
不会立马生效,三种方法:
重新登录用户
重启系统
source shell脚本
[root@localhost lianxi]# su - root 重新登陆用户,会加载新的变量的值
上一次登录:二 10月 19 11:46:17 CST 2021从 192.168.149.1pts/2 上
[root@localhost ~]# env|grep HISTS
HISTSIZE=2000
[root@localhost ~]#
reboot系统也是可以
[root@localhost ~]# source /etc/profile 在当前shell里执行脚本/etc/profile --->推荐使用
[root@localhost ~]# env|grep HISTS
HISTSIZE=3000
[root@localhost ~]#
grep 是文本过滤的命令
一行一行的去匹配字符串,如何有符合要求的行,就显示出来,不符合要求就不显示
====
linux文本处理3剑客
1.grep 文本过滤
2.sed 文本替换
3.awk 文本截取(列,字段)
[root@localhost lianxi]# cat zengqilei.txt |grep shaoyang
zengqilei shaoyang wugang
[root@localhost lianxi]#
[root@localhost lianxi]# sed -i 's/zeng/hu/' zengqilei.txt
[root@localhost lianxi]# cat zengqilei.txt
huqilei shaoyang wugang
21
[root@localhost lianxi]#
[root@localhost lianxi]# w|tail -n +2|awk '{print $2}'
TTY
tty1
pts/0
pts/1
pts/2
[root@localhost lianxi]#
为什么重新登陆,发现历史命令又多了?
.bash_history 文件是保存在用户的家目录下的,里面保存的是这个用户上次登录linux系统的时候,使用过的命令
[qiangge@localhost ~]$ history -c 清除历史命令 [qiangge@localhost ~]$ rm -rf .bash_history 删除保存历史命令的文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FOodtV2y-1645066395211)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l39WBzzB-1645066426780)(%28C:%5CUsers%5Cxixi%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20211220120431792.png#pic_center)]
)]
[root@localhost qiangge]# which cp alias cp='cp -i' /usr/bin/cp [root@localhost qiangge]# which mkdir /usr/bin/mkdir [root@localhost qiangge]# bin binary 二进制 0 1 1 0 一般的linux命令都是二进制文件,而且是可以运行(执行) [root@localhost bin]# which zhangshaowei /usr/bin/which: no zhangshaowei in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) [root@localhost bin]# which zengqilei /usr/bin/which: no zengqilei in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) [root@localhost bin]# PATH变量 which命令去linux系统里查找命令的时候,会固定的到某些文件夹里去寻找 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin which mkdir 会从PATH变量定义的路径里,从左边第1个文件夹开始查找,如果找到了,就不往下走,如果没有找到,往第2个文件夹里查找,以此类推 [root@localhost bin]# env|grep PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost bin]#我们自己编写的程序,要想让linux系统知道,如何处理? 答案1:将你的程序复制到PATH变量指定的文件夹下就可以了
linux会到PATH变量指定的路径(文件夹)里查找命令 [root@localhost bin]# mkdir /sc [root@localhost bin]# cd /sc [root@localhost sc]# ls [root@localhost sc]# vim hello.c #include答案2:修改PATH变量的值int main() { printf("hello,world,i am calin"); printf("we are learning linux PATH n "); return 0; } [root@localhost sc]# yum install gcc -y 安装gcc编译器 编译器: 将c语言的代码翻译成机器可以认识的语言(二进制) gcc -o hello hello.c 将hello.c文件编译成hello这个二进制文件(程序) [root@localhost sc]# gcc -o hello hello.c [root@localhost sc]# ls hello hello.c [root@localhost sc]# [root@localhost sc]# which hello /usr/bin/which: no hello in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) [root@localhost sc]# pwd /sc [root@localhost sc]# 1.改变不了世界,我们要适应世界 ---》搭顺风车 [root@localhost sc]# cp hello /usr/bin [root@localhost sc]# which hello /usr/bin/hello [root@localhost sc]# [root@localhost sc]# hello 运行hello程序 hello,world,i am cali we are learning linux PATH [root@localhost sc]#
x=1 x= x +1 先算=号的右边的公式,然后将结果赋值给左边的x x=2 [root@localhost sc]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost sc]# PATH=/sc:$PATH --->临时修改 PATH=/sc:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost sc]# echo $PATH /sc:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost sc]# which haoge /sc/haoge 去掉前面的/sc,重新定义PATH变量 [root@localhost sc]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin如果永久有效的修改PATH变量的值?
修改/etc/profile 添加下面的一行,在第1行添加就可以 [root@localhost /]# vim /etc/profile -->对所有的用户都生效,都知道你的程序安装的路径了 PATH=/sc:$PATH
练习题: 1.新建一个文件夹/changsha 2.进入/changsha,使用vim编写一个程序叫changsha.c #includeint main() { printf("hello,world,i am changshan"); return 0; } 3.编译changsha.c成saychangsha程序 4.复制saychangsha到/usr/bin目录下 5.修改PATH变量的值,在最前面添加/changsha 6.which saychangsha 查看路径 7.删除/usr/bin下的saychangsha 8.which saychangsha 查看路径 9.执行saychangsha 10.永久修改PATH变量的值,让所有的用户都可以使用saychangsha这个程序 11.新建用户cs 12.切换用户到cs 13.输出PATH变量的值,执行saychangsha
文件夹/changsha
2.进入/changsha,使用vim编写一个程序叫changsha.c
#include
int main()
{
printf(“hello,world,i am changshan”);
return 0;
}
3.编译changsha.c成saychangsha程序
4.复制saychangsha到/usr/bin目录下
5.修改PATH变量的值,在最前面添加/changsha
6.which saychangsha 查看路径
7.删除/usr/bin下的saychangsha
8.which saychangsha 查看路径
9.执行saychangsha
10.永久修改PATH变量的值,让所有的用户都可以使用saychangsha这个程序
11.新建用户cs
12.切换用户到cs
13.输出PATH变量的值,执行saychangsha



