Linux 学习笔记 (一)

【01】:find 查找文件

find /home/  -iname  "*.sh" |xargs -I {} ls -li {}
find /root/ -type f -name "*.sh" | xargs -i  cp {}  /tmp/


#加-i 参数直接用 {}就能代替管道之前的标准输出的内容; 
#加 -I 参数 需要事先指定替换字符 xargs还有指定参数位置的作用。
#假设我们要将目录下所有的.py文件放到Python目录中去,可以使用命令

find . -name '*.py' | xargs -I {} mv {} ./Python
#参数-I指定了管道前命令作为参数所应该在管道后面命令的位置。

 

【02】: ls -l --full-time  / ls -l --time-style=long-iso 

【03】:文件的( -rwxrwxrwx. )getenforce  关闭SELinux是没有这个点  开启的时候是有这个( . )点

              关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled
【04】 : shell 中常见的算术运算符  

             (1):(()) (2):let  (3):expr(4):bc 可以小数运算( 5 ):$[ ](6):awk  可以小数运算   (7):declare

【05】: lsblk , blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包 .

【06】:seq命令用于产生从某个数到另外一个数之间的所有整数。 

        seq[选项]... 尾数

        seq[选项]... 首数 尾数

        seq[选项]... 首数 增量 尾数
      

        -f, --format=格式 使用printf样式的浮点格式

        -s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n)

        -w, --equal-width 在列前添加0 使得宽度相同

       echo `seq -s + 100 |bc`
       echo `seq -s + 100 |bc`

       echo `seq -s '+' 100 `=`seq -s "+" 100 |bc` 

       echo `seq -s '+' 10 `=$((`seq -s "+" 10`)) 

【07】:dmsetup — low level logical volume management

【08】:resize2fs     :resize2fs命令被用来增大或者收缩未加载的“ext2、ext3、ext4”文件系统的大小.

【09】:ls -ltr     -l 长格式输出  -t  按文件最后访问(或修改)的时间排序,最新的排在最前面;  -r 逆序列出文件; -L 递归显示,也就是说,当我们列某个目录的下的所有文件和目录时,能把它的下级目录的内容显示出来。

【10】:自动补全 

yum install bash-completion  

【11】:查看网络状态命令

# netstat -antp #查看所有网络连接
# netstat -lntp #只查看监听的端口信息
# lsof -p pid #查看进程打开的文件句柄
# lsof -i:80  #查看端口被哪个进程占用

【12】:使用Cat 批量追加

cat >> /etc/hosts << EOF

172.16.1.63 node1

172.16.1.64 node2

172.16.1.65 nfs

EOF

【13】:SSH 免密钥登陆

# ssh-keygen -t dsa -f ~/.ssh/id_dsa -N  ""

# ssh-copy-id node1

 # ssh-copy-id nfs

【14】:#给 hacluster 用户增加密码

echo 123456 | passwd --stdin hacluster

【15】:找出当前系统内存使用量较高的进程

ps -aux | sort -rnk 4 | head -20

【16】:找出当前系统CPU使用量较高的进程

 ps -aux | sort -rnk 3 | head -20

【17】:持续 ping 并将结果记录到日志

ping api.jpush.cn  | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()) } ' >> /tmp/jiguang.log &`

【18】:查看tcp连接状态

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

【19】:查找80端口请求数最高的前20个IP

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20`

【20】:查找并删除/data这个目录7天前创建的文件

# find /data -ctime +7 -exec rm -rf {} \;
# find /data -ctime +7 | xargs rm -rf

【21】:使用stat命令查看一个文件的属性

#访问时间(Access)、修改时间(modify)、状态改变时间(Change)
stat index.php
#Access: 2019-05-10 02:37:44.169014602 -0500
#Modify: 2019-05-09 10:53:14.395999032 -0400
#Change: 2019-05-09 10:53:38.855999002 -0400

【22】:筛除出文件中的注释和空格

方法1:
# grep -v "^#" httpd.conf |grep -v "^$"
方法2:
# sed -e ‘/^$/d’ -e ‘/^#/d’ httpd.conf > http.conf
或者 
# sed -e '/^#/d;/^$/d'     #-e 执行多条sed命令
方法3:
# awk '/^[^#]/|/"^$"' httpd.conf 
或者 
# awk '!/^#|^$/' httpd.conf

【23】:查看/var 目录下大于1G的文件

find /var  -size +1024M

【24】:find命令查找文件并复制到/tmp目录

方法1:
# find /etc -name httpd.conf -exec cp -rf {} /tmp/ \;:    #-exec执行后面命令,{}代表前面输出的结果,\;结束命令
方法2:
# find /etc -name httpd.conf |xargs -i cp {} /tmp     #-i表示输出的结果由{}代替

【25】:列出nginx日志访问最多的10个IP

方法1:
# awk '{print $1}' access.log |sort |uniq -c|sort -nr |head -n 10
sort :排序
uniq -c:合并重复行,并记录重复次数
sort -nr :按照数字进行降序排序   
方法2:
# awk '{a[$1]++}END{for(v in a)print v,a[v] |"sort -k2 -nr |head -10"}' access.log

【26】:显示nginx日志一天访问量最多的前10位IP

# awk '$4>="[16/May/2017:00:00:01" && $4<="[16/May/2017:23:59:59"' access_test.log |sort |uniq -c |sort-nr |head -n 10
# awk '$4>="[16/Oct/2017:00:00:01" && $4<="[16/Oct/2017:23:59:59"{a[$1]++}END{for(i in a){print a[i],i|"sort -k1 -nr |head -n 10"}}' access.log

【27】:获取当前时间前一分钟日志访问量

# date=`date +%d/%b/%Y:%H:%M --date="-1 minute"` ; awk -vd=$date '$0~d{c++}END{print c}' access.log
# date=`date +%d/%b/%Y:%H:%M --date="-1 minute"`; awk -vd=$date '$4>="["d":00" && $4<="["d":59"{c++}END{print c}' access.log 
# grep `date +%d/%b/%Y:%H:%M --date="-1 minute"` access.log |awk 'END{print NR}'
# start_time=`date +%d/%b/%Y:%H:%M:%S --date="-5 minute"`;end_time=`date +%d/%b/%Y:%H:%M:%S`;awk -vstart_time="[$start_time" -vend_time="[$end_time" '$4>=start_time && $4<=end_time{count++}END{print count}' access.log

【28】:找出IP地址

ifconfig |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' 
#-o只显示匹配字符

【29】:将系统进程按内存占用大小排列显示出来

ps -e -o "%C : %p : %z : %a"|sort -k5 -nr

【30】:将系统进程按CPU占用大小排列显示

ps -e -o "%C : %p : %z : %a"|sort -nr

【31】:Vim自动添加注释及智能换行

# vi ~/.vimrc 
set autoindent
set tabstop=4
set shiftwidth=4
function AddTitle()
call setline(1,"#!/bin/bash")
call append(1,"#====================================================")
call append(2,"# Author: resines")
call append(3,"# Create Date: " . strftime("%Y-%m-%d"))
call append(4,"# Description: ")
call append(5,"#====================================================")
endf
map <F4> :call AddTitle()<cr>

 

        



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值