Linux命令集合

  1. 云栖社区>
  2. 博客>
  3. 正文

Linux命令集合

testder 2018-12-21 16:12:55 浏览712
展开阅读全文

目录

crudini

column

dd

df

find

git

history

j

ln

locate

lsof

mtr

pssh

renice

rz

seq

shutdown

sort

stat

tr

trap

vim

wc

xargs

zsh

>


 

crudini

 

 

column

按规律排序

mount | column –t:

cat /etc/passwd | column -t -s:

 

dd

dd if=/dev/zero of=/opt/aa bs=1M count=1000

 

df

df -hT          report file system disk space usage   查看分区使用大小

du -sh /root      estimate file space usage  显示数据所占用的磁盘空间(4KB/块)   查看文件使用大小

 

find

find -name "aa*" -maxdepth 1 -exec rm -rf {} \

find -name "aa*" | xargs ls -l

find /etc/ -iname PASSWD            -iname选项:根据名称查找,忽略大小写

find / -uid 500                      -uid选项:根据uid查找,属于这个用户的文件

                                  -gid 选项:根据gid查找,属于这个组的文件

                                  -user 选项:根据用户名查找,查找属于这个用户的

                                 -group 选项:根据组名查找,查找属于这个组的

                                 -nouser 选项:查找这个文件不属于任何用户的

                                 -nogroup 选项:查找这个文件不属于任何组的

find /etc/  -maxdepth 1 -name passwd  -maxdepth 选项:限制目录查找深度,当有多个条件时maxdepth这个选项要放到最前面

-a 多个条件同时满足

-o 多个条件满足一条即可

-mtime 文件内容修改

       n   n为数字,意义在n天之前的“一天之内”被更改过的文件

       +n  列出在n天之前(不含n天本身)被更改过的文件名

       -n  列出在n天之内(含n天本身)被更改过的文件名

+4代表大于等于5天前的文件名    find /var -mtime +4

-4代表小于等于4天内的文件名    find /var -mtime -4

4则是代表4~5那一天的文件名     find /var -mtime 4

-mtime +1     48小时之前的

-mtime -1      24小时之内的

-mtime 1       24小时到48小时之内的

-exec

eg: find /boot -size +2048k -exec ls -l {} \;

[root@localhost data]# find /boot/ -size +1M -exec cp -r {} /opt \;

{} find找到的内容

-exec 到\; 代表find额外命令开始到结束

git

创建版本库

初始化仓库

git init

ls -a          

.git                                 git目录用来跟踪版本库

 

文件添加到仓库

git add a.txt

 

文件提交到仓库

git commit -m “v1”                 备注v1

 

文件上传到远程库

git push -u orgion master

 

查看仓库状态

git status

 

查看历史版本

git log                             查看当前状态历史记录,--pretty=oneline 简单输出

git reflog                           查看所有历史记录

f026a6c (HEAD -> master) HEAD@{0}: commit: v3

dc1e2ca HEAD@{1}: commit: v2

abdea28 HEAD@{2}: commit (initial): v1

 

查看工作区和版本库里最新版本的区别

git diff HEAD -- a.txt

 

管理修改

从版本库回退

git reset --hard HEAD^            HEAD@{0}表示当前版本,回退到HEAD版本

git reset --hard HEAD^^           回退到HEAD@{2}版本

或者

git reset --hard HEAD~1

git reset --hard HEAD~2

或者

git reset --hard commit_id          回退到指定版本

 

撤销工作区的修改

git checkout -- a.txt

一种是a.txt修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态;

一种是a.txt已经添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区后的状态。

 

撤销暂存区的修改

git reset HEAD a.txt              删除暂存区的文件

 

删除文件

git rm a.txt                      如果一个文件已经被提交到版本库,那么永远不用担心误删

git commit -m "remove a.txt"

 

分支管理

创建分支

git branch dev                    创建分支dev

git checkout dev                  切换到分支dev

或者

git checkout -b dev                 git checkout命令加上-b参数表示创建并切换,相当于以上两条命令

 

查看分支

git branch

* dev

  master

 

切换回master

git checkout master

 

 

master合并分支后再删除分支

git merge dev

 

Updating 78d2980..745616c

Fast-forward                  并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快

 b.txt | 1 +

 1 file changed, 1 insertion(+)

 create mode 100644 b.txt

 

git branch -d dev

 

远程仓库

https://github.com/testder

 

创建新的仓库(推荐直接克隆远程库)

