压缩排除.svn目录

打包test目录,排除其中所有子目录中的.svn文件夹:

# tar -zcf test.tar.gz test/ --exclude=.svn
# zip -qr test.zip test/ -x "**/.svn**"

npm安装模块命令

npm安装模块时经常出现权限错误,可以用下面的参数:

# npm install --unsafe-perm=true --allow-root

创建免密登录

在需要免密登录的发起端执行,命令2中使用接收端的用户名和IP:

# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub [username]@[ip address]

时间同步

安装crontab,配置每6个小时向ntp服务器同步一次时间:

# yum -y install vixie-cron
# crontab -e
*/ * * * /usr/sbin/ntpdate [ntp server ip] > /dev/null >&

sed命令常用

# sed -i "1 i [内容]"[path/to/file]  #开头插入一行
# sed -i "$ a [内容]" [path/to/file]  #末尾插入一行 # sed -i "[行号] i [内容]" [path/to/file]  #指定行前插入一行(行号从1开始)
# sed -i "[行号] a [内容]" [path/to/file]  #指定行后插入一行
# sed -i "[行号] d" [path/to/file] #删除指定行 # sed -i "/[关键字]/ i [内容]" [path/to/file]  #匹配行前插入一行(所有匹配行都会操作)
# sed -i "/[关键字]/ a [内容]" [path/to/file]  #匹配行后插入一行
# sed -i "/[关键字]/ d" [path/to/file]  #删除匹配行 # sed -i "s/[原内容]/[新内容]/" [path/to/file]  #匹配替换(每一行只替换第一个匹配的)(/可以用#或?代替防止与内容冲突)
# sed -i "s/[原内容]/[新内容]/g" [path/to/file]  #匹配替换(替换所有匹配的) # sed -i "[行号] s/[原内容]/[新内容]/g" [path/to/file]  #只匹配替换指定行
# sed -i "[起始行号],[结束行号] s/[原内容]/[新内容]/g" [path/to/file]  #匹配替换指定的范围
# sed -i "/[关键字]/ s/[原内容]/[新内容]/g" [path/to/file]  #只匹配替换匹配关键字的行 # sed -i "s/[原内容]/[新内容]/g" `grep "[原内容]" -l \`find -name config.xml\``  #与find和grep组合使用

awk命令常用

# awk '{print $1}' filename    #$1~$n 每行分隔的第n个字段;$0 整行内容;NF 字段总数
# awk '{print "字段1:"$1"\t字段2:"$2}' filename #格式化组合显示
# awk -F ',' '{print $1}' filename #用逗号分隔,默认是空格分隔
# awk -F '[,#]' '{print $1}' filename #逗号或#号分隔
# awk -F '[,#]+' '{print $1}' filename #1个或多个,#分隔,比如,,或###
# awk -F 'GET|HTTP' '{print $1}' filename  #以GET或HTTP分隔
# awk '{print "\""}' filename  #print输出双引号
# awk '{print "'\''"}' filename  #print输出单引号
# awk '{if(NR==1||(NR>2&&NR<4)) print $0}' #行数=1或3>行数>2;其他还有>=,<=,!=;若有多个文件NR会递增叠加,不递增单独计算的是FNR
# awk 'BEGIN {count=0;print "开始统计行数"} {print $0;count++} END{print "统计结束,行数是",count}'  #自定义变量,统计行数,打印每行内容
# awk '/^#/' filename  #正则匹配,以#开头的行
# awk '/^#/ {print $0}' filename  #匹配后打印整行内容,与上一个表达式同义
# awk '!/^#/' filename  #不以#开头的行
# awk '{if($0~/^1/) print "第"NR"行以1开头";else if($0~/^2/) print "第"NR"行以2开头";else print "第"NR"行以其他开头"}' filename  #if else语句,相对于~,!~表示不匹配

批量删除BOM

# sed -i "s/\xEF\xBB\xBF//" `grep -Ilr $'^\xEF\xBB\xBF' .`  #查到当前文件夹所有子目录中包含BOM的文件,然后删除BOM

批量处理^M

注意:^M在Linux命令行输入的方式是 ctrl+v,ctrl+m;

# sed -i "s/^M//" `grep "^M" -lr .`  #查到当前文件夹所有子目录中包含^M的文件,然后删除

vim修改fileformat

:set ff    #查看fileformat
:set ff=dos #配置fileformat为dos
:set ff=unix #配置fileformat为unix
:%s/^M$//g #删除所有的^M(^M=ctrl+v,ctrl+m)

vim删除重复行

:sort    #先排序
:g/^\(.*\)$\n\1$/d #删除重复行

