我的Linux命令记录

学习工作中,用到的命令,开贴做个记录,方便自己,也希望能方便大家
zsh,oh-my-zsh

更换默认的shell至zsh

yum install zsh -y
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

为什么开始就要更换?因为oh-my-zsh好用,谁用谁知道。

有许多机器,在安装zsh, oh-my-zsh总是不完全成功,最后一步要手动替换bash至zsh,那么命令来了

chsh -s /bin/zsh
但是, /bin/zsh必须出现在/etc/shells文件中

zsh有一个好处是映射好很多快捷命令,使用alias命令可以查看

...
gclean='git reset --hard && git clean -dfx'
gcm='git checkout master'
gco='git checkout'
gcount='git shortlog -sn'
gcp='git cherry-pick'
gd='git diff'
gf='git ls-files | grep'
...

单独列举git这块的内容,因为个人使用频率较高。
但后来发现,在进入git目录,使用git add 命令的时候,会很卡,估计是因为oh-my-zsh默认加载了名为git的插件,会计算当前目录的git状态,而这个暂时使用率不高,所以一般可以去掉,使用gitfast插件代替。(ps: 我想gitfast的作者也是相同的原因才来编写的吧)

调整方法:vim ~/.zshrc

...
plugins=(gitfast)
...

当然,最后要退出shell,重新进入才能生效噢

关于卡顿的问题

现象是每次cd和ll时都会被卡住很长时间根本受不了,最后在官方github查明原因是使用的主题会自动获取git信息,可以使用以下命令禁止zsh自动获取git信息,解决卡顿问题

git config --global oh-my-zsh.hide-status 1

vim

撤销:u
重做:ctrl+r
行首:0 (相当于home)
行尾:$ (相当于end)
复制:10 yy 复制10行,不写默认当前行
粘贴:p
显示行号:set number
隐藏行号:set unnumber
查找替换文件内容: :%s/<key>/<string>/g 去掉%s,只替换当前行

ssh 自动登陆 keygen 基本使用

懒人工具?免于每次输入密码。部署完成后,在客户机操作,ssh,scp免密码
大致流程: 客户机使用kengen命令,拿到一个公钥,再将些公钥放到服务器上,即完成部署。

  1. 使用 ssh-keygen命令后,会在~/.ssh/目录下生成两个文件,默认生成的两个文件是:id_rsa, id_rsa.pub
  • 追加 id_rsa.pub里的内容,至服务器 /root/.ssh/authorized_keys文件的未尾(如果不存在,创建它)
  • 好像已然部署完成了,测试吧

今天突然碰到添加了authorized_keys,但不生效的问题,最终解决方案:
1,保证 /root/.ssh的权限为700
2,保证 /root/.ssh/authorized_keys的权限为600
3,请查看 /etc/ssh/sshd_config,中 AuthorizedKeysFile 的值,因为可以修改为其它文件(如图,我就是这个原因)


/etc/ssh/sshd_config

4,如果是这样的话,修改你的authorized_keys的文件名称吧

最新进展(2016-08-25) 上次搞到这里,一直以为是linux为了安全,把authorized_keys文件替换的名称,哪知道服务器被黑了,中了 minerd 木马,被当成挖矿的肉机,CPU点用率居高不下,导致这台服役多件的伪服务器因为CPU温度过高,宕机好几次。
最终通过大师指引,解除木马危机。彻底清除Linux centos minerd木马

ssh命令

  • 使用ssh命令,连接各种服务器

ssh -l root 192.168.1.2
ssh -v host 显示连接信息
ssh root@192.168.1.2

  • 连接变慢了

服务器端 请设置 /etc/ssh/ssd_conf

Paste_Image.png

scp

scp 经常用于多几个服务器之间拷贝文件。但在使用scp命令时会遇到敲完命令回车时,连接很慢,要等好久才能出现输入密码的提示符,好吧直接说答案。

