0%

查看当前全局变量,局部变量

1
2
3
4
5
6
7
8
9
10
11
12
13
# "globals()" returns a dict
# with all global variables
# in the current scope:

>>> globals()
{...}

# "locals()" does the same
# but for all local variables
# in the current scope:

>>> locals()
{...}

合并字典

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# How to merge two dictionaries
# in Python 3.5+

>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 3, 'c': 4}

>>> z = {**x, **y}

>>> z
{'c': 4, 'a': 1, 'b': 3}

# In Python 2.x you could
# use this:
>>> z = dict(x, **y)
>>> z
{'a': 1, 'c': 4, 'b': 3}
阅读全文 »

##常用命令

查看正在使用什么shell

1
2
ps -p $$
echo $0

查看所有已安装shell

1
cat /etc/shells

grep

1
2
3
4
5
6
7
8
9
10
grep forest f.txt     #文件查找
grep forest f.txt cpf.txt #多文件查找
grep 'log' /home/admin -r -n #目录下查找所有符合关键字的文件
cat f.txt | grep -i shopbase
grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后缀
grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配
seq 10 | grep 5 -A 3 #上匹配
seq 10 | grep 5 -B 3 #下匹配
seq 10 | grep 5 -C 3 #上下匹配,平时用这个就妥了
cat f.txt | grep -c 'SHOPBASE'

awk

  • 基础

    1
    2
    3
    4
    5
    6
    7
    8
    awk '{print $4,$6}' f.txt
    awk '{print NR,$0}' f.txt cpf.txt
    awk '{print FNR,$0}' f.txt cpf.txt
    awk '{print FNR,FILENAME,$0}' f.txt cpf.txt
    awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' f.txt cpf.txt
    echo 1:2:3:4 | awk -F: '{print $1,$2,$3,$4}'
    awk '{S[$1]++}END{for(k in S) print k,S[k]}' access-log.txt
    awk '/^tcp/ {S[$NF]++}END{for(k in S) print S[k],k}' ss.txt | sort -rn | head
  • 匹配

    1
    2
    3
    4
    awk '/ldb/ {print}' f.txt   #匹配ldb
    awk '!/ldb/ {print}' f.txt #不匹配ldb
    awk '/ldb/ && /LISTEN/ {print}' f.txt #匹配ldb和LISTEN
    awk '$5 ~ /ldb/ {print}' f.txt #第五列匹配ldb
  • 内建变量
    NR:NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。

FNR:在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。

NF: NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field

sort, uniq

1
2
3
4
5
6
7
8
9
10
11
12
13
14
去除相邻重复
uniq file.txt

排序去重
sort -u file.txt

倒序排列
sort -r file.txt

统计重复个数
sort file.txt | uniq -c

指定列排序
sort -k1 file.txt

tr

待补充

tee

待补充

find

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo -u admin find /home/admin /tmp /usr -name \*.log(多个目录去找)
find . -iname \*.txt(大小写都匹配)
find . -type d(当前目录下的所有子目录)
find /usr -type l(当前目录下所有的符号链接)
find /usr -type l -name "z*" -ls(符号链接的详细信息 eg:inode,目录)
find /home/admin -size +250000k(超过250000k的文件,当然+改成-就是小于了)
find /home/admin f -perm 777 -exec ls -l {} \; (按照权限查询文件)
find /home/admin -atime -1 1天内访问过的文件
find /home/admin -ctime -1 1天内状态改变过的文件
find /home/admin -mtime -1 1天内修改过的文件
find /home/admin -amin -1 1分钟内访问过的文件
find /home/admin -cmin -1 1分钟内状态改变过的文件
find /home/admin -mmin -1 1分钟内修改过的文件

其他问题记录

kill掉bash中while循环

1
2
3
4
5
6
// 当写了 while [[ 1 ]]; do somecmd; sleep 60; done &后如何kill掉此循环
// 执行命令找出关系
$ps fjx
2226 9411 9411 8383 ? -1 S 1000 0:00 \_ /bin/bash
9411 17674 9411 8383 ? -1 Sl 1000 0:00 \_ somecmd
// 9411就是执行while进程

centos的yum报错$releasever

别人装好的centos一个源都没有,配置源后又和redhat-release冲突执行,给redhat-release删了后,执行yum命令的时候提示
http://mirrors.aliyun.com/centos/%24releasever/addons/x86_64/repodata/repomd.xml
应该是环境变量$releasever没了,yum –releasever=7 install centos-release后依然无效。不知道这个变量存在哪,网上找了个设置方法。。

解决方法:

1
$echo 7 > /etc/yum/vars/releasever

其他

  • 查看系统启动耗时

    1
    2
    3
    4
    # 启动耗时汇总
    systemd-analyze
    # 查看服务明细启动耗时
    systemd-analyze blame
  • 查看正在使用什么shell

    1
    2
    ps -p $$
    echo $0
  • 查看所有已安装shell

    1
    cat /etc/shells
  • 修改shell

    1
    chsh -s /bin/ksh

ubuntu 16.04 环境问题

1
2
ERROR Local hexo not found in ~/blog:
ERROR Try running: 'npm install hexo --save'

无论如何安装,运行hexo都会报错,最后更新nodejs,不使用源里面的解决了。

https://codepen.io/ge1doot/pen/LkdOwj

阅读全文 »

参考教程:沉浸式学Git http://igit.linuxtoy.org/contents.html

设置编辑器

1
git config --global core.editor "vim"

clone指定分支

1
git clone -b 分支名  http://xxxxxxx

alisa别名

1
2
3
4
5
6
7
8
9
10
$vim ~/.gitconfig

[alisa]
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
type = cat-file -t
dump = cat-file -p

保存密码

阅读全文 »