liunx 一些极其少用的命令经典命令

1.sudo !!

这个命令是捕获系统输入的最后一条的命令

2.mtr 命令

这个命令是做网络跟踪的,今天虚拟机做不出来,改天想怎么搞啊

3.nl 命令

这个命令是查看文本文件的时候,按行号显示,跟cat -n 是一样的

4.shulf 和tree 、pstree

这个是结合ls 一起使用 ,用于目录文件,竖行显示,这个命令可以说非常少用

tree是把目录文件,按照树形显示,系统可能没有这个包需要按照这个包,才可以执行命令:

shulf 命令
[root@localhost shell]# ls | shuf 
cjyh.sh
kefu.sh
fw.sh
ip.sh
js.sh
[root@localhost shell]# ls | shuf  -n1  //这个是随机抽取一个文件
kefu.sh

tree命令

[root@localhost log]# yum -y install  tree 

[root@localhost ~]# tree
.
├── anaconda-ks.cfg
└── shell
    ├── cjyh.sh
    ├── fw.sh
    ├── ip.sh
    ├── js.sh
    └── kefu.sh

pstree 这个是进程按树形结构显示,显示当前进程以及相关子进程,输出信息跟“tree”类似
[root@localhost ~]# yum -y install  psmisc-22.20-15.el7.x86_64

