用了一段linux,总结一下平时经常用到的命令
压缩解压命令tar
格式: tar [选项] [文件或目录,多个时用空格隔开]
独立选项
追加和更新命令只适用于未压缩过的tar打包文件,否则会提示‘tar: Cannot append to compressed archive.’
可选选项
- z:gzip压缩
- j:bz2压缩
- v:显示信息
- p:保留文件属性
- f:文件名(必须,且要放到最后)
- N:比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中
- exclude :打包时排除某些文件或文件夹
示例:
BASH
1
2
3
4
5
6
7
8
| #将文件夹file压缩到file.tar
tar -cvf file.tar file/
#解压file.tar包到当前目录
tar –xvf file.tar ./
#在 /home 当中,比 2005/06/01 新的文件才备份
tar -N '2005/06/01' -zcvf home.tar.gz /home
#备份 /home, /etc ,但不要 /home/dmtsai
tar -exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc |
拷贝文件cp、scp
cp — 主要是用于在同一台电脑上,在不同的目录之间来回copy文件
scp — 主要是在不同的Linux系统之间来回copy文件
格式:cp [OPTIONS] 源 目录— 多个源文件用空格分隔
OPTIONS:
-a same as -dpR 尽可能将源文件状态、权限等资料都照原装予以复制,并且是递归copy;
-r 表示递归copy,若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地;
-f 表示force,若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制;
示例:
BASH
1
2
3
4
| #将文件夹img和images的文件和文件夹都拷贝到/tmp/images/
cp -arf img/* images/* /tmp/images/
#将本地home目录拷贝至远程主机
scp -r /home/ root@192.168.1.2:/home/root |
数据同步rsync
发版用,一次同步多台主机,比scp强大很多
格式:rsync [option] 源路径 目标路径
常用option参数
- a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
- b, –backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用–suffix选项来指定不同的备份文件前缀。
- –backup-dir 将备份文件(如~filename)存放在在目录下。
- -suffix=SUFFIX 定义备份文件前缀
- –delete 删除那些DST中SRC没有的文件
- –bwlimit=KBPS 限制I/O带宽
示例
BASH
1
2
3
4
| #将本机/tmp/a文件夹 同步至/tmp/b
rsync -avzP --delete /tmp/a /tmp/b
#将远程主机x中/tmp/a下的文件下载至本机 /tmp/b
rsync -avz -e ssh root@192.168.0.1:/tmp/a /tmp/b |
改变文件属性chmod
格式chmod [-cfvR] mode file
- -c : 若该档案权限确实已经更改,才显示其更改动作
- -f : 若该档案权限无法被更改也不要显示错误讯息
- -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
重点说下mode
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
另外权限可以用数字表示:r=4,w=2,x=1(将rwx看成二进制数,如果有则有1表示,没有则有0表示)。组合后共三位,第一位表示uesr的权限,第二位表示user所在group的权限,第三位表示其他用户other
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5;
若要r–属性则4;
若要-wx属性则2+1=3;
若要-w-属性则2;
若要–x属性则1;
取消所有属性则0。
示例
BASH
1
2
3
4
| #给所有用户读写执行的权限。
chmod -R 777 dir/
#给用户rwx权限,给用户组rx权限,其他用户不给权限
chmod -R 750 dir/ |
这里要再提到一个命令chown,root用户可以使用此指令改变文件所属的用户和用户组:chown user:group file
例如要把文件的属主改为运行apache的用户和组,好让web用户可以访问到文件可以执行 chown _www:_www file。这里的_www可以在http.conf配置。
采集神器wget、curl
先说wget,格式:wget [options] [URL]
常用参数
- -o:记录log信息,用法-ofilename
- -a:追加log信息
- -O:将文件保存到文件 -Ofilename
- -c:断点续传
- –referer,referer值,采集必用
- –load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
- –save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中
- -nc, –no-clobber 不要覆盖已经存在的文件
- -T,–timeout=SECONDS 设置超时时间
- -x,强制建立目录(保持目标网站的目录结构)
- -r,递归下载整个网站
全部参数见手册http://www./software/wget/manual/wget.html
curl没有递归下载,但是支持的协议要比wget多很多,用法也更灵活
格式:curl [option] url
常用参数
- -c:断点续传
- -o:文件名,要自己写
- -O:文件名,自动(和服务器上的名字一样)
- -D:保存cookie,curl -D cookie.txt URL
- -b:使用cookie,curl -b cookie.txt URL
- -A:发送浏览器信息,伪装成浏览器。curl -A “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1626.0″ URL,这样对方服务器会认为我们是一个在macos上跑的chrom浏览器。
- -e:填写referer值。
- -d:post模式,以application/x-www-url-encoded发送请求。d后面填写要提交的参数即可 curl -d”a=xx&b=xx&c=xx”。
- -F模拟 multipart/form-data 形式的 form 上传文件。curl -F “action=upload” -F”filename=@file.gz;type=application/octet-stream” URL
|