echo "# test2.0" >> README.md

git init

git add README.md

git commit -m "first commit"

git remote add origin git@github.com:testder/test2.0.git

git push -u origin master

 

加上了,-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来

在以后的推送或者拉取时就可以简化命令 git push

 

关联已存在的远程仓库并上传

git remote add origin git@github.com:testder/test2.0.git            关联两个远程库,名字需不同

git remote add origin02 git@github.com:testder/test2.0.git

git push -u origin master

 

克隆远程从库

git clone git@github.com:testder/tools2.0.git                 克隆的已经建立好orgion,无需再次关联

git remote -v                                           查看远程库信息

git remote rm orgion                                     删除远程库

 

history

# vim /etc/bashrc

HISTSIZE=100                                        显示的历史命令条数

export HISTTIMEFORMAT="%Y-%m-%d %H:%M  "(%F %T)   加export为全局变量

# source /etc/bashrc                                重新加载bashrc文件

 

history 10 | sed 's/^[ ]*[0-9]\+[ ]*//'                  

history | cut -c 8-

autojump

抓住一份autojump:

git clone git://github.com/wting/autojump.git

运行安装脚本,并按照屏幕上的指示。

 

j

cd autojump

./install.py or ./uninstall.py

# git clone https://github.com/joelthelion/autojump.git

# cd autojump

# ./install.py

# vim .zshrc

[[ -s ~/.autojump/etc/profile.d/autojump.zsh ]] && . ~/.autojump/etc/profile.d/autojump.zsh

# autoload -U compinit && compinit -u

# source .zshrc

ln

软连接/硬连接

1、查找文件方式

目标文件-->i节点-->文档数据

2、软连接        

链接文件-->目标文件-->i节点-->文档数据

3、硬连接

链接文件-->i节点-->数据内容

4、对比优缺点

软连接:若目标文件被删除,链接文件将失效,可以跨分区、目标可以是目录

ln -s   a.sh   b.sh          ls -i 两个文件的inode不一样

硬连接:若目标文件被删除,链接文件仍可用,不能跨分区、目标不能是目录

ln  a.sh  b.sh              ls -i两个文件的inode一样

 

locate

# updatedb                 立即更新数据库

# locate  a.sh

# locale                  查看字符编码

LANG=en_US.UTF-8

[root@node01 ~]# echo $LANG

en_US.UTF-8

[root@node01 ~]# cat /etc/locale.conf

LANG="en_US.UTF-8"

 

lsof

# lsof -ni:4505

 

mtr

 

Mtr的使用详解!

 

-h显示帮助信息!

-v显示mtr的版本信息!

-r:以报告模式显示!

-s:指定ping数据包的大小!

-n:不对IP地址做域名解析!

-i:设置ICMP返回时间,默认是1s!

-4:只检测ipv4,-6是ipv6!

-c:指定每秒发送送数据包的数量,默认未10!

-a:指定发送数据的IP地址!针对一个主机多IP使用!

第一列:HOST:ubuntu指的是IP地址或主机域名!

第二列:Loss%丢包率

第三列:Sut每秒发送数据包的数量!

第四列:Last最近的返回时延!

第五列:Avg发送包时!Ping包的平均延时!

第六列:Best最短延时时间!

第七列:Wrst最长延时时间!

第八列:StDev标准偏差!

 

运营商的骨干网地址起始

电信以202.97开始的地址

联通以219.158开始的地址

移动以221.176开始的地址

 

 

pssh

但这要保证多台主机的密码相同,同时还要注意如果known_hosts没有信任远程主机,那么命令执行会失败,

#可以加上-O StrictHostKeyChecking=no参数解决,ssh能用的选项pssh也能用

 

pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的。使用是必须在各个服务器上配置好密钥认证访问。

pssh 包安装 5 个实用程序:

 

pssh 在多个主机上并行地运行命令。

pscp 把文件并行地复制到多个主机上。

prsync 通过 rsync 协议把文件高效地并行复制到多个主机上。

pslurp 把文件并行地从多个远程主机复制到中心主机上。

pnuke 并行地在多个远程主机上杀死进程。

 

pssh -h RemoteHosts.ip -P -I < ~/LocalScript.sh

https://linux.die.net/man/1/pssh

 

renice

renice -n -20 76182     调节已存在的进程优先级  -20到19   越低优先级越高

renice -n -20 cat /dev/zero > /dev/null &

 

 

rz

