linux下查看最消耗CPU、内存的进程 https://my.oschina.net/goberl/blog/85816
Centos 执行top命令详细解读 http://www.centoscn.com/CentOS/help/2013/0725/599.html
用Linux命令行实现删除和复制指定类型的文件 http://www.cnblogs.com/yshl-dragon/p/3277841.html
Linux 查看系统硬件信息(实例详解) http://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html
Linux 查看CPU信息,机器型号,内存等信息 https://my.oschina.net/hunterli/blog/140783
阿里云centos服务器cpu使用率100%和redis漏洞问题 http://358778493.blog.51cto.com/11386071/1866278
利用ssh传输文件 http://www.cnblogs.com/jiangyao/archive/2011/01/26/1945570.html
SSH 远程执行命令 https://www.cnblogs.com/sparkdev/p/6842805.html
Linux网络流量实时监控ifstat iftop命令详解 http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858923.html
图形字符界面切换: 图形界面到命令行按Ctrl+Alt+F2 2、命令行到图形界面按Ctrl+Alt+F1
linux如何查找大文件 https://my.oschina.net/u/3101476/blog/1509879
Linux 查看文件夹大小,磁盘剩余空间 https://blog.csdn.net/matrix_laboratory/article/details/47007501
pwd: 显示当前目录位置
1 2 3 |
sudo find /home -name "*sogou*" -exec rm -rf {} \; find . -name file* -exec rm {} \; find . -name file* -exec rm {} \+ |
查看硬盘空间 http://www.cnblogs.com/CgenJ/archive/2011/07/28/2119437.html
1 |
df -hl |
查看流量
1 |
udo iftop -i wlp7s0 //最后面是网卡名称 |
修改和查看计算机名字
1 2 |
hostname pandy //设定计算机名字为pandy hostname //没有参数就是查看 |
查看CPU排序:
1 |
ps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3!=0.0) print$2,$3,$11}' |
查看端口被占用
1 |
lsof -i:8080 |
查看内存
1 2 3 4 |
$ free -m 以M为单位显示内存 $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中rsz是是实际内存 $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5 其中rsz为实际内存,上例实现按内存排序,由大到小 |
查看登录失败IP和次数
1 2 |
cat /var/log/secure |awk '/Failed/{print $(NF-3)}' |sort |uniq -c |awk '{print $2 " =====> " $1;}' cat /var/log/secure |awk '/Failed/{print $(NF-3)}' |sort |uniq -c |awk '{if ($1>5) print $2 " =====> " $1;}' //次数限制 |
检查黑名单
1 2 |
tail -f -n2000 /etc/hosts.deny | grep 89.163.225.102 //检查是否加入黑名单 tail -f -n2000 /var/log/secure | grep Failed 查看被攻击的信息 |
显示文件前面或者最后某些行信息
1 2 |
cat /var/log/secure | grep Failed | head -n 500 //前面500行 cat /var/log/secure | grep Failed | tail -n 500 //后面500行 |
文件监控 https://www.centos.bz/2012/06/inotify-tools-introduction/
同步时钟
1 2 3 |
service ntpd stop ntpdate 192.168.0.51 service ntpd start |
查看端口 :
1 |
netstat -ltnp / -anp port |
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令
nc检测端口的用法:
1 |
nc -z -w 10 %ip% %PORT% |
-z表示检测或者扫描端口
-w表示超时时间
-u表示使用UDP协议
例如:
# nc -z -w 10 -u 127.0.0.1 53
Connection to 127.0.0.1 53 port [udp/domain] succeeded!
# nc -z -w 10127.0.0.1 53
Connection to 127.0.0.1 53 port [tcp/domain] succeeded!
# echo $? 端口成功联通返回值是0,提示succeeded;否则返回1,不提示任何数据
SCP传输:
1 2 3 |
//如果是文件夹, 加上-r参数, 如果要压缩, 加上-c aes192-cbc scp -r -c aes192-cbc /mnt/E/4_开发软件/Hadoop/安装包/bak/hbase-1.1.0 root@192.168.0.32:/home/hadoop/bak scp -r /mnt/E/4_开发软件/Hadoop/安装包/bak/hbase-1.1.0 root@192.168.0.32:/home/hadoop/bak |
文件分割与合并:
1 2 3 |
split -l 300 large_file.txt new_file_prefix //指定分割后文件的行数来进行文件分割 split -b 10m large_file.bin new_file_prefix //指定分割大小来分隔文件 cat small_files* > large_file //cat进行文件合并 |
批量改后缀名
1 |
find ./ -name "*.JPG" | awk -F "." '{print $2}' | xargs -i -t mv ./{}.JPG ./{}.jpg |
查找大文件
1 |
find . -type f -size +80M -print0 | xargs -0 du -h | sort -nr |
查找文件内容
1 |
find . -name "*.html" | xargs grep "inputEmail" |
仅仅能看到超过800M大小的文件的文件名称:
1 |
find . -type f -size +800M -print0 | xargs -0 ls -l |
只需要查找超过800M大小文件,并显示查找出来文件的具体大小:
1 |
find . -type f -size +800M -print0 | xargs -0 du -h |
加上排序:
1 |
find . -type f -size +800M -print0 | xargs -0 du -h | sort -nr |
查看目录大小
1 2 3 |
du -h --max-depth=1 du -h --max-depth=2 | sort -n du -hm --max-depth=2 | sort -n |
统计文件夹大小
Linux下查看目录大小的du命令 http://www.51testing.com/html/43/2243-197686.html
更多的参数介绍参考: du命令 实现Linux 某个文件夹下的文件按大小排序 http://blog.sciencenet.cn/blog-587102-841035.html
Linux下查看目录大小的命令是du,从man中找到几个常用的参数就可以轻松的统计某个文件夹的容量.
1.统计出目录的总大小,并以比较合适的单位表示
1 2 3 4 5 |
-h, --human-readable -s, --summarize du -lh --max-depth=1 统计当前目录下的第一层目录 du -lhs /home/* | sort -rn 统计并排序 -s或–summarize 仅显示总计,即当前文件夹的大小 du -lh --max-depth=1 /home/* | sort -rn |
sed命令:替换行linux.tomcat.home开头的行
1 |
sed -i 's/^linux\.tomcat\.home.*/linux\.tomcat\.home=\/mydata\/tomcat7/g' build.properties |
tar命令
该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。它的常用参数如下:
- -c :新建打包文件
- -t :查看打包文件的内容含有哪些文件名
- -x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
- -j :通过bzip2的支持进行压缩/解压缩
- -z :通过gzip的支持进行压缩/解压缩
- -v :在压缩/解压缩过程中,将正在处理的文件名显示出来
- -f filename :filename为要处理的文件
- -C dir :指定压缩/解压缩的目录dir
上面的解说可以已经让你晕过去了,但是通常我们只需要记住下面三条命令即可:
- 压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称
- 查询:tar -jtv -f filename.tar.bz2
- 解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
- 压缩:tar -zcv -f filename.tar.gz
- 查询:tar -ztv -f filename.tar.gz
- 解压:tar -zxv -f filename.tar.gz
FTP客户端
sudo dfn -y install ftp
ftp 112.74.89.220 然后输入账户和密码
改变服务器目录
cd directory
改变本地命令
lcd /home/user/yourdirectoryname
下载单个文件:
get file
下载多个文件:
mget *.xls
上传单个文件:
put file
上传多个文件
mput *.xls
同步时间
1 2 |
yum install ntp ntpdate time.nist.gov |
MP3压缩
1 |
lame -b 64 from.mp3 to.mp3 |
图片缩放
1 |
rm -rf tmp; mkdir tmp; for img in `ls *.jpg` ; do convert -resize 1000 $img ./tmp/$img ; done |
图片优化
1 2 3 4 5 |
rm -rf quality; mkdir quality; for img in `ls *.jpg` ; do convert -quality 50% $img ./quality/$img ; done rm -rf quality; mkdir quality; for img in `ls *.jpg` ; do convert -quality 60% $img ./quality/$img ; done rm -rf quality; mkdir quality; for img in `ls *.jpg` ; do convert -quality 70% $img ./quality/$img ; done rm -rf quality; mkdir quality; for img in `ls *.jpg` ; do convert -quality 80% $img ./quality/$img ; done rm -rf quality; mkdir quality; for img in `ls *.jpg` ; do convert -quality 90% $img ./quality/$img ; done |
图片放缩,去掉多余信息和优化
1 2 3 |
rm -rf tmp; mkdir tmp; for img in `ls *.jpg` ; do convert -resize 640 -strip -quality 65% $img ./tmp/$img ; done rm -rf tmp; mkdir tmp; for img in `ls *.jpg` ; do convert -resize 640 -strip -quality 70% $img ./tmp/$img ; done rm -rf tmp; mkdir tmp; for img in `ls *.jpg` ; do convert -resize 640 -strip -quality 75% $img ./tmp/$img ; done |
图片裁剪 http://www.netingcn.com/imagemagick-crop.html
1 2 3 4 5 6 7 |
图片总高度 //高度:93, 先得到头部 convert -crop 640x93+0+0 1.jpg 1_1.jpg; //高度:1008-930=78 得到底部 convert -crop 640x78+0+930 1.jpg 1_3.jpg; //高度:1008-93-78=837 得到中部 convert -crop 640x837+0+93 1.jpg 1_2.jpg; |
ls命令
这是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多,下面就列出一些我常用的参数吧,如下:
- -l :列出长数据串,包含文件的属性与权限数据等
- -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录的文件数据
- -h :将文件容量以较易读的方式(GB,kB等)列出来
- -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
注:这些参数也可以组合使用
grep命令
该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,它的简单语法为
- grep [-acinv] [–color=auto] ‘查找字符串’ filename
它的常用参数如下:更多例子看 http://www.mekau.com/3818.html
- -a :将binary文件以text文件的方式查找数据
- -c :计算找到‘查找字符串’的次数
- -i :忽略大小写的区别,即把大小写视为相同
- -v :反向选择,即显示出没有‘查找字符串’内容的那一行
- # 例如:
- # 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色
- grep –color=auto ‘MANPATH’ /etc/man.config
- # 把ls -l的输出中包含字母file(不区分大小写)的内容输出
- ls -l | grep -i file
查看文件大小:
1 |
ls -l --block-size=M |
find命令
find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多,所以在这里将给把它们分类列出,它的基本语法如下:
- find [PATH] [option] [action]
- # 与时间有关的参数:
- -mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
- -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
- -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
- -newer file : 列出比file还要新的文件名
- # 例如:
- find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件
- # 与用户或用户组名有关的参数:
- -user name : 列出文件所有者为name的文件
- -group name : 列出文件所属用户组为name的文件
- -uid n : 列出文件所有者为用户ID为n的文件
- -gid n : 列出文件所属用户组为用户组ID为n的文件
- # 例如:
- find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件
- # 与文件权限及名称有关的参数:
- -name filename :找出文件名为filename的文件
- -size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
- -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
- 目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
- -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
- -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
- -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
- # 例如:
- find / -name passwd # 查找文件名为passwd的文件
- find . -perm 0755 # 查找当前目录中文件权限的0755的文件
- find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
查找并删除
1 |
find / -name hbase*.log | xargs sudo rm -rf |
, 原理大概是先使用find 列出档案,再导向到xargs,xargs 再喂给rm,在这里,xargs 会分批依照rm 的最大数量喂给rm,然后就可以顺利删除档案了 。
注意:exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。
1 |
find . -name .svn -type d -exec rm -rf {} \; |
在删除之前可以打印出来看看:
1 |
find . -name .svn -type d -exec ls -l {} \; |
类似还可以参考下 find -ok 以及 xargs 命令。
cp命令
该命令用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下,它的常用参数如下:
- -a :将文件的特性一起复制
- -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
- -i :若目标文件已经存在时,在覆盖时会先询问操作的进行
- -r :递归持续复制,用于目录的复制行为
- -u :目标文件与源文件有差异时才会复制
例如 :
- cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
- cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中
mv命令
该命令用于移动文件、目录或更名,move之意,它的常用参数如下:
- -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件已经存在,就会询问是否覆盖
- -u :若目标文件已经存在,且比目标文件新,才会更新
注:该命令可以把一个文件或多个文件一次移动一个文件夹中,但是最后一个目标文件一定要是“目录”。
- mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中
- mv file1 file2 # 把文件file1重命名为file2
rm命令
该命令用于删除文件或目录,remove之间,它的常用参数如下:
- -f :就是force的意思,忽略不存在的文件,不会出现警告消息
- -i :互动模式,在删除前会询问用户是否操作
- -r :递归删除,最常用于目录删除,它是一个非常危险的参数
ps命令
该命令用于将某个时间点的进程运行情况选取下来并输出,process之意,它的常用参数如下:
- -A :所有的进程均显示出来
- -a :不与terminal有关的所有进程
- -u :有效用户的相关进程
- -x :一般与a参数一起使用,可列出较完整的信息
- -l :较长,较详细地将PID的信息列出
其实我们只要记住ps一般使用的命令参数搭配即可,它们并不多,如下:
- ps aux # 查看系统所有的进程数据
- ps ax # 查看不与terminal有关的所有进程
- ps -lA # 查看系统所有的进程数据
- ps axjf # 查看连同一部分进程树状态
系统
1 2 3 4 5 6 7 8 |
# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 |
资源
1 2 3 4 5 6 7 |
# free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载 |
磁盘和分区
1 2 3 4 5 |
# mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测状况 |
网络
1 2 3 4 5 6 |
# ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 netstat -antp | grep 2181 查看这个端口是否建立 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息 |
进程
1 2 |
# ps -ef # 查看所有进程 # top # 实时显示进程状态 |
用户
1 2 3 4 5 6 |
# w # 查看活动用户 # id <用户名> # 查看指定用户信息 # last # 查看用户登录日志 # cut -d: -f1 /etc/passwd # 查看系统所有用户 # cut -d: -f1 /etc/group # 查看系统所有组 # crontab -l # 查看当前用户的计划任务 |
服务
1 2 |
# chkconfig --list # 列出所有系统服务 # chkconfig --list | grep on # 列出所有启动的系统服务 |
程序
1 |
# rpm -qa # 查看所有安装的软件包 |
chgrp命令
该命令用于改变文件所属用户组,它的使用非常简单,它的基本用法如下:
- chgrp [-R] dirname/filename
- -R :进行递归的持续对所有文件和子目录更改
- # 例如:
- chgrp users -R ./dir # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users
chown命令
该命令用于改变文件的所有者,与chgrp命令的使用方法相同,只是修改的文件属性不同
chown jim program.c
文件 program.c 的所有者更改为 jim。作为所有者,jim 可以使用 chmod 命令允许或拒绝其他用户访问 program.c。
chown -R john:build /tmp/src
将目录 /tmp/src 中所有文件的所有者和组更改为用户 john 和组 build
– R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
– v 显示chown命令所做的工作。
chmod命令
该命令用于改变文件的权限,一般的用法如下:
chmod [-cfvR] [–help] [–version] mode file…
- chmod [-R] xyz 文件或目录
- -R:进行递归的持续更改,即连同子目录下的所有文件都会更改
同时,chmod还可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改。
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
- # 例如:
- chmod 0755 file # 把file的文件权限改变为-rxwr-xr-x
- chmod g+w file # 向file的文件权限中加入用户组可写权限
- 将档案 file1.txt 设为所有人皆可读取 : chmod a+r file1.txt
SVN常用命令:
增加:
svn add filePath
提交:
svn commit -m 'message' [path]
显示日志:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
svn log #什么都不加会显示所有版本commit的日志信息:版本、作者、日期、comment。 svn log -r 8 -v #显示版本8的详细修改日志,包括修改的所有文件列表信息。 svn log -r 8 -v -q #显示版本8的详细提交日志,不包括comment。 svn log -r 4:20 #只看版本4到版本20的日志信息,顺序显示。 svn log -r 20:5 #显示版本20到4之间的日志信息,逆序显示。 svn log test.c #查看文件test.c的日志修改信息。 svn log -v -r 88:866 #显示从版本88到版本866之间,当前代码目录下所有变更的详细信息 。 svn log -v dir #查看目录的日志修改信息,需要加v。 svn log http://foo.com/svn/trunk/code/ #显示代码目录的日志信息。 1.使用svn从工作拷贝删除文件只是预定要删除,当你提交,文件才会从版本库删除。 $ svn delete myfile 2.然而直接删除一个URL,你需要提供一个日志信息: $ svn delete -m “Deleting file ‘yourfile'” file:///tmp/repos/test/yourfile 3.强制删除本地已修改文件的例子: $ svn delete –force over-there |