今天继续给大家更新Linux常用命令,学Linux不学命令等于没学,今天更新的有echo、>、>>、{}、head、tail、grep、wc、lscpu、free、df、uptime、w。
1.echo 文件 # 输出后面内容到文件
echo 内容 #直接输出内容到屏幕
echo -n #输出内容不换行
echo -e #激活特殊符号 后面字符串加双引号、
特殊符号:\t tab键 \n 换行符
echo 内容 > 文件 输出内容到文件中,文件不存在则文件自动创建,源文件内容会被覆盖
echo 内容 >> 文件 输出内容到文件中,文件不存在则文件自动创建,追加内容到文件的底部
2.> #作用,接收所有输出的内容,只接收执行正确的结果,命令错误还是文件不存在都不行
>> #作用,追加所有输出的内容
>1.txt 快速清空1.txt
其实前面省略了1
2>错误信息覆盖
2>>错误信息追加
执行命令将不同的结果,输入到同一文件中,在后面追加即可
示例1:将查询koten.txt的详细信息不管正确还是错误都输入到1.txt当中
[root@VMware-koten ~]#ll koten.txt >>1.txt 2>> 1.txt
[root@VMware-koten ~]#ll koten.txt >>1.txt 2>&1 #简写
[root@VMware-koten ~]#ll koten.txt &>>1.txt #简写
示例2:通过结果可以看出是先创建,再ll查看再写入
[root@VMware-koten ~]#ll
total 0
[root@VMware-koten ~]#ll > 1.txt
[root@VMware-koten ~]#cat 1.txt
total 0
-rw-r--r--. 1 root root 0 Feb 28 10:14 1.txt
[root@VMware-koten ~]#
小结:
> #正确的输出重定向 只接收正确结果 先清空后写入
>> #正确追加输出重定向 只接收正确结果 追加内容
2> #错误的输出重定向 只接收错误结果 先清空后写入
2>> #错误追加输出重定向 只接收错误结果 追加内容
注意:>>koten.txt 2>&1 两个顺序可以调整 也可以直接简写成&>>koten.txt
简写的时候几个大于符号决定是追加还是写入看前面那个
后面的一个大于符号是固定的语法。
3.{} #生成序列,数字,字母,不连续的数字或者字符串和其他字符串拼接。
echo、touch、mkdir、ls都可以用
示例1:
[root@VMware-koten ~]#echo {001..10}
001 002 003 004 005 006 007 008 009 010
示例2:生成字符序列
[root@VMware-koten ~]#mkdir {a..c} #相当于执行 mkdir a b c
[root@VMware-koten ~]#ll
total 3
drwxr-xr-x. 2 root root 6 Feb 28 10:53 a
drwxr-xr-x. 2 root root 6 Feb 28 10:53 b
drwxr-xr-x. 2 root root 6 Feb 28 10:53 c
[root@VMware-koten ~]#
示例3:数字序列和其他字符串拼接,字母序列同理
[root@VMware-koten ~]#echo {1..3}.txt
1.txt 2.txt 3.txt
[root@VMware-koten ~]#
示例4:序列和序列拼接
[root@VMware-koten ~]#echo {1..3}{a..c}
1a 1b 1c 2a 2b 2c 3a 3b 3c
[root@VMware-koten ~]#echo {a..c}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3
[root@VMware-koten ~]#
示例5:备份 #只是说有这种方法,其实挺麻烦 如果在没有的目录下touch,需要先创建目录
[root@VMware-koten ~]#touch 1.txt
[root@VMware-koten ~]#echo 1.txt{,_bak}
1.txt 1.txt_bak
[root@VMware-koten ~]#cp 1.txt{,_bak}
[root@VMware-koten ~]#ll
total 0
-rw-r--r--. 1 root root 0 Feb 28 11:26 1.txt
-rw-r--r--. 1 root root 0 Feb 28 11:26 1.txt_bak
[root@VMware-koten ~]#
示例6:指定递增增加的数量
[root@VMware-koten ~]#echo {1..10..2}
1 3 5 7 9
[root@VMware-koten ~]#
4.head 文件 #默认显示文件的前10行
head -n 3 #显示文件的前3行 简写为head -3,省略n
示例1:配合管道符与其他命令配合显示
[root@VMware-koten ~]#ip a|head -3
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
[root@VMware-koten ~]#
只要是能输出到屏幕上的都能给管道,将前面命令输出作为后续命令的输入
head可以直接接文件,如果没有文件则将执行结果传递给管道
[root@VMware-koten ~]#head 1.txt|head -3 #顺序不能错
1
2
3
[root@VMware-koten ~]#
5.tail 文件 用法跟head一样,一个显示头一个显示尾
tail -f 文件名称 #实时显示文件最新的内容,实时显示文件变化 f是follow
tail -F 文件名称 #可以监控不存在的文件,等着这个文件创建
tailf 文件名称 #作用同上
ctrl+c退出实时监控
6.grep #模糊过滤文件内容
grep “过滤的内容” 文件
grep -i “过滤的内容” 文件 #过滤文件的内容忽略大小写
示例1:查看ip中的10.0.0.200是否出现
[root@VMware-koten ~]#ip add|grep 10.0.0.200
inet 10.0.0.200/24 brd 10.0.0.255 scope global eth0
[root@VMware-koten ~]#
示例2:过滤文件中包含“Failed”的行 直接过滤区分大小写
[root@VMware-koten ~]#grep "Failed" /var/log/secure
Feb 27 10:18:12 VMware-koten sshd[20161]: Failed password for root from 10.0.0.1 port 53333 ssh2
Feb 27 17:10:39 VMware-koten sshd[34342]: Failed password for root from 10.0.0.1 port 57720 ssh2
[root@VMware-koten ~]#
[root@VMware-koten ~]#alias grep='grep -i --color=auto' #临时更改
永久更改需要加环境变量
示例3:过滤文件中包含“Failed”的行 忽略大小写
[root@VMware-koten ~]#grep -i "Failed" /var/log/secure
Feb 27 10:18:10 VMware-koten unix_chkpwd[20164]: password check failed for user (root)
Feb 27 10:18:12 VMware-koten sshd[20161]: Failed password for root from 10.0.0.1 port 53333 ssh2
Feb 27 17:10:38 VMware-koten unix_chkpwd[34345]: password check failed for user (root)
Feb 27 17:10:39 VMware-koten sshd[34342]: Failed password for root from 10.0.0.1 port 57720 ssh2
[root@VMware-koten ~]#
示例4:过滤文件中包含“Failed”的行,统计行数
[root@VMware-koten ~]#grep -i "Failed" /var/log/secure|wc -l
4
[root@VMware-koten ~]#
[root@VMware-koten ~]#grep -c "Failed" /var/log/secure
4
[root@VMware-koten ~]#
7.wc -l 文件 #查看当前文件的总行数
文件可以放到前面也可以放到后面
[root@VMware-koten ~]#wc -l 1.txt
20 1.txt
[root@VMware-koten ~]#cat 1.txt |wc -l
20
[root@VMware-koten ~]#
8.lscpu #查看cpu相关配置信息
[root@VMware-koten ~]#lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1 #总核心数
On-line CPU(s) list: 0 #第一个核心以0来表示
Thread(s) per core: 1
Core(s) per socket: 1 #cpu的个数
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Stepping: 10
CPU MHz: 2208.004
BogoMIPS: 4416.00
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 9216K
NUMA node0 CPU(s): 0
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
[root@VMware-koten ~]#
扩展:一般服务器是2-4个cpu,cpu中的核决定的是并发能力,几核就好比几个工人同时工作
9.free #查看内存 必会!!!
[root@VMware-koten ~]#free
total used free shared buff/cache available
Mem: 2027868 204076 1712472 9688 111320 1687868
Swap: 1048572 0 1048572
[root@VMware-koten ~]#
注意:free与available是因为内存欺骗行为
[root@VMware-koten ~]#free -h #换算单位查看
total used free shared buff/cache available
Mem: 1.9G 199M 1.6G 9.5M 108M 1.6G
Swap: 1.0G 0B 1.0G
[root@VMware-koten ~]#
10.df-h #查看磁盘 看不到swap,因为swap是内存了,用到才会显示磁盘 df全程是disk file
[root@VMware-koten ~]#df -h
Filesystem #磁盘系统 Size Used Avail Use% Mounted on #挂载点
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 19G 1.9G 17G 10% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
[root@VMware-koten ~]#
11.uptime #显示系统负载
[root@VMware-koten ~]#uptime
11:54:23 up 1:00, 1 user, load average: 0.00, 0.01, 0.05
当前时间 当前操作系统运行的时长 当前登录用户 平均负载 1分钟 5分钟 15分钟
主要是看1分钟,5分钟和15分钟,过于繁忙要分情况去检查,看是正常访问还是有人攻击
负载是衡量操作系统的繁忙程度,当负载数字达到cpu核心总数,说明非常繁忙
4核心==负载不能超过4
1种情况 服务器对用户不能超过核心数 会卡
2种情况 负载自身做运算 不对用户的话随便超 这个叫服务器的充分运用
[root@VMware-koten ~]#
12.w #显示系统负载及登录的一些信息 系统中最短命令 最有个性 不然执行提示窗口太小,施展不开
[root@VMware-koten ~]#w
w: 56 column window is too narrow
[root@VMware-koten ~]#w
12:02:51 up 1:08, 1 user, load average: 0.03, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 10:56 3.00s 0.13s 0.03s w
[root@VMware-koten ~]#
TTY是虚拟机登录的
pts是远程连接的
from来源地址是本机VMnet8的ip地址
curl cip.cc curl ifconfig.me 查看本地公网的IP地址
如果是在阿里云服务器下w,form显示自己路由器的公网IP
what是当前用户在干嘛
查询信息命令小结:
查看cpu:lscpu
查看内存:free -h
查看磁盘:df -h
查看负载:uptime
查看负载和登录信息:w
我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!