内存buff/cache清理

系统频繁大量读写文件会造成内存buff/cache过高,比如:

此时可以用以下命令进行清理:

sync;echo 1 >/proc/sys/vm/drop_caches  清理pagecache

sync;echo 2 >/proc/sys/vm/drop_caches  清理dentries和inodes

sync;echo 3 > /proc/sys/vm/drop_caches   都清理

查看进程中的线程

# ps -mp [pid] -o THREAD,tid,time

杀死所有匹配的进程

# ps -ef | grep [关键字] | grep -v grep  | awk '{print $2}' | xargs kill -

Java内存信息

FGC监控,导出堆栈信息:

# jstat -gct [pid]@[ip]
# jmap -dump:format=b,file=[path/to/file] [pid]
# jstack -l [pid] > [path/to/file]

切换到上一次的目录

# cd -

使用上条命令的参数

# ll /mydata
# cd !$
cd /mydata/

用curl下载文件

# curl -OL "download url"

Linux命令行下载jdk包

windows下用浏览器访问jdk的网址,比如:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

找到要下载的包,右键,复制链接地址,如下图:

然后在Linux命令行:

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" [复制的地址]

curl -H "Cookie: oraclelicense=accept-securebackup-cookie" -H "Connection: keep-alive" -O -L "[复制的地址]"

配置时区

# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

不支持zh_CH.utf8的处理

# localedef -c -f UTF- -i zh_CN zh_CN.utf8
# sed -i "$ a export LANG=zh_CN.UTF-8" /etc/profile

history增加用户和时间

# sed -i '$ a export HISTTIMEFORMAT="%F %T `whoami` "' /etc/bashrc 

查看进程启动和持续时间

常用的 ps -ef 中能看到的两个时间分别是进程启动时间和累计使用cpu的时间,如果进程启动超过24小时启动时间就只显示日期,若要看精确的启动时间和持续时间,可以用下面的命令:

# ps -p [pid] -o lstart,etime  # lstart 精确的启动时间, etime 进程的持续时间

ls显示更容易处理的日期和时间

ls命令有一个参数--time-style,其默认为locale,中文环境下用 ls -l ,文件的日期时间通常会显示为这样不方便处理的格式:

dr-xr-x---. 26 root root     4096 3月  10 10:19
dr-xr-xr-x. 19 root root     4096 7月   5 2019

若加上参数 --time-style=long-iso 则为:

dr-xr-x---. 26 root root     4096 2020-03-10 10:19
dr-xr-xr-x. 19 root root     4096 2019-07-05 18:32

对于写脚本时提取日期时间会方便很多。

若平时也想用这个格式,但每次都要加参数太麻烦了,可以定义环境变量:

export TIME_STYLE=long-iso

或者修改ll别名的定义(centos7中位于/etc/profile.d/colorls.sh):

alias ll='ls -l --color=auto --time-style=long-iso' 2>/dev/null

持续更新...

最新文章

  1. Nodejs进阶:基于express+multer的文件上传
  2. jquery学习笔记-----插件开发的编写总结
  3. 导入/导出Excel
  4. Effective C++ 4.设计与声明
  5. WebBrowser控件应用:弹出新窗体和关闭窗口
  6. [设计模式] 7 适配器模式 adapter
  7. commons-lang阅读(一)
  8. C#的Reflection总结
  9. 屏蔽错误:LNK2038
  10. SQL学习之HAVING过滤分组
  11. Bootstrap 模态框(也可以说的弹出层)
  12. RBM如何训练?
  13. OKHttp源码学习同步请求和异步请求(二)
  14. ubuntu 18.04 安装mysql 8.0
  15. verilog中signed的使用
  16. github仓库本地创建上传远程仓库
  17. Xamarin Essentials教程磁力计Magnetometer
  18. zabbix微信预警出现的问题
  19. 解决binwalk运行提示缺少LZMA模块
  20. java中使用队列:java.util.Queue(转)

热门文章

  1. NPOI设置单元格格式
  2. cocos2d-x JS 纯代码渲染Lable描边
  3. 500次访问之后php-cgi进程退出
  4. Mockito/PowerMockito Straige Issues
  5. 元素位置pageX,pageY,clientX,clientY,scrollX,scrollY,screenX,screenY,offsetX,offsetY
  6. hdu4746莫比乌斯反演+分块
  7. NSOperation、NSOperationQueue(III)
  8. 【Linux学习六】用户管理
  9. 开源数据流管道-Luigi vs Azkaban vs Oozie vs Airflow
  10. 【转】求职面试-HR会问你什么问题?