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.让进程在后台运行
nohup 命令 &(还有个disdown不常用)
当有大批量操作时,这时使用 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