分享

总结一些平时常用的Linux命令 – 青梅煮酒

 善哉善斋 2014-11-28

用了一段linux,总结一下平时经常用到的命令

压缩解压命令tar

格式: tar [选项] [文件或目录,多个时用空格隔开]

独立选项

  • x:解压
  • c:压缩
  • t:查看
  • r:追加
  • u:更新

追加和更新命令只适用于未压缩过的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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多