linux小命令积累

命令

类型命令描述附加(不用看这一列)
文件系统类ls/cd文件浏览、到达目录

ext2/3/4

indexNode/ dataNode

硬链接、软链接

du磁盘使用描述
df磁盘系统描述
rm/rmdir/cp复制删除
系统状况free内存资源

内存模型

cpu/mem

PC、时间片

iostat/memstat/netstat各种状态
drop_cache缓存管理
top/w直观的看状态
ps/pstree进程
find utilfind找文件
xargs标准输入输出转化
awk不是find util, 但是在linux上极其易用
文本处理vim必须品
less/more/head/tail看文本的必需品
sed/tr文本匹配和转化
uniq去重
sort排序
wc字数统计
cat/zcat文本方式标准输出一个文件
文件处理tar包管理
gzip/unzipzip压缩
xz超高压缩比
od查看文件二进制码(遇到问题很有用),搭配sublime和 notepad++
网络操作curl配合chrome控制台
wget下载
python -m SimpleHTTPServer单线程文件服务器
tcpdump就像charles抓包

进程、用户相关

kill/killAll干掉进程
lsof找到一个文件的持有句柄的进程
who/su/sudo/ssh我是谁, 我在哪, 我要干什么
chown/chmod我能做什么
useradd/grpadd/passwd我能管谁
其他了解systemd虚拟化、容器化伴侣
service、supervisor

老式伴侣

nohup

标准输出重定向

> <标准输入输出重定向
0 1 2标准输入、输出、错误输出
2 >&1标准错误输出重定向到标准输出

 内存分析

pmap 查阅一个进程对应的内存地址

使用C语言可以把这块地址读出来:

gdb --batch --pid 858 -ex "dump memory d.dump 0x7fdf20000000 0x7fdf20000000+49156"

gdb调试这段C语言。

关闭端口

sudo  iptables -A INPUT -p tcp --dport 25 -j DROP
引申:
sudo  iptables -A OUTPUT -p udp --dport 25 -j ACCEPT

编程

数组

声明一个数组:

declare -a arr

将一个文件度取到数组里面去

arr=($(cat y | awk '{print $0}'))

或者
n=0
while read line
do
        avrr[$n]=$line
        let n=$n+1
done < y
 

取数组大小以及数组值

${av[$i]}
或者
${av[@]}

业余积累

安装图床软件Chevereto-Free

php的安装命令(Cent OS)
./configure  --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --enable-fastCGI --enable-fpm --with-curl --with-gd --enable-mbstring

 

原封不懂的拷贝目录结构而不拷贝数据

这种方法会打印出目录结构的构造语句, 需要拷贝执行:
find /server/ -maxdepth 3 -type d -exec ls -AdFhl {} \; | awk 'function auth(str){ read=0; if (substr(str,0,1)=="r") {read=4} write=0; if(substr(str,2,1)=="w") { write=2} exec=0; if (substr(str,3,1)=="x") {exec = 1} return read+write+exec;}  {file_name=$9; owner=$3; group=$4; auth_of=auth(substr($1, 2, 3))""auth(substr($1, 5, 3))""auth(substr($1, 8, 3)); print "mkdir -p "file_name" && chown "owner":"group" "file_name" && chmod "auth_of" "file_name}'
折叠一下就是:
find /server/ -maxdepth 3 -type d -exec ls -AdFhl {} \; | awk '
	function auth(str){ 
		read=0; 
		if (substr(str,0,1)=="r") { read=4} 
		write=0; 
		if (substr(str,2,1)=="w") { write=2} 
		exec=0; 
		if (substr(str,3,1)=="x") { exec = 1} 
		return read+write+exec;
	}  
	{
		file_name=$9; 
		owner=$3; 
		group=$4; 
		auth_of=auth(substr($1, 2, 3))""auth(substr($1, 5, 3))""auth(substr($1, 8, 3));
		print "mkdir -p "file_name" && chown "owner":"group" "file_name" && chmod "auth_of" "file_name
	}'
之前想过使用管道输出给 tar 来构建, 命令为:
find /server/ -maxdepth 3 -type d | xargs tar -cvfp dir.tar
但是 tar 命令仍然会将目录下所有文件压缩, 因此还需要再改进

分析acess.log找到访问请求次数

zcat logs/access.2016-01-12.log.gz | awk '{if($7!="/heart.html"){print $7}}' | sort -n | awk -F '?' '{if($1 ~ /.*[0-9]/){split($1, arr, "/");  last_index_flag="/"+arr[length(arr)]; print substr($1, 0, index($1, last_index_flag)-2)}else{print $1}}' | uniq -c
折叠一下是:
zcat logs/access.2016-01-12.log.gz | awk '{if($7!="/heart.html"){print $7}}' | sort -n | awk -F '?' '{
	if($1 ~ /.*[0-9]/){
		split($1, arr, "/");  
		last_index_flag="/"+arr[length(arr)]; 
		print substr($1, 0, index($1, last_index_flag)-2)
	} else {
		print $1
	}}' | uniq -c
目的是为了查看tomcat服务器上的http访问日志中每一个访问请求的访问次数. heart.html是服务器心跳用的, 有的请求是使用了Spring的 ${Variable} 写法. 但是上诉代码只能屏蔽使用数字写法的, 使用其他写法的得使用正则去匹
 

写bash脚本 ftp upload

代码片段:
function scpToFtp() {

        file_to_copy_to_ftp=$1
        file_on_remote=$2

        if [ -f $file_to_copy_to_ftp ]
        then
ftp -i -n <<UPLOAD

open ftp.ftp.com
user ftp_user ftp_password
binary

put $file_to_copy_to_ftp $file_on_remote

quit

UPLOAD
        echo "from "$file_to_copy_to_ftp" >>> "$file_on_remote

        fi
}

scpToFtp file1 file2
次数有一大坑:  put 那儿 所有空白字符都是空格, 不可以有制表等其他字符 出现
 

JAVA运维命令积累

jinfo  查看和修改java_opts

直接使用

jstat 查询jvm运行状态

jstat -gc 查询gc状态
jstat -class 查询类的加载情况

jmap 查询内存使用情况

jmap -dump:format=b,file=heap.bin   导出内存文件, 使用 eclipse memory anazy 分析
jmap -heap 查询内存使用情况



 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值