让你起飞的 20 个 Linux 命令骚操作
今天总结几个非常常用的Linux命令,其中有几个在面试中很可能问相关命令的原理,比如后台运行命令。希望对大家有所帮助,最好自己去尝试在Linux操作系统中实践一下。
1 查看目录以及权限
在windows中,使用dir查看当前目录中文件。在Linux中使用ls(list)查看当前目录文件。
windows中的dir,如下图所示
在Linux中,通常使用ls -l列出,其中可以查看文件属性,所属用户组等较为详细的信息。下面详细解释从左到右每一列是什么意思
ls -l
第一列第一个字段:文件类型,后面9个字符是模式,其中分为三组,每一组三个字段。第一组为所属用户权限。第二组为所属组的权限。第三组为其他用户所属权限。其中r(read)代表可读,w(write)代表可写,e(execute)代表可执行。在后面的9个字符中,如果是字母说明有相应的权限,如果为"-"代表没有权限。举一个例子
-rw-r-r--:此为普通文件,对于所属用户为可读可写不能执行,对于所属组仅仅可读,对于其他用户仅为读。
第二列 硬链接数目
硬链接允许作用之一是允许一个文件拥有多个有效路径名,从而防止误删。但是只能在同一文件系统中的文件之间进行连接,不能对目录进行创建。
第三列是所属用户,第四列为所属组,第五列为文件大小,第六列为文件被修改的时间,最后为文件名。其中使用chown改变所属用户,chgrp改变所属组。
2 nohup(no hang up不要挂起的意思)
这也是常用后台启动程序的常用方法,如果在交互命令行中运行程序,我们很容易就终止它。在交互环境下,我们的输出一般都会直接输出到当前界面,在后台启动的时候通常会定向到文件,那通常情况是下面这个命令。
nohup command >X.file 2 >&1 &
其中1表示标准输出。2表示文件标准错误输出。2>1&即将两者合并,但是合并到哪里,就是X.file.
3 查看进程
有的时候我们需要查看进程是否已经启动或者尝试终止进程。经常使用的命令为ps -ef---列出当前正在运行的程序,那如何定位我们想要查看的进程A,这个时候使用grep,即ps -ef| grep A.
4 awk
如果文件是csv(a.csv),按照","分割,需求为打印第一列和第二列
awk -F "," '{print 2}' a.csv
5 tar解压缩
解压缩命令
常用参数
-c:创建的tar文件
-x:解开tar文件
-t:列出tar文件中包含的文件信息
-r:附加新的文件到tar文件中
常用命令组合
tar -xvf /home/a.tar //打开tar打包文件
tar -zxvf /home/a.tar.gz //解压以gzip压缩的文件
tar -jxvf /home/a.tar.bz2 //解压以bzip压缩的文件
tar -cvf /home/a.tar /home 打包/home下所有文件
6 scp
通过scp命令在多台服务器中的相互复制 传输文件。为了省下输入密码,可以设置免密登录。
常用组合:
例子1:将A服务器中/home/a.txt 复制到B服务器的/home中
scp -r /home/a.txt root@B_ip:/home
7 林哥的死亡命令 rm -rf
翻车现场请看次条。
8 watch
这个命令是动态查看命令执行的结果。比如如果需要每隔一秒高亮显示网络连接数的变化情况。则 watch -n 1 -d netstat -ant
例子:每隔一秒高亮显示http连接数的变化情况
watch -n 1 -d 'pstree | grep http'
例子:十秒一次输出系统的平均负载
watch -n 10 'cat /proc/loadavg'
9 df
查看磁盘大小
df -h
10 tcpdump
和它类似的工具在windows中是wireshark,其采用底层库winpcap/libpcap实现。采用了bpf过滤机制。下面我们看看提供的不同参数的含义。
参数名含义-n使用IP地址表示主机。使用数字表示端口-i指定要监听的端口。如果为"-i any"表示住区所有网卡数据包-v输出诸如ip数据包中的TTL更加详细的信息-t不打印时间戳-e显示以太网帧头部信息-c仅仅抓取指定数量的数据包-x按照十六进制显示数据包内容-X不仅仅输出-x结果还输出十六进制对应的ASCII字符-s设置抓包时的抓包长度-w将输出结果定向到某个文件,一般为pcap后缀-r从文件读取数据包并显示数字表示端口
知道了相关参数,下面看几个案例
11 lsof
列出当前系统打开的文件描述符工具。可以得知感兴趣的描述符是被哪些进程使用
同样,我们看看相关参数
老规矩,上几个例子
12 nc
nc-->“瑞士军刀”。不知大家在渗透过程中,拿了shell有没有使用nc搞点事儿。它用来快速构建网络链接。常用来调试客户端程序。
小贱上案例
13 netstat
netstat是一个网络信息统计工具。它可以得到网卡接口上全部了解,路由表信息,网卡接口信息等。通常在网络编程中我们用它来显示TCP连接以及状态信息。
参数描述-n使用IP地址表示主机-a显示结果中包含监听的socket-t仅显示TCP连接-r显示路由信息-i显示网卡接口数据流量-c每隔1s输出一次-o显示socket定时器的信息-p显示socket所属的进程的PID和名字
下面列举几个常用例子
14 vmstat
vmstat能够实时输出系统的进程信息,内存使用,cpu使用等资源的使用情况
这里注意哈,如果查看磁盘的更加详细信息,有另外iostat所得到的信心就更加详细哟
15 mpstat
能够实时监测多处理器系统中各个cpu的使用情况。这个命令的执行需要安装sysstat,在centos中执行yum install systat就好了。
16 split
将文件分割为数个。
split -5 a.txt//将a.txt每5行分割为一个文件
17 wc -c +filename
统计文件中单词的个数。
18 more/less
一页一页显示,通过空白键显示下一页/上一页
19 head/tail
查看某文件前几行或者后几行
20 diff
diff -c file1 file2 //显示两个文件的差异
暖蓝告知
跟小蓝每天进步一点点,生活就会美一点!
欢迎关注,带你进入高手如云学习交流群,一起成长!
▼
[c/c++后台开发面经系列]3 bigo/映客面经(含答案)
版权声明: 本文为 InfoQ 作者【我是程序员小贱】的原创文章。
原文链接:【http://xie.infoq.cn/article/d2b5aea838b21b28028f19fa2】。文章转载请联系作者。
评论 (1 条评论)