ubuntu开机启动任务 (1)sysv-rc-conf   (2)update-rc.d -f cron remove 

excel中批量加单引号  ="'"&a1  (给a1列加单引号)

date -d "1970-01-01 UTC `echo "$(date +%s)-$(cat /proc/uptime|cut -f 1 -d' ')+12288812.926194"|bc ` seconds"

1.linux下查看公网ip

curl ifconfig.me或者curl ifconfig.me/all(查看详细信息)

curl icanhazip.com

echo >/dev/tcp/8.8.8.8/53 && echo "open"    (检查远程端口是否对bash开放)

linux下用ps命令查看内容时显示不完全   ps auxwww

查询进程信息 ll /proc/pid

查看进程下的子进程 ps --ppid 进程id

删除文件时排除指定文件

rm `ls *.txt|egrep -v '(test.txt|fff.txt|ppp.txt)'`

2.根据inode号查找文件

find ./ -inum inode号

3.生成随机密码

cat /dev/urandom | tr -dc "a-zA-Z0-9+_\~\!\@\#\$\%\^\&\*\(\)" | fold -w 20 | head

4.列出当前路径下的所有目录

ls -d */

5.统计当前路径下的目录个数

ll -d */|wc -l

6.统计当前路径下的目录个数,包括子目录里的

ll -R|grep "^d"|wc -l

7.统计指定文件的大小

find  ./ -type f -name  "2019-05-*.log"|xargs du -m|awk '{sum += $1} END {print sum}'

8.统计当前路径下普通文件的个数

ll|grep "^-"|wc -l或者find . -maxdepth 1 -not -type d|wc -l

9.查看二进制文件所依赖的库

ldd 二进制文件 

10.curl常用操作(更多使用详见https://www.aliyun.com/jiaocheng/122470.html)

curl -m 5 -s -o /dev/null -w %{http_code} www.baidu.com curl检测网址状态

curl使用post方式传递数据

 curl -u username --data "param1=value1¶m2=value" https://api.github.com

11.计算字符串长度

 echo "abc" |wc -L

12.(1)windows上的文件到linux后,出现^M

方法一:    用vim 打开文件,命令模式中用set ff查看文件格式,然后修改为set ff=unix。

方法二: 用dos2unix命令,dos2unix filename

(2)unicode转中文或其他编码

native2ascii -reverse -encoding utf-8 SysConfig.properties SysConfig.properties.bak

(3)vi输入中文保存报错,解决如下

Q: 使用 vi 编辑文件,输入汉字后,保存出现如上的提示,如何解决?
A: 是 vi 编辑器的 encoding 的问题,进入 vi 后按 ESC 和 : 键,可以先看下编码,set fenc,再输入 :set fileencoding=prc 或 :set encoding=prc 就解决了上述问题。因为 vi 编辑器的 encoding 默认是 ascii ,要插入中文需要使用用 prc 编码集。

13.linux下更改为CST时区

mv /etc/localtime /etc/localtime.bak

ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

14.查找指定时间段的文件

touch -t 201505100000 t_start;

touch -t 201505102359.59 t_end;

find . -type f -newer t_start ! -newer t_end | xargs ls -l | grep -v "t_start\|t_end";

15.cat catalina.out | grep -10E '2017093022110362110067.*070110' --color

16.

查看root密码

   docker容器启动时的root用户的密码是随机分配的。所以,通过这种方式就可以得到容器的root用户的密码了。

docker logs 5817938c3f6e 2>&1 | grep 'User: ' | tail -n1

17.将多行文本转换为一行

      (1). 采用awk

      awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}' file

      说明:awk默认将记录分隔符(record separator即RS)设置为\n,此行代码将RS设置为EOF(文件结束),也就是把文件视为一个记录,然后通过gsub函数将\n替换成空格,最后输出。

      (2). 采用sed

      sed ':a ; N;s/\n/ / ; t a ; ' file

      说明:sed默认只按行处理,N可以让其读入下一行,再对\n进行替换,这样就可以将两行并做一行。但是怎么将所有行并作一行呢?可以采用sed的跳转功能。:a 在代码开始处设置一个标记a,在代码执行到结尾处时利用跳转命令t a重新跳转到标号a处,重新执行代码,这样就可以递归的将所有行合并成一行。

      (3). cat file | xargs

      说明:这可能是最简单的一种方式。

       This manual page documents the GNU version of xargs. xargs reads argu-
       ments from the standard input, delimited by blanks (which can be pro-
       tected with double or single quotes or a backslash) or newlines

      上面是man手册对xargs的说明。其实xargs就是对shell命令行参数限制做的一个扩展。

      这条命令的含义也很简单,将file中的内容作为参数传给X程序

      如果用echo作为X程序,则命令为:

      cat file | xargs echo

      此命令和cat file | xargs 行为一致,因为xargs的默认行为就是打印输出。

18.maven打包的项目,可以在MANIFEST.MF查看编译时所用的jdk版本及maven的版本。

19.top命令执行结果按照某一列排序

    在命令行提示符执行top命令,输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)。

更改显示内容

通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

20.vim批量缩进

按V,进入VISVAL模式,用上下箭头,选中所有要对齐的程序,按“>”或者"<"

21.让进程在后台运行

  1. nohup 命令 &(还有个disdown不常用)

  2. 当有大批量操作时,这时使用 screen就很方便了,有以下几个常用选项:

    用screen -dmS session name来建立一个处于断开模式下的会话(并指定其会话名)。

    用screen -list 来列出所有会话。

    用screen -r session name来重新连接指定会话。

    用快捷键CTRL-a d 来暂时断开当前会话。

22.使用sed替换一行内多个括号内的值

1. 括号在同一行


# cat test2

good morning (good afternoon) (good evening) (good

good) (good morning)



# cat sed2.len

s/([^)]*)/AAA/g



# sed -f sed2.len test2

good morning AAA AAA (good

good) AAA



2. 括号跨行


 # cat sed3.len

s/([^)]*)/AAA/g

/(.*/{

        N

        s/([^)]*)/AAA/g

        P

        D

}



# sed -f sed3.len test2

good morning AAA AAA AAA AAA