查看慢在哪里的命令
scp -v localfile user@host:/path```

变快了
scp  -o GSSAPIAuthentication=no localfile user@host:/path

可以把此选项放到到本机的配置文件中

vim ~/.ssh/config

GSSAPIAuthentication no
~/.ssh/config

查找目录下的所有文件中是否含有某个字符串

find .|xargs grep findword
find *.php | xargs grep findword

查找当前目录下所以包含/-1/的php文件,忽略vendor目录的代码

find . -path "./vendor" -prune -o -type f -name "*.php" |xargs grep "/-1/"

更多内容请参考:http://blog.sina.com.cn/s/blog_691a84f301015khx.html

替换文件内容

管道符|在linux属于常用且好用的工具

命令1:
find -name '*.conf' | xargs perl -pi -e 's|string|string1|g'
讲解:
1,find -name '*.conf'使用find找出需要替换的文件
2,xargs简单来讲是让不支持管理的命令,能够支持管道
3, perl -pi -e 's|string|string1' 最后干活的Perl脚本,没有过多研究,目前只图能够工作

命令2:
grep -i "string" -r ./ | awk -F : '{print $1}' | sort | uniq | xargs sed -i 's/string/string1/g'
讲解:
1,grep -i "string1" -r ./ 找到当前目录包含字符串的文件及位置
2, awk -F : '{print $1}' | sort | uniq 使用awk格式化grep的输出,sort排序,uniq剔除重复文件
3, xargs简单来讲是让不支持管理的命令,能够支持管道
4, sed -i 's/string/string1/g' 最后的干活~~~

单个文件,可以直接使用 sed -i 's/string/string1/g' app.conf

正则 sed -i 's/HTTP.\{1,\}/ /g' a.log
匹配HTTP.{1,},替换为空格的表达示
更多sed用法请参考

  1. 极客学院sed
  2. SED单行脚本快速参考

删除目录30天前的文件

find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} ;

 /tmp  --设置查找的目录;
 -mtime +30 --设置时间为30天前;
-type f --设置查找的类型为文件;
-name *.log[ab] --设置文件名称中包含loga或者logb[正则?];
-exec rm -f --查找完毕后执行删除操作;

另外的方法大同小异

find . -mtime +30 -type f | xargs rm -rf

tar

  • 忽略文件夹

批量修改文件名

  • 给当前目录下所有文件增加.html后缀

for i in ls *; do mv $i $i.html; done
一个高级测试

==================建立测试文件====================
$ touch glyphicons_315911_linux{a..g}.png
$ ls *.png
glyphicons_315911_linuxa.png  glyphicons_315911_linuxe.png
glyphicons_315911_linuxb.png  glyphicons_315911_linuxf.png
glyphicons_315911_linuxc.png  glyphicons_315911_linuxg.png
glyphicons_315911_linuxd.png
==================运行脚本========================
$ for i in `ls glyphicons_*.png`; do mv $i ${i##glyphicons_*_}; done
$ ls *.png
linuxa.png  linuxc.png  linuxe.png  linuxg.png
linuxb.png  linuxd.png  linuxf.png
  • 给指定后缀的文件,增加额外的后缀
for var in `find . -type f | grep -E "\.java$|\.c$"`; do cp "$var" "${var}.txt"; done
  • 批量替换文件名中指定字符串[a.java-xin ==> a.java]
find . -type f -name "*java-xin" -exec rename "java-xin" "java" {} \;

测试效果


find . -type f -name "*java-xin" -exec rename "java-xin" "java" {} ;

unzip

  • 解压包内文件到指定目录

awk

  • 指定分隔字符,并对截取输出字符

last

显示Linux登陆记录,配合 last | more 防御性检查

tmpwatch

session一直直接存放在/tmp目录,以为万事大吉,傻傻的以为会自动清理,但结果确是不会。
后来查阅资料,才发现,需要安装一个服务 tmpwatch

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容

  • 第1章 小试牛刀 $ 是普通用户,# 表示管理员用户 root。 shebang:#!。sharp / hash ...
    巴喬書摘阅读 6,326评论 1 4
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,135评论 2 34
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,791评论 0 8
  • 系统信息cat /etc/os-release 查看系统详细信息(只在centos和redhat上试过生效)arc...
    MicoCube阅读 683评论 0 0
  • Linux命令学习 记录小白学习Linux的过程。 常用命令 man命令 常用工具命令 man命令是Linux下的...
    吃蘑菇De大灰狼阅读 2,727评论 1 15