Linux基本指令
-
连接SSH
- ssh uesrname@ip
- 例如:
ssh root@192.168.43.217
-
- 示例:
mkdir -p project/App;
- 注:删除多级文件夹:
rm -r 文件夹名
-- 表示循环删除文件夹,深入后逐个询问并删除
rm -rf 文件夹名
-- f表示强制执行,-rf直接删除,不询问。
-
- 管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。
- 连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
-
linux基本指令 awk、find、grep
- AWK是一种处理文本文件的语言,是一个强大的文本分析工具
- grep更适合单纯的查找或匹配文本;awk 更适合格式化文本,对文本进行较复杂格式处理
- grep查找具体的文本,find查找文件。
-
grep:-v 不显示匹配上的内容;-n 显示匹配上的内容
- grep -v down,显示不包含down的内容。
- grep -n down,显示包含down的内容。
-
- 两种方法:grep+wc;awk。
- grep+wc:
- 当个字符串:
grep 字符串 文件名|wc -l
,grep输出,wc -l按行统计
- 多个字符串:
grep 'objStr1\|objStr2' filename|wc -l
- awk:
- 语法1:
awk -v RS="@#$j" '{print gsub(/targetStr/,"&")}' filename
- 语法2:
awk '{s+=gsub(/targetStr/,"&")}END{print s}' filename
- 统计文件夹下特定类型文件个数
- 示例:统计文件夹下/mount/taskdata 以.log结尾的文件数量
- 法1:
find /mount/taskdata -name *.log |wc -l
-- find查找特定类型并统计
- 法2:
ls /mount/taskdata/*.log |wc -l
-- ls列出特定类型并统计
-
大文件中查找关键字出现的次数
-
查找文件:
- find /(查找范围) -name 查找关键字 -print
- find <指定目录> <指定条件> <指定动作>
- find的使用实例:
- find . -name 'my*'
:搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。
- find . -name 'my*' -ls
: 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
- find . -type f -mmin -10
: 搜索当前目录中,所有过去10分钟中更新过的普通文件。
- 如果不加-type f参数,则搜索普通文件+特殊文件+目录。
- find 可以与 wc 通过管道连接,进行一些统计操作。
-
- 通过查看日志access_log文件进行统计:
- cat access_log |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 100 | less
- 当前WEB服务器中联接次数最多的ip地址:
- netstat -ntu | tail -n +3|awk '{ print $5}' | cut -d : -f 1 | sort | uniq -c| sort -n -r | head -n 100
- 通过文件test.txt查询:
- cat test.txt | awk '{print $2}' | sort | uniq -c | sort -n -r | head -n 100
-
- 格式:uniq [options][file1 [files]]
- uniq -c file:file中的重复行输出一次,并在每行前显示重复次数
- uniq -d file:file中的重复行输出一次,但不输出唯一的行
- uniq -u file:只输出file中的唯一行
- uniq file1 file2:把file1中的重复的相邻行删除,并把每行的一个拷贝送到file2
- 示例:
cat a.txt|uniq -c
和uniq -c a.txt
获得相同结果
-
awk
-
查看端口
- netstat -tunlp 是查看所有的在使用的端口号情况
- netstat -tunlp | grep 端口号 是查看所查询的端口号情况
- 参数备注:
- -t:(tcp)仅显示TCP相关端口
- -u:(udp)仅显示UDP相关端口
- -n:不进行DNS轮询,显示IP(可以加速操作)
- -l:仅列出有在Listen(监听)的服务端口
- -p:显示建立相关链接的程序名
-
- 注:存疑,先这样吧。
- ps:使用场景:两个不同端口的微服务,当我们测试的时候,需要放到同一台服务器上,共享80端口访问
- ps -ef |grep 80
- netstat -anp |grep :80
-
查看进程
- ps -A 显示所有进程信息
- ps -u root 显示指定用户信息
- ps -ef 显示所有进程信息,连同命令行
- ps -ef|grep ssh 查找特定进程ssh
- ps -l 列出与本次登录有关的进程信息;
- ps -aux 查询内存中进程信息;
- ps -aux |more 分页显示结果
- ps -aux | grep *** 查询***进程的详细信息;
- ps -aux > ps001.txt 把所有进程显示出来,并输出到指定文件中
- ps -o pid,ppid,pgrp,session,tpgid,comm 输出指定字段
- top 查看内存中进程的动态信息;
- kill -9 pid 杀死进程。
-
- 操作:esc + 冒号 + set number + 回车
- 显示行号:
:set number
,可以简写为::set nu
- 关闭行号:
:set nonumber
,简写为::set nonu
-
- scp:secure copy的缩写, 是linux系统下基于ssh登陆进行安全的远程文件拷贝命令,可以在linux服务器之间复制文件和目录。
- 格式:scp [参数] [原路径] [目标路径]
- 从本地服务器复制到远程服务器:
- 复制文件: scp local_file remote_username@remote_ip:remote_folder
- 复制目录: scp -r local_folder remote_username@remote_ip:remote_folder
-
- 格式:
chmod ABC Filename
- chmod: 修改文件权限命令。
- rwx:4读取,2写入,1执行,
- User、Group、及Other的权限,同组用户的权限,其他用户的权限。
chmod u+r test.txt //增加用户可读
chmod u-w test.txt //撤销用户可写
chmod u=rw test.txt //重置用户权限(可读可写)
chmod u=- test.txt //重置用户权限(无任何权限)
chmod g=rw test.txt //重置用户组权限(可读可写)
//角色:
u (user)用户(文件所有者)
g (group)用户组(同一组中除了当前用户的其他用户)
o (other)其他用户(其他用户组下的所有用户)
a (all)所有用户
//操作符:
+ 增加权限
- 撤销权限
= 设置权限
//权限值:
r 可读,权限值4
w 可写,权限值2
x 可执行,权限值1
- 无任何权限,权限值0
-
- ps -ef 指令用来查询所有进程,grep通过管道来过滤。grep -v 是反向查询的意思,grep -v grep的作用是除去包含grep的项。
-
磁盘查询:
- du:(disk use)显示每个文件和目录的磁盘使用空间。
- df:(disk free)显示磁盘分区上可以使用的磁盘空间。
END