IT袋

当前位置:主页 > 经验教程 > 系统教程 >

linux常用的20个命令操作

linux常用的20个命令操作 关于linux入门基础教程(2)

更新:2023-09-02 21:48:08 来源:IT袋 作者:苏晓敏
导读:linux常用的20个命令操作,unicode编码 开发时,也经常需要在汉字与\u4f60形式之间转换,下面这些命令就很有用了。 #unicode解码$ echo -e '\u4f60\u597d'你好$ echo $'\u4f60\u597d'你好$ echo '\u4

linux常用的20个命令操作

unicode编码

开发时,也经常需要在汉字与\u4f60形式之间转换,下面这些命令就很有用了。

#unicode解码$ echo -e '\u4f60\u597d'你好$ echo $'\u4f60\u597d'你好$ echo '\u4f60\u597d'|sed 's/\\u//g'|xxd -r -ps|iconv -f ucs-2be你好#unicode编码$ echo -n '你好'|iconv -t ucs-2be|xxd -ps|sed -E 's/.{4}/\\u&/g'\u4f60\u597d#转换文件编码为utf8,也很有用enconv -L zh_CN -c -x UTF-8 file.txt

生成随机密码

#生成随机密码$ openssl rand -hex 16fb9f47a7ebad6bd77be332d6b3a0bc0b$ cat /dev/urandom |head -c 16|xxd -pseb297181cad546210a00118d543b78bf$ cat /dev/urandom |tr -dc A-Za-z0-9 |head -c 32V1NB2Oc1mCJ3mNfofDZCQB68dRde30Xz#生成10以内随机数awk -v b=$(cat /dev/urandom|tr -dc 0-9|head -c 9) 'BEGIN{srand(b);print int(rand()*10)}'cat /dev/urandom|head -c 4|od -An -t u4 --endian=big|awk '{print int($1/2^32*10)}'#生成uuid$ uuidgen7b45c1c2-0533-45e5-9903-802ee58b6638

ip地址转数字

众所周知,ip地址实际是一个4字节的数字,如果把ip以数字的形式保存在数据库中,可以节省空间。

#ip转数字$ echo 192.168.0.1|tr . '\n'|xargs printf "%02X"|xxd -r -ps|od -An -t u4 --endian=big 3232235521#数字转ip$ printf "%08X" 3232235521|xxd -r -ps |od -An -t u1 192 168 0 1

进制转换

#printf可以实现十进制到十六进制的转换$ printf "%08X" 3232235521C0A80001#bc可以实现任意进制之间互转$ echo C0A80001|sed 's/^/obase=10;ibase=16;/g'|bc3232235521$ echo C0A80001|sed 's/^/obase=2;ibase=16;/g'|bc11000000101010000000000000000001

查看ascii

#直接查看man文档man ascii #用od查看printf "%0.2X" {0..127}| xxd -r -ps | od -t x1d1ca

搜索内容

在搜索日志时,tac通常比cat更有用,比如我们搜索最近产生的10次异常。

tac app.log|grep -iw -B 20 -m 10 'exception'|tac

另外,当不知道要找的内容在当前目录下的那个文件中时,应该优先使用grep -rn搜索一把,比如忘记了tomcat的端口在哪配置。

grep -rn -w 8080 .

查看进程日志

当你进入一个陌生的服务器环境,不知道java进程产生的日志文件在哪,与其问别人,不如直接自己找。

#使用lsofpid=`pidof java`lsof -p $pid|grep .log$#lsof不可用时,试试这个ls -l /proc/$pid/fd |grep .log$

反向shell

有时,需要别人帮忙排查问题,但又不想把服务器密码告诉别人,这时可以给别人一个反向shell。

#获取shell端socat file:`tty`,rawer TCP-LISTEN:9999,bind=0.0.0.0,reuseaddr,keepalive,keepcnt=3,keepidle=600,keepintvl=600,pf=ip4#给出shell端nohup socat system:'stty rows 63 columns 207;bash -li',pty,stderr,setsid,sigint,sane,ctty TCP:192.168.0.1:9999 &

统计行数

# 统计行数wc -lsed -n '$='# 分组统计行数uniq -c

相关阅读