目录
1、文件下载:wget
wget [参数] [URL地址]
-a, –append-output=FILE 把记录追加到FILE文件中
-q, –quiet 安静模式(没有输出)
-t, –tries=NUMBER 设定最大尝试链接次数(0 表示无限制).
-Q, –quota=NUMBER 设置下载的容量限制
$ wget -r -np -nd http://example.com/packages/
# 这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np 的作用是不遍历父目录,-nd 表示不在本机重新创建目录结构。
$ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/
#与上一条命令相似,但多加了一个 --accept=iso 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。
$ wget -i filename.txt
#批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件
$ wget -c http://example.com/really-big-file.iso #这里所指定的 -c 选项的作用为断点续传。
$ wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080 #指定输出文件名,-o指定一个日志文件
$ wget --limit-rate=300k http://www.linuxde.net/testfile.zip # wget限速下载
$ wget -b http://www.linuxde.net/testfile.zip # 使用wget后台下载
$ wget --input-file=ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/7.7-systemd/ --continue --directory-prefix=/root/toot/ #批量下载文件到/root/toot/
2、归档:tar
-c 创建新的文档
-v 显示详细的tar处理的文件信息
-f 要操作的文件名
-r 把要增加的文件追加在压缩文件的末尾
-t 列出归档文件中包含的文件
-x 解压文件
-A 合并多个tar文件
-u 控制只添加出现改动的同名文件
-d 将归档中的文件与文件系统中的文件做比较,用来确定是否需要创建新的归档文件
-z 以gzip格式压缩/解压缩 (file.tar.gz或者file.tgz)
-j 以bzip2格式压缩/解压缩(file.tar.bz2)
--lzma 以lzma的格式压缩 (file.tar.lzma)
-a 让tar根据扩展名自动选择压缩算法(或者使用--auto-compress)
例如:
$ tar -cvf sysconfig.tar /etc/sysconfig/ #将/etc/sysconfig/目录下的文件打包成sysconfig.tar,并且放在当前目录中
$ tar -rvf sysconfig.tar /etc/sysconfig/ #将/etc/sysconfig/目录下的文件添加到文件sysconfig.tar文件末尾
$ tar -tvf sysconfig.tar #查看压缩文件sysconfig.tar文件里面的内容参数
$ tar -xvf sysconfig.tar #将压缩文件sysconfig.tar文件解压到当前文件夹内,使用 -C可指定文件提取到哪个目录
$ tar -Af file1.tar file2.tar #合并file2.tar的内容到file1.tar中
$ tar --delete --file archive.tar filea #删除archive.tar中的filea
$ tar -cf arch.tar * --exclude "*.txt" #归档过程中排出所有的txt文件
$ tar -czvf sysconfig.tar.gz /etc/sysconfig/ #将目录/etc/sysconfig/打包成一个tar文件包,通过使用-z参数来调用gzip程序,对目录/etc/sysconfig/进行压缩,压缩成文件sysconfig.tar.gz,并且将压缩成的文件放在当前文件夹内
$ tar -xzvf sysconfig.tar.gz #上一个文件的解压缩
3、压缩文件:gzip、bzip2、lzma
gzip只能压缩文件 , 不能压缩目录 ,后缀名为.gz , 而且不保留原文件,解压使用gzip –d或者 gunzip 。
bzip2同gzip,压缩效率会更高,但耗时也更长,使用bunzip2来解压;lzma同理,解压为unlzma。
gzip [参数] [文件或者目录]
-a 使用ASCII文字模式。
-c 把压缩后的文件输出到标准输出设备,不去变动原始文件。
-d 解开压缩文件
-r 递归处理,将指定目录下的所有文件及子目录一并处理。
-l 列出压缩文件的相关信息。
-q 不显示警告信息。
-v 显示指令执行过程
-V 显示版本信息。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
例如:
$ gzip -l test.tar.gz #查看test.tar.gz内容,但不进行解压
$ gzip -dv * #将当前目录下的每个压缩的文件解压,并列出详细信息
$ gzip -rv test # 递归的压缩目录
$ zcat test.gz #读取gzip格式文件
4、远程连接工具:SHH
ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。
$ ssh root@192.168.25.137 #连接远程主机
$ ssh root@192.168.25.137 'echo user :$(whoami);echo OS: $(uname)' #在远程主机执行命令,多个命令分号隔开
$ ssh omd@192.168.1.100 -t "sh /home/omd/ftl.sh" # 远程登录服务器后执行某个脚本
$ ssh user@remote_host 'echo' < file #在远程主机上,echo打印出从stdin接收到的数据,但这些数据是从本地主体远程传递到shell的stdin中的
>tar -czf -Localfolder | ssh 'tar -xzvf-' 将本地主机上的tar存档文件传给远程主机
$ netstat -a | grep ssh # 查看ssh端口
$ ps -ef | grep ssh # 查询sshd进程
$ ll /root/.ssh/known_hosts # 查看ssh的秘钥目录
$ cat /etc/ssh/sshd_config # ssh的配置文件
5、网络传输文件:ftp、scp
通过FTP传输文件可以使用ftp命令或者lftp命令;通过ssh传输文件可以使用scp或者sftp。rsync可以实现系统间的文件同步。
ls:列出远程机的当前目录
cd:在远程机上改变工作目录
lcd:在本地机上改变工作目录
get 文件名:将文件下载到本地主机的当前目录下
put 文件名:将文件从当前目录上传到远程主机
例如:
$ sftp fyt@202.206.64.33 #登陆后使用get命令下载即可
$ scp user@remotehost:/home/path/filename filename #将远程主机中的文件渎职到当前目录下并使用给定的文件名
$ scp -r /home/user user@remotehost:/home/backups #将目录/home/user递归复制到远程主机中
(使用-p能够保留文件的权限和模式)
6、分析网络流量与端口:lsof、netstat
lsof:列出所有打开的文件,输出信息包括:COMMAND:进程的名称;PID:进程标识符;PPID:父进程标识符(需要指定-R参数);USER:进程所有者;PGID:进程所属组;FD:文件描述符,应用程序通过文件描述符识别该文件。;DEVICE:指定磁盘的名称;SIZE:文件的大小;NODE:索引节点(文件在磁盘上的标识);NAME:打开文件的确切名称
$ lsof #列出所有打开的文件
$ lsof /filepath/file # 查看谁正在使用某个文件
$ lsof +D /filepath/filepath2/ #递归查看某个目录的文件信息,对应目录下的所有子目录和文件都会被列出
$ lsof | grep '/filepath/filepath2/' #遍历查看某个目录的所有文件信息 的方法
$ lsof -u username # 列出某个用户打开的文件信息
$ lsof -c mysql # 列出某个程序所打开的文件信息(同lsof | grep mysql)
$ lsof -c mysql -c apache # 列出多个程序多打开的文件信息
$ lsof -u ^root # 列出除了某个用户外的被打开的文件信息
$ lsof -p 123,456,789 # 列出多个进程号对应的文件信息
$ lsof -i tcp # 列出所有tcp 网络连接信息
$ lsof -i :3306 # 列出谁在使用某个端口
$ lsof -i tcp:80 # 列出谁在使用特定的tcp端口
$ lsof -a -u test -i # 列出某个用户的所有活跃的网络端口
$ lsof -i | grep ":[0-9a-z] +->" -o | grep ":[0-9a-z] +" -o | sort | uniq #列出主机当前开放的端口
netstat:用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
$ netstat -a #列出所有端口
$ netstat -at #列出所有tcp端口
$ netstat -au #列出所有udp端口
$ netstat -l #只显示监听端口
$ netstat -pt #在netstat输出中显示 PID 和进程名称
$ netstat -r #显示核心路由信息(-rn显示数字格式)
$ netstat -ap | grep ssh #找出程序运行的端口
$ netstat -an | grep ':80' #找出运行在指定端口的进程
$ netstat -i #显示网络接口列表
$ netstat -anpo | grep "php-cgi" | wc -l #查看phpcgi进程数,如果接近预设值,说明不够用,需要增加
$ netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr #查看连接某服务端口最多的的IP地址
7、监视磁盘使用情况:du、df
du(Disk Usage):显示每个文件和目录的磁盘使用空间
-a #递归的输出指定目录或者多个目录中所有文件的统计结果。
-b #使用特定单位打印,以字节byte为单位。
-c #显示目录中文件的大小,同时也显示总和;单位KB。
-s #仅显示目录的总值,单位KB。
-h #使用合适的单位显示
-S #显示个别目录的大小时,并不含其子目录的大小。
--exclude和--exclude-from:排除部分文件
--max-depth :限制du应该遍历多少层子目录
$ du -sh /home/master/documents #查看某个目录下文件的大小
$ du -ak /home/slynxc | sort -nrk 1 | head #显示所有文件的大小和目录的大小,对第一列(文件大小)逆序排序,然后输出前10个
df(Disk Free):显示磁盘分区上可以使用的磁盘空间
-a 全部文件系统列表
-h 方便阅读方式显示
-l 只显示本地文件系统
$ df /home #指定一个文件夹,查看该文件夹所在磁盘的使用情况
$ df -T #显示出每个文件系统的类型
free:查看系统内存的使用状态,系统已用及空余物理内存量、交换分区使用情况(swap memory)、内核占用的缓存、及共享内存。使用同上,-h可显示易读的格式。
8、进程管理:top、ps、pgrep
ps:用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
-e、-ax:输出系统中运行的所有进程信息(every,all)
-f:显示多列信息,UID,PPIP,C与STIME栏位。
-u:选择用户所拥有进程数
-l:长格式列表
-a:显示现行终端机下的所有程序
e:显示每个程序所使用的环境变量。
f:创建进程的树状视图,显示出任务之间的父子关系
-o:指定显示那些数据
--sort:对输出排序,+表示升序-表示降序
$ ps -ef #显示所有当前进程
$ ps aux #显示所有当前进程
$ ps -ax #显示所有当前进程
$ ps -u pungki #根据用户过滤进程
$ ps -aux --sort -pcpu | less #根据 CPU 使用来升序排序
$ ps -aux --sort -pmem | less #根据用户过滤进程
$ ps -aux --sort -pcpu,+pmem | head -n 10 #查询全10个使用cpu和内存最高的应用
$ ps -C getty #通过进程名和PID过滤
$ ps -f -C getty #带格式显示的,通过进程名和PID过滤
$ ps -L 1213 #根据线程来过滤进程
$ ps -axjf(或pstree) #树形显示进程
$ ps -eo pid,user,args # 显示安全信息
$ ps -U root -u root u #格式化输出 root 用户(真实的或有效的UID)创建的进程
top:实时显示系统中各个进程的资源占用情况。
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-u [用户名]:指定用户名;
-p [进程号]:指定进程;
-n [次数]:循环显示的次数。
pgrep是linux中常用的通过程序名字来查询进程的命令。
-l 同时显示进程名和PID
-o 当匹配多个进程时,显示进程号最小的那个
-n 当匹配多个进程时,显示进程号最大的那个
-u 过滤用户
-c 返回匹配的进程数量
pgrep相当于 $ ps -e o pid,cmd | awk ‘{print 1,2}’ | grep keyword
kill -9 pid :按照pid杀死进程
其他:
$ host google.com #列出某个域名下的所有ip地址
$ ifconfig #配置及显示网络接口、子网掩码等信息
$ nslookup #完成名字与ip地址之间的相互映射
$ route #显示路由表
$ ping 192.168.0.1 #检查主机是否可达
#(返回信息中的rtt:round trip time每个分组的往返信息,ttl:time of live生存时间,seq:序列号)
$ which ls # which命令用来查找某个命令的位置。
$ whereis ls #whereis 不仅能返回命令的路径,还能打印其对应的命令手册的位置以及命令源代码的路径
$ whatis ls #会输出作为参数的命令的简短描述信息