[root@localhost ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─abrt-watch-log
        ├─abrtd
        ├─agetty
        ├─atd
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─lsmd
        ├─lvmetad

5.last 命令

这个命令是查看上一次登录用户的历史信息。这个没拿过来通过收搜文件“/var/log/wtmp”,显示logged-i 和 logged -out 及其“tty’s”的用户列表

这命令最经常用就是统计登录用户:
last| awk ‘{S[$3]++}{for(a in S) print S[a],a}’ |sort|uniq|sort -h

参考博文:
1.last 命令的选项和具体的实例:
https://www.cnblogs.com/diantong/p/8940154.html
https://www.jb51.net/article/149313.htm

2.使用last统计系统的登录用户
https://www.cnblogs.com/ftl1012/p/last.html

6.curl ifconfig.me

这是一个查询外部网络的命令,当然还有其他好几条

Curl 纯文本格式输出:
curl icanhazip.com
curl ifconfig.me
curl curlmyip.com
curl ip.appspot.com
curl ipinfo.io/ip
curl ipecho.net/plain
curl www.trackip.net/i

curl JSON格式输出:
curl ipinfo.io/json
curl ifconfig.me/all.json
curl www.trackip.net/ip?json (有点丑陋)

以上这些都是可以都可以使用,为什么这么多,我现在也搞不清楚

参考博客:
https://my.oschina.net/epstar/blog/513186

7.lsof -i:端口号

这个命令是用于查看某一端口号的占用情况,比如 22端口的使用情况

其实跟ss -ntulp | grep 22 的命令有异曲同工之妙

[root@localhost ~]# lsof -i:22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    7579 root    3u  IPv4  42501      0t0  TCP *:ssh (LISTEN)
sshd    7579 root    4u  IPv6  42510      0t0  TCP *:ssh (LISTEN)
sshd    8911 root    3u  IPv4  51617      0t0  TCP localhost.localdomain:ssh->192.168.159.1:59768 (ESTABLISHED)

参考博文:
1.具体的讲解
https://www.cnblogs.com/sparkbj/p/7161669.html
2命令的语法结构,选项的使用
https://www.cnblogs.com/mengfanrong/p/4619602.html
3.lsof ss netstat 的区别和实际的运用实例
http://www.361way.com/lsof-ss-netstat/4351.html

8.cut 命令

[root@localhost shell]# wc -l /etc/passwd | cut -d "" "-f1"
27 /etc/passwd
[root@localhost shell]# wc -l /etc/passwd | cut -d" " -f1
27

截取的命令,这个命令是很少用到,但是写脚本的时候,也会经常用到这个命令,可以指定看看文件的内容,

参考博客:
https://www.cnblogs.com/Spiro-K/p/6361646.html
https://www.cnblogs.com/siqi/p/3608893.html

9.seq 命令

这个命令经常用到脚本里进行数据计算 ,如下图

[root@localhost shell]# seq -w 1 10
01
02
03
04
05
06
07
08
09
10
[root@localhost shell]# seq 1 10
1
2
3
4
5
6
7
8
9
10

11.关于 脚本里的一些特殊的符号的含义

$# 是传给脚本的参数个数
$0 是脚本本身的文件名
$1 是脚本后接的第一个参数
$2 是脚本后接的第二个参数
$@ 是传给脚本的所有参数列表,"$1" “$2” “ 3 " … " 3" … " 3""n”
$* 是以一个单字符串显示传给脚本的所有参数,"$1 $2 $3 … $n"
$$ 是脚本运行的当前进程ID号
$? 是最后运行命令的结束状态码,0表示没有错误,其他表示有错误

shift 造成参数变量号码偏移,第二个参数变为$1,以此类推。

12.sort 命令

sort 跟cat的命令是一样的,但是具体的选项是比较多的
是根据不的数据类型进行排序,默认是从小到大进行排序的
这个命令也是很常用,只是我自己很少用而已
这个命令经常配和uniq 一起使用 uniq 是去重的意思

这两个博文是sort 命令的详细解析和一些实例的应用:
https://www.cnblogs.com/ftl1012/p/9227263.html
https://www.cnblogs.com/zhangsubai/p/6861697.html

13.ftp 的 get 和 put 命令的使用

ftp 服务器 的get 命令是: 下载ftp服务器上的文件到本地
ftp 服务器 的put 命令是: 把本地的文件上传到ftp服务器上

当然还有其他的命令,查看一下这个目录:
https://www.jb51.net/article/124033.htm

14. 有时间要弄明白 cut 这个命令

15.echo $HOME 和pwd 这两个命令

pwd 是查看当前的目录
echo $HOME 是查看当前的使用账户(但是HOME必须是大写,小写无效)

[root@localhost ~]# echo $home

[root@localhost ~]# echo $HOME
/root

16. locate指令 (快速定位文件路径)

[root@king ~]# ls
anaconda-ks.cfg  shell  tang
[root@king ~]# locate shell
/etc/shells
/root/shell
/root/shell/cjyh.sh
/root/shell/fw.sh
/root/shell/ip.sh
/root/shell/js.sh
/root/shell/kefu.sh
/root/shell/scyh.sh
/root/shell/yhtj.sh
/root/shell/yhtj2.sh
/usr/bin/git-shell
/usr/lib/firewalld/services/kshell.xml

可以把所有关于shell的当前用户,当前目录下所有的shell 目录都给指定出来

17.stat 查看目录文件的

现网炒作命令

[root@king ~]# stat -c %Y shell
1548406055

  • 命令解释:
    -c 是以固定格式输入 %Y 最后一次修改,是以秒为单位

参考的博文:
https://blog.csdn.net/pointer_y/article/details/54347968
https://www.cnblogs.com/linux-super-meng/p/3812695.html
https://blog.csdn.net/yexiangcsdn/article/details/81012732

18.echo -e 处理特殊字符

若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

\a 发出警告声; 

\b 删除前一个字符; 

\c 最后不加上换行符号; 

\f 换行但光标仍旧停留在原来的位置; 

\n 换行且光标移至行首; 

\r 光标移至行首,但不换行; 

\t 插入tab; 

\v 与\f相同; 

\ 插入\字符; 

\nnn 插入nnn(八进制)所代表的ASCII字符;

参考博客:
https://blog.csdn.net/u012516524/article/details/84645830
http://www.zsythink.net/archives/96/
https://blog.csdn.net/sanbingyutuoniao123/article/details/72597274

19.使用egrep 进行两个字的过滤

[root@king ~]# ping -c  3 192.168.159.11
PING 192.168.159.11 (192.168.159.11) 56(84) bytes of data.
64 bytes from 192.168.159.11: icmp_seq=1 ttl=64 time=0.037 ms
64 bytes from 192.168.159.11: icmp_seq=2 ttl=64 time=0.100 ms
64 bytes from 192.168.159.11: icmp_seq=3 ttl=64 time=0.098 ms

--- 192.168.159.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.037/0.078/0.100/0.030 ms


[root@king ~]# ping -c  3 192.168.159.11  |egrep '%|rtt min' 
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.046/0.073/0.116/0.030 ms

grep 和egrep 都是对文本文件进行过滤,对目录没有效。

查看grep 和egrep 的区别:
https://blog.csdn.net/qq_41201816/article/details/80767308
https://www.cnblogs.com/ftl1012/p/9250684.html

20. grep -A-B -C的用法 ,这个是很少用到的选项

  • 实际生产环境下的,提取日志信息
 zcat  error.log.2019-02-19.bak.gz|grep -A 20 '2019-02-19 15'>20190220.txt

把过滤的日志信息,重定向到一个文件里

下面举几个例子

  1. grep -A1 keyword filename

找出filename中带有keyword的行,输出中除显示该行外,还显示之后的一行(After 1 or n)

2. grep -B1 keyword filename

找出filename中带有keyword的行,输出中除显示该行外,还显示之前的一行(Before 1 or n)

3. grep -C1 keyword filename

找出filename中带有keyword的行,输出中除显示该行外,还显示之前的一行(After 1)和显示之后的一行(After 1)

总体来说,-C覆盖面最大。用它保险些。哈哈。这3个开关都是关于匹配行的上下文的(context)。

21. 以固定时间反复,执行某个命令,例如cat 和执行脚本等:

[root@king python]# watch -n 1 python3 循环语句.py

watch的 -n 参数 指定反复执行的间隙,上面表示每隔1秒就执行 这个python脚本

22.查看命令是不是内部命令 type 命令

[root@king shell进阶]# type cd
cd 是 shell 内嵌
[root@king shell进阶]# type tomcat
-bash: type: tomcat: 未找到
[root@king shell进阶]# type ls
ls 是 `ls --color=auto' 的别名
[root@king shell进阶]# type ifconfig 
ifconfig 是 /usr/sbin/ifconfig
[root@king shell进阶]# type mkdir
mkdir 已被哈希 (/usr/bin/mkdir)

项目Value
:扩展参数列表,执行重定向操作
.读取并执行指定文件中的命令(在当前 shell 环境中)
alias为指定命令定义一个别名
bg将作业以后台模式运行
bind将键盘序列绑定到一个 readline 函数或宏
break退出 for、while、select 或 until 循环
builtin执行指定的 shell 内建命令
caller返回活动子函数调用的上下文
cd将当前目录切换为指定的目录
command执行指定的命令,无需进行通常的 shell 查找
compgen为指定单词生成可能的补全匹配
complete显示指定的单词是如何补全的
compopt修改指定单词的补全选项
continue继续执行 for、while、select 或 until 循环的下一次迭代
declare声明一个变量或变量类型。
dirs显示当前存储目录的列表
disown从进程作业表中刪除指定的作业
echo将指定字符串输出到 STDOUT
enable启用或禁用指定的内建shell命令
eval将指定的参数拼接成一个命令,然后执行该命令
exec用指定命令替换 shell 进程
exit强制 shell 以指定的退出状态码退出
export设置子 shell 进程可用的变量
fc从历史记录中选择命令列表
fg将作业以前台模式运行
getopts分析指定的位置参数
hash查找并记住指定命令的全路径名
help显示帮助文件
history显示命令历史记录
jobs列出活动作业
kill向指定的进程 ID(PID) 发送一个系统信号
let计算一个数学表达式中的每个参数
local在函数中创建一个作用域受限的变量
logout退出登录 shell
mapfile从 STDIN 读取数据行,并将其加入索引数组
popd从目录栈中删除记录
printf使用格式化字符串显示文本
pushd向目录栈添加一个目录
pwd显示当前工作目录的路径名
read从 STDIN 读取一行数据并将其赋给一个变量
readarray从 STDIN 读取数据行并将其放入索引数组
readonly从 STDIN 读取一行数据并将其赋给一个不可修改的变量
return强制函数以某个值退出,这个值可以被调用脚本提取
set设置并显示环境变量的值和 shell 属性
shift将位置参数依次向下降一个位置
shopt打开/关闭控制 shell 可选行为的变量值
source读取并执行指定文件中的命令(在当前 shell 环境中)
suspend暂停 Shell 的执行,直到收到一个 SIGCONT 信号
test基于指定条件返回退出状态码 0 或 1
times显示累计的用户和系统时间
trap如果收到了指定的系统信号,执行指定的命令
type显示指定的单词如果作为命令将会如何被解释
typeset声明一个变量或变量类型。
ulimit为系统用户设置指定的资源的上限
umask为新建的文件和目录设置默认权限
unalias刪除指定的别名
unset刪除指定的环境变量或 shell 属性
wait等待指定的进程完成,并返回退出状态码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值