只输出错误信息到日志文件
nohup ./program.sh >/dev/null 2>log &
什么信息也不要
nohup ./program.sh >/dev/null 2>&1 &
Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。
用<<EOF重定向输入,将我们输入的命令字符串作为一个执行程序的输入,这样,我们就不需要在那个程序环境中手工输入命令,以便自动执行我们需要的功能
这样输入的内容夹在两个EOF之间,可长可短,EOF也可以换成其他任意的字符,意思是把内容当作标准输入传给程序,大小写不论,只要成对出现即可,
但是,需要注意的是,第一个EOF必须以重定向字符<<开始,第二个EOF必须顶格写,否则会报错。
例如:
mysql -u $USER -p${PASSWORD} << EOF
use camel_jxy;
update ${TABLE_NAME} set role_type=2 where id=${test}
EOF
可以在mysql语句中,使用选项来控制数据的输出格式
-H 输出为html
-X 输出为xml
延伸:利用shell连接mysql执行sql命令还有一种方法:添加 -e "commod" 参数
例如:
update_sql="update ${TABLE_NAME} set role_type=1 where id=${test}"
mysql -u ${USER} -p${PASSWORD} -h ${HOST_NAME} -D ${DB_NAME} -e "${update_sql}"
修改文件属组
chown mysql.mysql transport_protocol.sql
修改文件权限
chown 777 transport_protocol.sql
Awk
-F指定分隔符
$1 指指定分隔符后,第一个字段,$3第三个字段, \t是制表符
一个或多个连续的空格或制表符看做一个定界符,即多个空格看做一个空格
awk -F":" '{print $1}' /etc/passwd
awk -F":" '{print $1 $3}' /etc/passwd //$1与$3相连输出,不分隔
awk -F":" '{print $1,$3}' /etc/passwd //多了一个逗号,$1与$3使用空格分隔
awk -F":" '{print $1 " " $3}' /etc/passwd //$1与$3之间手动添加空格分隔
awk -F":" '{print "Username:" $1"\t\t Uid:" $3 }' /etc/passwd //自定义输出
awk -F: '{print NF}' /etc/passwd //显示每行有多少字段
awk -F: '{print $NF}' /etc/passwd //将每行第NF个字段的值打印出来
awk -F: 'NF==4 {print }' /etc/passwd //显示只有4个字段的行
awk -F: 'NF>2{print $0}' /etc/passwd //显示每行字段数量大于2的行
awk '{print NR,$0}' /etc/passwd //输出每行的行号
awk -F: '{print NR,NF,$NF,"\t",$0}' /etc/passwd //依次打印行号,字段数,最后字段值,制表符,每行内容
awk -F: 'NR==5{print}' /etc/passwd //显示第5行
awk -F: 'NR==5 || NR==6{print}' /etc/passwd //显示第5行和第6行
route -n|awk 'NR!=1{print}' //不显示第一行
ls -lh |awk -F: 'NR==1 || NR==2 || NR==3{print}' h人类可读,--human-readable是长参数形式。-h是短参数形式
例如:
-rw-rw-rw- 1 jxy camel 43K Dec 3 15:03 1388543766387.jpg
sudo apt-get install openssh-server
http://jingyan.baidu.com/article/d621e8da24ac7b2865913f30.html ssh无钥登陆
sed全备中截取一张表
cat camel_test_backup_2017-01-09-06:00:01.sql | sed -n-e '/Table structure for table .Line./,/Table structure for table.Login./p'>~/mysql_backup/line.sql
gz 解压缩
Linux压缩保留源文件的方法:
gzip –c filename > filename.gz
Linux解压缩保留源文件的方法:
gunzip –c filename.gz > filename
Pgrep
pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。
-o:仅显示找到的最小(起始)进程号; -n:仅显示找到的最大(结束)进程号; -l:显示进程名称; -P:指定父进程号; -g:指定进程组; -t:指定开启进程的终端; -u:指定进程的有效用户ID。
来自: http://man.linuxde.net/pgrep
查看安装包
Apt-get dpkg –l
Pip pip freeze
切换用户svn up --usernamezhangsan --password 123456
取时间数据
## -d, --date=STRING display time described by STRING, not `now'
STRING可以为‘now’ 、 ‘yesterday’、 ‘n days ago’
‘n days ago’ 表示n天前的那一天
使用date -d 选项:
date +"%Y%m%d" -d "+n days" 今天的后n天日期
例如:
1. 取今天时间
- $date -d "now" +%Y-%m-%d
2. 取昨天时间
- $date -d "yesterday" +%Y-%m-%d
- $date -d "1 days ago" +%Y-%m-%d
3. 取前天时间
- $date -d "2 days ago" +%Y-%m-%d