今天继续给大家更新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年运维经验,持续分享运维干货,感谢大家的阅读和关注!