1) 较简单的处理命令:mv 原文件名 新文件名
如:mv myFile newName ### 将MyFile重命名为newName.
2) 重命名文件命令:rename name_old name_new file
如:rename myFile newName myFile.text #### 将myFile.text重命名为newName.text
这个命令在批量重命名是更好用
如: rename oldName newName oldName1.text oldName2.text oldName3.text
这个命令将oldName1.text oldName2.text oldName3.text文件名中oldName替换为newName
sz 是文件下载到本地:
sz filename ##下载一个文件
sz filename1 filename2 ##下载多个文件
sz dir/* ##下载dir目录下的所有文件,不包含dir下的文件夹
rz 是上传本地文件到服务器:
输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。
3. 删除文件或者文件夹rm
rm filename 可以直接删除文件
rm -r dir 可以删除文件夹及里面的子文件/文件夹; rmdir dir 只能删除空文件夹
rm -v 可以详细显示删除的内容
复制文件夹及其内容
cp -r adsprecise_v2/ adsprecise_test
-r 可以表示递归复制文件夹的内容
目标文件夹存在时会把整个adsprecise_v2 复制过去,包含文件夹本身
目标文件夹不存在会把adsprecise_v2 的所有内容复制过去,不包含
4. 字符串拼接
a=`date -d yesterday +%Y%m%d` ## 20151207
b1="weblog_"$a".txt" ##weblog_20151207.txt
c="weblog_" d=".txt"
b2=$c$a$d ##weblog_20151207.txt
5. lftp
要在root权限下,yum install -y lftp 一下就可以
用法举例
(1)lftp username:[email protected]:21 回车
(2)lftp [email protected] 回车 ##默认21端口 回车后输入密码
(3)lftp 127.0.0.1 回车 ##回车后 login 登录
(4)lftp 回车 --> open 127.0.0.1 --> login 登录
#上传文件至FTP服务器
lftp ${FTP_USER}:${FTP_PWD}@${FTP_SERVER} <<EOF
cd ${FTP_DIR}/
lcd /data/admin/mjoys_export/
put $FILE_NAME
bye
EOF
6. shell 创建日志
dt=`date -d yesterday +%Y%m%d` #20151206
#add a log file
log_file=$dt".log"
echo
echo 'Executing... Pls check process details in log file /data/admin/mjoys_export/logs/log_file'
exec > $DIRECTORY_PATH$log_file 2>&1
7. 压缩与解压tar
tar -zcvf 文件名.tar.gz 压缩路径或者文件
tar -ztvf 文件名.tar.gz 来查看 文件名.tar.gz这个包中包含了什么文件
tar -zxvf 文件名.tar.gz ./ xxl/date/test.sql 可以把包中的test.sql 解压出来不管其他的
8. 大于小于等于
英文缩写:
不相等 -ne (not equal)
大于 -gt (greater than)
小于 -lt (less than)
大于或等于 -ge (greater than or equal)
小于或等于 -le (less than or equal)
9. 自加或自减
shell中
1)
自加的写法 ((x++)) 或者((x+=1))
减法同理 ((x--)) 或者((x-=1))
2)使用变量
a=1
a=$(($a+1))
a=$[$a+1]
a=`expr $a + 1`
3)还有一个办法,let
$let x=x+1
$let x=x-1
10. 保存密码等
在 $home 路径下 编辑 .bashrc 文件
完成后 需要导入一下才能生效。
source .bashrc
11. date 获取前天,任意一天前的日期
写死: dt=$(date +%Y%m%d --date '7 days ago')
传参:
days=7
dt=$(date +%Y%m%d --date "$days days ago") ## 正数,表示几天之前
dt=$(date +%Y%m%d --date "-$days days ago") ## 负数,表示几天之后
同样还有年月的用法
date -d "x weeks ago" +%Y%m%d
date -d "x years ago" +%Y%m%d
上面两种格式都可以,对于变量的结果,也可以用 ``和$() 都行
12. where 和 sed
把文本中每行的首尾空格去掉
cat $FILE_NAME|while read line
do
echo $line|sed 's/^\s*\|\s*$//g'>>$filename_new && echo proceeding...
done