# yum -y install lrzsz    安装rpm包

# rz                    windows传到linux

# sz  文件名            linux传到windows

 

seq

seq -s "+" 10

echo {1..10} | tr "" "+"

%后面指定数字的位数 默认是%g,%3g那么数字位数不足部分是空格。

 

seq -f"172.28.39.2:%g" 52000 52119

 

shutdown

shutdown  -h  now、poweroff、init  0         关机

shutdown  -r  now、reboot、init  6            重启

shutdown  -h  +分钟数   "提示信息"            延迟关机或重启(Ctrl+c键取消,或其他终端执行shutdown -c):

shutdown  -r  +分钟数   "提示信息"

shutdown  -h  +15  'Host will be rebooted !!'

shutdown  -r  +15  'Host will be rebooted !!'

 

sort

awk '{print $1}' access.log| uniq -c|sort -rn -k1

# tcpdump -nr test.cap | awk '{print $3}'| sort | uniq -c  (先sort排序,再uniq -c去除重复行,因为uniq只能对相邻行去重)

 

 

stat

# stat -c %s /root/anaconda-ks.cfg    

 

tr

# cat ifcfg-mystyle | tr 'a-z' 'A-Z'   小写转换为大写

# tr 'a-z' 'A-Z' < hosts  > a.txt     host文件小写全部改为大写,导出到a.txt

 

trap

trap “exit” SIGINT

 

 

vim

设置每次写脚本文件.sh时默认加上#!/bin/bash

sed -i "29i   autocmd BufNewFile *.sh 0r /usr/share/vim/vimfiles/template.sh " /etc/vimrc

cat > /usr/share/vim/vimfiles/template.sh <<aa

#!/bin/bash

#Date:

#Author: Testder

#Mail: 10000@testder.cn

#Version: 1.0

aa

 

基本操作

:1,10 co 30      1,10行复制到第30行

:8,$d          从第8行删除到末尾

: g/^$/d          去除空格        

撤销最近一次操作(小写u)    

撤销当前行所有修改(大写U)

恢复前一次撤销(Ctrl + r,即重做)  

另存为(:w  /路径/文件)     【Write】

读入其他文件(:r  /路径/文件)   【Read】

替换当前行第一个old  ( :s/old/new )

替换当前行所有old  ( :s/old/new/g )

替换第4~9行所有old ( :4,9  s/old/new/g )

替换文件内所有old (:%  s/old/new/g )

每次都询问是否替换  :% s/old/new/gc        

.,$-1s/old/new/g    .当前行 $最后一行      

1,$s/old/new/g   ===    %s/old/new/g   全文修改

%s#/rhce/#RHCE#g  ===   %s/\/rhce\//RHCE/g

%s/old//g   全文删除old

** 使用 :set all 可查看所有可配置的参数

显示/不显示行号(:set  nu、:set  nonu)

启用/关闭语法高亮(:syntax  on、:syntax  off)

开启/关闭查询结果高亮显示(:set  hlsearch、set  nohlsearch)

** hlsearch 可缩写为 hls

启用/关闭自动缩进(:set  ai、:set  noai)

** autoindent 可缩写为 ai

~/.vimrc,保存用户的vim编辑器设置

~/.viminfo,记录用户的历史操作

.filename.swp,编辑过程中的缓存文件

在末行模式下使用“!”,可以执行命令行命令

:!  hostname

在末行模式下使用“r!”,可以读入命令行命令执行结果到当前的文本

:r!  hostname

Ctrl + v  取连续的多列,添加注释删除注释

针对选取文本的操作

选择首列-->输入大写“I”-->输入“#”-->按“Esc”退出(多行注释#)

 

wc

wc -L

 

xargs

# ls *.jpg | xargs -n1 -I cp {} /data/images

 

zsh

# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# yum -y install zsh git

# curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh   自动安装

( git clone git://github.com/robbyrussell/oh-my-zsh.git  ~/.oh-my-zsh    手动安装

 cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

chsh -s /bin/zsh )

# vim .zshrc

ZSH_THEME="af-magic"

 

 

>

xxxxxx > a.txt 2>&1               把错误的当成正确

xxxxxx > a.txt 1>&2               把正确的当成错误

xxxxxx &> a.txt                    把正确和错误的都输出

xxxxxx >> a.txt 2>> b.txt          正确的输出到a.txt,错误的输出到b.txt

 

网友评论

登录后评论
0/500
评论
testder
+ 关注