Linux常用命令【转】
一、基本命令
1、立即关机并重启动,执行如下命令:
shutdown -r now 或者reboot
2、立即关机,执行如下命令:
shutdown -h now 或者poweroff
3、等待2分钟关机并重启动,执行如下命令:
shutdown -r 2
4、等待2分钟关机,执行如下命令:
shutdown -h 2
5、使用当前用户的历史命令,执行如下操作:
history
将会显示使用过的每条命令及其序号,可利用序号重复执行该命令。
例如输入!1并回车,将会重复执行第1条历史命令。
也可用上下光标键调出某条历史命令,然后按回车键重复执行。
还可用上下光标键调出某条历史命令,修改后按回车键执行。
6、清除当前用户的历史命令,执行如下命令:
history -c
此时用向上光标键将会调不出任何历史命令。
7、显示内核版本号,执行如下命令:
uname -r
注:内核版本号不同于软件发行版本号。
例如,RHEL 5.4的内核版本号是2.6.18-164.el5,软件发行版本号是5.4。
8、清除屏幕,执行如下命令:
clear
9、显示操作系统时钟,执行如下命令:
date
10、加载光盘到/media,执行如下命令:
mount /dev/cdrom /media
11、卸载光盘,执行如下命令:
umount /dev/cdrom 或者 umount /media
注意:不要在/media或其子目录中执行此命令,否则将会出现“设备忙错误”。
12、查看存储设备,执行如下命令:
fdisk –l
13、加载U盘到/media
mount /dev/sdb1 /media
14、卸载U盘,执行如下命令:
umount /dev/sdb1 或者 umount /media
注意:不要在/media或其子目录中执行此命令,否则将会出现“设备忙错误”。
15、中断shell命令
Ctrl+C
二、文件目录操作命令
1、显示当前的绝对路径,执行如下命令:
pwd
2、改变当前目录,例如执行如下命令:
cd /etc/yum
将会把当前目录改为/etc/yum。
3、回到当前目录的父目录,执行如下命令:
cd ..
4、创建目录,例如执行如下命令:
mkdir /usr/tigger
5、删除目录,例如执行如下命令:
rmdir /usr/tigger
注:使用rmdir命令时,待删除的目录必须为空。
6、列出目录中的内容,例如执行如下命令:
ls /
7、列出目录中的所有内容(包括隐藏文件或称为点文件) ,例如执行如下命令:
ls /root -a
将会看到以“.”开头的文件名,它们称为点文件。若用命令“ls /root”是看不到它们的。
8、用长格式列出目录中的内容,执行如下命令:
ls /boot -l
注:在Linux中,若某命令有几个开关,可将这几个开关合并在一起。例如,命令ls -a -l与命令ls -al或者ls -la作用相同。
9、创建空文件,例如执行如下命令:
touch /a.dat
10、复制文件,例如执行如下命令:
cp /etc/host.conf /root
将会把目录/etc中的文件host.conf复制到目录/root中,文件名不变。
11、复制整个子目录(不改变目录名),例如执行如下命令:
cp -r /usr/include /root 将会把整个子目录/usr/include(不改变目录名)复制到目录/root中。
12、复制整个子目录(改变目录名),例如执行如下命令:
cp -r /usr/include /root/include2
将会把整个子目录/usr/include复制到目录/root中,并将目录名从include改为include2。
13、移动文件或给文件改名,例如执行如下命令:
给文件改名:mv /root/host.conf /root/myfile
移动文件:mv /root/myfile /
移动文件同时改名:mv /myfile /root/myfile2
14、删除文件,例如执行如下命令:
按y键确认:rm /root/myfile2
不需确认:rm -f /a.dat
15、删除非空目录,例如执行如下命令:
系统提示目录非空:rmdir /root/mysub
系统无错误提示:rm -rf /root/mysub
ls /root
将看到目录/root中已经没有mysub目录。
16、分屏显示文件内容,例如执行如下命令:
more /etc/services
按空格键显示下一屏,按q键返回命令行状态。
注:more作为管道命令时,可与其它一些命令结合,例如: ls /etc |more history |more
17、显示文件内容,例如执行如下命令:
more _FileName 一次一屏的显示内容,空格或者回车显示下一屏。
less _FileName 一次一屏的显示内容,空格或者回车显示下一屏。
cat _FileName 一次显示全部内容
cat _File1 _File2 > File3 将File1和File2的内容写到File3,并覆盖File3原有内容。
cat _File >> _File2 将File1的内容追加到File2,File2原内容不变。
head _FileName 只显示文件的前10行
head -n _FileName 显示文件的前n行。
tail _FileName 只显示文件的后10行
tail -n _FileName 显示文件的后n行。
18、合并文件,例如执行如下命令:
cat /etc/resolv.conf /etc/yum.conf >/b.dat
注:>和>>是重定向符号,若重定向的文件已经存在,
则使用>时将用新内容覆盖原来的内容,
而使用>>时将用新内容添加到原来内容的后面。
19、文件查找:find [路径] [选项]
20、文件内容查找:grep
三、ls命令详细
ls命令是linux下最常用的命令之一,ls跟dos下的dir命令是一样的都是用来列出目录下的文件,下面我们就来一起看看ls的用法
英文全名:List即列表的意思,当我们学习某种东西的时候要做到知其所以然,当你知道了这个东西大概是个什么了以后你的思维就会联想到很多的东西学习的就会很快。
1. ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
2. ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
3. ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接、"|"表示FIFOS、"/"表示目录、"="表示套接字。
4. ls -s 在每个文件的后面打印出文件的大小。 size(大小)
5. ls -t 按时间进行文件的排序。Time(时间)
6. ls -A 列出除了"."和".."以外的文件。
7. ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
8. ls -L 列出文件的链接名。Link(链接)
9. ls -S 以文件的大小进行排序
10. ls -tr -r 对目录反向排序
以上是一些关于ls命令的一些用法,当然还有好多没有列出来,大家可以man一下。有助于学习英文
ls可以结合管道符”|“来进行一下复杂的操作。比如: ls | less用于实现文件列表的分页,ls
计算当前目录下的文件数量
ls -|*|grep "^-"| wc -|
--linux下文件颜色的含义
绿色---->代表可执行文件,(绿色代表通行证的意思)呵呵
红色---->代表压缩文件
深蓝色---->代表目录
浅蓝色----->代表链接文件
灰色---->代表其它的一些文件
四、vi编辑器
创建或修改某一文本文件,例如执行如下命令:vi /b.dat
vi编辑器有2种模式:命令模式和编辑模式。
vi启动后进入的是命令模式,在命令模式中按【i】键就可以进入编辑模式。
在编辑模式中按【Esc】键就可以返回到命令模式。
在命令模式输入【:wq】后按回车键保存文件后退出;或者输入【:q!】后按回车键不存盘退出。
下面是一些常用的vim编辑器快捷键:
「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
按「ctrl」+「b」:屏幕往“后”移动一页。
按「ctrl」+「f」:屏幕往“前”移动一页。
按「ctrl」+「u」:屏幕往“后”移动半页。
按「ctrl」+「d」:屏幕往“前”移动半页。
按数字「0」:移到文章的开头。
按「G」:移动到文章的最后。
按「$」:移动到光标所在行的“行尾”。
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l。
「x」:每按一次,删除当前字符。
「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。
「dd」:删除光标所在行,并用下一行进行填充。
「#dd」:从光标所在行开始删除#行。
「#G」:「15G」,表示移动光标至文章的第15行行首。
「w」:在冒号输入字母「w」就可以将文件保存起来。
「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
ZZ 立即保存文件并退出。
p 粘贴
u 撤销一次
ctrl+r 反撤销一次
多窗口功能:在命令行模式下输入:sp,这样两个文件就可以同时在一个屏幕上显示,
然后先按下ctrl + w,然后放开所有按键后,再按下向下箭头键或者向上箭头键就可以进行窗口的选择了,如果要关闭一个窗口,直接 : q 即可。
vi在编辑某一个文件时,会生成一个临时文件,这个文件以“.”开头并以“.swp”结尾。
正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除。
此时只需手动删除该文件即可。
:set nu 显示行号
:setnonu 取消行号
另外,当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?
你在命令模式下敲斜杆( / )这时在状态栏(也就是屏幕左下脚)就出现了 “/”,然后输入你要查找的关键字敲回车就可以了。
五、软件包安装命令
1、查看所有已安装的软件包,执行如下命令:
rpm -qa |more
2、查看已安装的名称中包含某个字符串的所有软件包,例如执行如下命令:
rpm -qa |grep net
3、验证所有已安装的软件包,执行如下命令:
rpm -Va
注:该命令会列出所有自从包安装后系统和用户做过修改的文件。
4、查看已安装的某个软件包的用途,例如执行如下命令:
rpm -qi net-tools-1.60-37.EL4.8
5、查看系统中某个文件属于哪个软件包,例如执行如下命令:
rpm -qf /sbin/ifconfig
结果应显示该文件属于net-tools-1.60-102.el6.i686
6、安装某个软件包,例如执行如下命令:
rpm -ivh ***********.rpm
注:-v为显示信息选项,-h为显示进程选项
六、防火墙关闭
(1)重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
(2)即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
如果是firewall作为防火墙时,打开/关闭命令如下:
(1)打开防火墙
systemctl start iptables.service
(2)关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
七、系统时间
Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。
当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。
在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。
clock和hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。
(1)查看系统时间
#date
(2)设置系统时间
#date --set "07/07/06 10:19" (月/日/年 时:分:秒)
(3)查看硬件时间
#hwclock --show
#clock --show
(4)设置硬件时间
#hwclock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)
#clock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)
(5)硬件时间和系统时间的同步
按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,
但是在不重新启动的时候,需要用hwclock或clock命令实现同步。
①、将硬件时钟同步至系统时钟:
#hwclock --hctosys(hc代表硬件时间,sys代表系统时间)
#clock --hctosys
②、将系统时钟同步至硬件时钟:
#hwclock --systohc
# clock --systohc
(6)同步BIOS时钟(强制把系统时间写入CMOS)
#clock -w
(7)设置时区
找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai,用这个文件替换当前的/etc/localtime文件。
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
八、tar命令:
摘录自:http://blog.csdn.net/imyang2007/article/details/7634470
下面五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
--使用例
# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
--压缩
tar –cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg zip格式的压缩,需要先下载zip for linux
--解压
tar –xvf file.tar 解压 tar包
tar -xzvf file.tar.gz 解压tar.gz
tar -xjvf file.tar.bz2 解压 tar.bz2
tar –xZvf file.tar.Z 解压tar.Z
unrar e file.rar 解压rar
unzip file.zip 解压zip
--总结
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz和*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
九、Find命令
Find 的使用
文件查找
find .(当前目录) -name
find . -name "*.txt" -print
find . -name '[A-Z,a-z,1-100]*'.txt -print
find . -name "1.txt" -prune -o -name "*.txt" -print
目录查找
find . -path"./aa " -prune -o -name "*.txt" -print
find . -path"./aa " -prune -o -path "./bb" -prune -o -name "*.txt" -print
权限查找
find . -prem 775 -print
不查找aaa下的文件 find . -path "./aa" -prune -0 -perm 775 -print
find . -path "./aa" -prune -0 -path "./bb" -prune -o -perm 775 -print
find . \( -path "./aaa" -o -path "./bbb" \) -prune -o -perm 775 -print
按类型查找
软连接 可以理解为快捷方式
ln -s ./aaa/* ./ddd
find .-type l -print
按属主查找
find / -user www -type f -print
查找属主被删除
find / -nouser -type f -print
find / -group apache -type -f -print
按照时间查找
两天之内被改过的
find .-mtime -2 -type f -print
两天之前被改过的
find .-mtime +2 -type f -print
十分钟之前被改过的
find . -cmin +10 -type f -print
按照文件新旧查找
查找比aa.txt新的文件
find . -newer "aa.txt" -type f -print
查找比aa.txt旧的文件
find . ! -newer "aa.txt" -type f -print
查找比aa.txt新的比bb.txt旧的文件
find . -newer “aa.txt”! -newer“bb.txt" -type f -print
按照文件大小查找
在根目录小大于1M的
find / -size +1M -type -print
小于1M的文件
find / -size -1M -type -print
执行命令
find . -name "1.txt" -ok rm {} \; 新建 touch 12a.txt
find . -name "12a.txt" -exec cp {}{}.bak \
====Linux后台运行相关
1、&
加在一个命令的最后,可以把这个命令放到后台执行,如:【watch -n 10 sh test.sh &】#每10s在后台执行一次test.sh脚本
2、ctrl + z
可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
3、jobs
查看当前有多少在后台运行的命令
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。
但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。
4、fg
将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。
5、bg
将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。
6、kill
- 法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
- 法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
7、Ctrl+c
前台进程的终止
8、nohup
如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。
该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)
【ps -aux | grep "test.sh"】 #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
9、supervisor
http://www.codeweblog.com/%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7supervisor%E7%AE%80%E4%BB%8B%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/
====Linux查看系统配置常用命令
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量 资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载 磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况 网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -nap | grep pid #查看进程占用端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息 进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态 用户
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务 服务
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务 程序
# rpm -qa # 查看所有安装的软件包
====Kill命令
kill命令用于终止指定的进程(terminate a process),是Unix/Linux下进程管理的常用命令。
通常,我们在需要终止某个或某些进程时,先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。
kill命令的另外一个用途就是向指定的进程或进程组发送信号(The command kill sends the specified signal to the specified process or process group),
或者确定进程号为PID的进程是否还在。比如,有许多程序都把SIGHUP信号作为重新读取配置文件的触发条件。
ps 命令就是最基本同时也是非常强大的进程查看命令。
使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多 的资源等等。
总之大部分信息都是可以通过执行该命令得到的。
名称:ps
使用权限:所有使用者
使用方式:ps [options] [--help]
说明:显示瞬间行程 (process) 的动态
参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
--常用参数:
-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行
--ps命令常用用法(方便查看系统进程)
1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有进程。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u 以用户为主的格式来显示程序状况。
13)ps x 显示所有程序,不以终端机来区分。
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
--运行 ps aux 的到如下信息:
root:# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
smmsp 3521 0.0 0.7 6556 1616 ? Ss 20:40 0:00 sendmail: Queue runner@01:00:00 f
root 3532 0.0 0.2 2428 452 ? Ss 20:40 0:00 gpm -m /dev/input/mice -t imps2
htt 3563 0.0 0.0 2956 196 ? Ss 20:41 0:00 /usr/sbin/htt -retryonerror 0
htt 3564 0.0 1.7 29460 3704 ? Sl 20:41 0:00 htt_server -nodaemon
root 3574 0.0 0.4 5236 992 ? Ss 20:41 0:00 crond
xfs 3617 0.0 1.3 13572 2804 ? Ss 20:41 0:00 xfs -droppriv -daemon
root 3627 0.0 0.2 3448 552 ? SNs 20:41 0:00 anacron -s
root 3636 0.0 0.1 2304 420 ? Ss 20:41 0:00 /usr/sbin/atd
dbus 3655 0.0 0.5 13840 1084 ? Ssl 20:41 0:00 dbus-daemon-1 --system
--Head标头:
USER 用户名
UID 用户ID(User ID)
PID 进程ID(Process ID)
PPID 父进程的进程ID(Parent Process id)
SID 会话ID(Session id)
%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小(Virtual Size)
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。
TTY 与进程关联的终端(tty)
STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)
R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
S 睡眠 Sleeping 休眠中, 受阻, 在等待某个条件的形成或接受到信号。
I 空闲 Idle
Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。
D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
T 终止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
P 等待交换页
W 无驻留页 has no resident pages 没有足够的记忆体分页可分配。
X 死掉的进程
< 高优先级进程 高优先序的进程
N 低优先 级进程 低优先序的进程
L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
+ 位于后台的进程组
START 进程启动时间和日期
TIME 进程使用的总cpu时间
COMMAND 正在执行的命令行命令
NI 优先级(Nice)
PRI 进程优先级编号(Priority)
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识
--例子:
查看当前系统进程的uid,pid,stat,pri, 以uid号排序.
ps -eo pid,stat,pri,uid –sort uid
查看当前系统进程的user,pid,stat,rss,args, 以rss排序.
ps -eo user,pid,stat,rss,args –sort rss
ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。
1、ps 的参数说明:
ps 提供了很多的选项参数,常用的有以下几个:
l 长格式输出;
u 按用户名和启动时间的顺序来显示进程;
j 用任务格式来显示进程;
f 用树形格式来显示进程;
a 显示所有用户的所有进程(包括其它用户);
x 显示无控制终端的进程;
r 显示运行中的进程;
ww 避免详细参数被截断;
我们常用的选项是组合是 aux 或 lax,还有参数 f 的应用。
2、ps aux 或 lax 输出的解释:
USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 进程虚拟大小;
RSS 驻留中页的数量;
TTY 终端ID
STAT 进程状态(有以下几种)
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程(从来没见过);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;
WCHAN 正在等待的进程资源;
START 启动进程的时间;
TIME 进程消耗CPU的时间;
COMMAND 命令的名称和参数;
3、应用举例:
[root@localhost ~]# ps -aux |more
可以用 | 管道和 more 连接起来分页查看。
[root@localhost ~]# ps -aux > ps001.txt
把结果输出到ps001.txt文本中并保存。
[root@localhost ~]# more ps001.txt
这里是把所有进程显示出来,并输出到ps001.txt文件,然后再通过more 来分页查看。
4、kill 终止(杀死)进程,有十几种控制进程的方法,下面是一些常用的方法:
[root@localhost ~]#kill -STOP [pid]
发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
[root@localhost ~]#kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程。
[root@localhost ~]#kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
[root@localhost ~]#kill -9 -1
终止你拥有的全部进程。
SIGKILL 和 SIGSTOP 信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。所以这是你的终极武器
====netstat命令
转自博客:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html
如:统计60020端口连接数:netstat -nat|grep -i "60020"|wc -l
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
服务端端口状态解释
服务端,端口的状态变化
1、LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。
State显示是LISTENING时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开的,但还没有人进来。
从TCPView可以看出本机开放FTP的情况。它的意思是:程序inetinfo.exe开放了21端口,FTP默认的端口为21,可见在本机开放了FTP服务。目前正处于侦听状态。
inetinfo.exe:1260 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
2、ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
下面显示的是本机的FTP服务正在被192.168.1.1这台计算机访问。
inetinfo.exe:1260 TCP 192.168.1.10:21 192.168.1.1:3009 ESTABLISHED
3、 TIME_WAIT状态
现在从192.168.1.1这台计算机结束访问192.168.1.10的FTP服务。在本机的TCPView可以看出端口状态变为TIME_WAIT。
TIME_WAIT的意思是结束了这次连接。说明21端口曾经有过访问,但访问结束了。
[System Process]:0 TCP 192.168.1.10:21 192.168.1.1:3009 TIME_WAIT
4、小技巧
a、可以telnet一个开放的端口,来观察该端口的变化。比如看1025端口是开放的,在命令状态(如图1运行cmd)运行:
telnet 192.168.1.10 1025
b、从本机也可以测试,只不过显示的是本机连本机
c、在Tcpview中双击连接可看出程序的位置,右键点击该连接,选择End Process即可结束该连接。
====df磁盘命令
转自博客:http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html
-------------------
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
1.命令格式:
df [选项] [文件]
2.命令功能:
显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示
3.命令参数:
必要参数:
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
--no-sync 忽略 sync 命令
-P 输出格式为POSIX
--sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
选择参数:
--block-size=<区块大小> 指定区块大小
-t<文件系统类型> 只显示选定文件系统的磁盘信息
-x<文件系统类型> 不显示选定文件系统的磁盘信息
--help 显示帮助信息
--version 显示版本信息
4.使用实例:
实例1:显示磁盘使用情况
命令:
df
输出:
[root@CT1190 log]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda7 19840892 890896 17925856 5% /
/dev/sda9 203727156 112797500 80413912 59% /opt
/dev/sda8 4956284 570080 4130372 13% /var
/dev/sda6 19840892 1977568 16839184 11% /usr
/dev/sda3 988116 23880 913232 3% /boot
tmpfs 16473212 0 16473212 0% /dev/shm
说明:
linux中df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use% 列表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间。最后,Mounted on列表示文件系统的挂载点。
实例2:以inode模式来显示磁盘使用情况
命令:
df -i
输出:
[root@CT1190 log]# df -i
文件系统 Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda7 5124480 5560 5118920 1% /
/dev/sda9 52592640 50519 52542121 1% /opt
/dev/sda8 1280000 8799 1271201 1% /var
/dev/sda6 5124480 80163 5044317 2% /usr
/dev/sda3 255232 34 255198 1% /boot
tmpfs 4118303 1 4118302 1% /dev/shm
说明:
实例3:显示指定类型磁盘
命令:
df -t ext3
输出:
[root@CT1190 log]# df -t ext3
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda7 19840892 890896 17925856 5% /
/dev/sda9 203727156 93089700 100121712 49% /opt
/dev/sda8 4956284 570104 4130348 13% /var
/dev/sda6 19840892 1977568 16839184 11% /usr
/dev/sda3 988116 23880 913232 3% /boot
说明:
实例4:列出各文件系统的i节点使用情况
命令:
df -ia
输出:
[root@CT1190 log]# df -ia
文件系统 Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda7 5124480 5560 5118920 1%
/proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devpts 0 0 0 - /dev/pts
/dev/sda9 52592640 50519 52542121 1% /opt
/dev/sda8 1280000 8799 1271201 1% /var
/dev/sda6 5124480 80163 5044317 2% /usr
/dev/sda3 255232 34 255198 1% /boot
tmpfs 4118303 1 4118302 1% /dev/shm
none 0 0 0 - /proc/sys/fs/binfmt_misc
说明:
实例5:列出文件系统的类型
命令:
df -T
输出:
root@CT1190 log]# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/sda7 ext3 19840892 890896 17925856 5% /
/dev/sda9 ext3 203727156 93175692 100035720 49% /opt
/dev/sda8 ext3 4956284 570104 4130348 13% /var
/dev/sda6 ext3 19840892 1977568 16839184 11% /usr
/dev/sda3 ext3 988116 23880 913232 3% /boot
tmpfs tmpfs 16473212 0 16473212 0% /dev/shm
说明:
实例6:以更易读的方式显示目前磁盘空间和使用情况
命令:
输出:
[root@CT1190 log]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda7 19G 871M 18G 5% /
/dev/sda9 195G 89G 96G 49% /opt
/dev/sda8 4.8G 557M 4.0G 13% /var
/dev/sda6 19G 1.9G 17G 11% /usr
/dev/sda3 965M 24M 892M 3% /boot
tmpfs 16G 0 16G 0% /dev/shm
[root@CT1190 log]# df -H
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda7 21G 913M 19G 5% /
/dev/sda9 209G 96G 103G 49% /opt
/dev/sda8 5.1G 584M 4.3G 13% /var
/dev/sda6 21G 2.1G 18G 11% /usr
/dev/sda3 1.1G 25M 936M 3% /boot
tmpfs 17G 0 17G 0% /dev/shm
[root@CT1190 log]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda7 19G 871M 18G 5% /
/dev/sda9 195G 89G 96G 49% /opt
/dev/sda8 4.8G 557M 4.0G 13% /var
/dev/sda6 19G 1.9G 17G 11% /usr
/dev/sda3 965M 24M 892M 3% /boot
tmpfs 16G 0 16G 0% /dev/shm
[root@CT1190 log]# df -k
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda7 19840892 890896 17925856 5% /
/dev/sda9 203727156 93292572 99918840 49% /opt
/dev/sda8 4956284 570188 4130264 13% /var
/dev/sda6 19840892 1977568 16839184 11% /usr
/dev/sda3 988116 23880 913232 3% /boot
tmpfs 16473212 0 16473212 0% /dev/shm
说明:
-h更具目前磁盘空间和使用情况 以更易读的方式显示
-H根上面的-h参数相同,不过在根式化的时候,采用1000而不是1024进行容量转换
-k以单位显示磁盘的使用情况
-l显示本地的分区的磁盘空间使用率,如果服务器nfs了远程服务器的磁盘,那么在df上加上-l后系统显示的是过滤nsf驱动器后的结果
-i显示inode的使用情况。linux采用了类似指针的方式管理磁盘空间影射.这也是一个比较关键应用
====磁盘I/O状态
参考博客:http://blog.chinaunix.net/uid-24993824-id-160073.html
命令:iostat [-c|-d] [-m] [-t] [时间间隔] [检测次数]
参数:
-c :仅显示cpu的状态
-d :仅显示存储设备的状态,不可以和-c一起使用
-t :显示日期
-m:默认显示的是读入读出的block信息,用-m可以改成MB大小来显示
显示分为上下两个部分,上半部分显示CPU的信息,下面的数据,显示存储设备的相关数据,
它的数据意义如下:avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
Device:设备/硬盘名称
tps:平均每秒钟的传送次数,与数据传输“次数”相关,非容量
MB_read/s:启动到现在的平均读取单位
MB_wrtn/s:启动到现在的平均写入单位
MB_read:启动到现在总共读出来的文件 单位
MB_wrtn:启动到现在总共写入的文件单位
加“-x”参数,更详细统计io设备信息
-----------------
sda 0.00 9915.00 1.00 90.00 4.00 34360.00 755.25 11.79 120.57 6.33 57.60
-----------------
rrqm/s:每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
wrqm/s:每秒对该设备的写请求被合并次数
r/s: 每秒完成的读次数
w/s: 每秒完成的写次数
rkB/s: 每秒读数据量(kB为单位)
wkB/s: 每秒写数据量(kB为单位)
avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
avgqu-sz::平均等待处理的IO请求队列长度
await:平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm:平均每次IO请求的处理时间(毫秒为单位)
%util:采用周期内用于IO操作的时间比率,即IO队列非空的时间比率
对于以上示例输出示例说明:
每秒向磁盘上写30M左右数据(wkB/s值)
每秒有91次IO操作(r/s+w/s),其中以写操作为主体
平均每次IO请求等待处理的时间为120.57毫秒,处理耗时为6.33毫秒
等待处理的IO请求队列中,平均有11.79个请求驻留
====chown更改用户组
chown 修改文件和文件夹的用户和用户组属性
1。要修改文件hh.c的所有者.修改为sakia的这个用户所有
chown sakia hh.c
这样就把hh.c的用户访问权限应用到sakia作为所有者
2。将目录 /tmp/sco 这个目录的所有者和组改为sakia和组net
chown -R sakia:net /tmp/sco
===chown修改文件权限
chmod ABC File
其中 ABC分别表示User、Group、及Other的权限。
1)读权限(r)
权限二进制100, 转为十进制4;
2)写权限(w)
权限二进制010, 转为十进制2;
3)执行权限(x)
权限二进制001, 转为十进制1;
例如:
1)可度、可写、可运行
二进制表示为:111,转换为十进制:7
2)可度、可写、不可运行
二进制表示为:110,转换成二进制:6
3)可度、不可写、可运行
二进制表示为:101,转换为十进制:5
命令样例:
修改文件权限:chmod 777 /home/hadmin/qchtest/test.sh
修改文件夹权限:chmod -R 777 /home/hadmin/qchtest
====Jar包命令
【打包】
jar cf JAR文件名称 程序文件名称或者程序所在的文件夹
举例:jar cf MyApp.jar D:JavaProjectMyApp
【查看一个jar文件的内容】
jar tvf JAR文件名称
举例:jar tvf MyApp.jar
【将一个jar文件解压缩】
jar xf JAR文件名称
举例:jar xf MyApp.jar
【往压缩包里面增加文件】
jar xf JAR文件名称 添加的文件或者其他的jar文件
举例:jar xf MyApp.jar Test.class
【更新一个jar文件】
jar uf JAR文件名称 更新的文件或者其他的jar文件
举例:jar uf MyApp.jar Test.class
【运行一个jar程序】
java -jar JAR文件名称
举例:java -jar MyApp.jar
【创建一个可以运行的jar文件】
①、首先我们必须有一个主类(Main Class)
②、创建一个叫做MANIFEST.MF的文本,然后把一下内容拷贝进去
Manifest-Version: 1.0
Main-Class: YourMainClass
这个YourMainClass就是你程序中包含main方法的那个class
③、下面的语句用来创建可执行的jar文件。
jar cvfm MyApp.jar MANIFEST.MF 文件或文件夹路径
====lsblk命令
sblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息
lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。
-a, --all 显示所有设备。
-b, --bytes 以bytes方式显示设备大小。
-d, --nodeps 不显示 slaves 或 holders。
-D, --discard print discard capabilities。
-e, --exclude 排除设备 (default: RAM disks)。
-f, --fs 显示文件系统信息。
-h, --help 显示帮助信息。
-i, --ascii use ascii characters only。
-m, --perms 显示权限信息。
-l, --list 使用列表格式显示。
-n, --noheadings 不显示标题。
-o, --output 输出列。
-P, --pairs 使用key="value"格式显示。
-r, --raw 使用原始格式显示。
-t, --topology 显示拓扑结构信息。
NAME:是块设备名。
MAJ:MIN:显示主要和次要设备号。
RM:本栏显示设备是否可移动设备。注意,RM值等于1,说明他们是可移动设备。
SIZE:本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
RO:该项表明设备是否为只读。RO值为0,表明他们不是只读的。
TYPE:本栏显示块设备是否是磁盘或磁盘上的一个分区。
MOUNTPOINT:本栏指出设备挂载的挂载点。
====du
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh
很明显,与df不同,它用来查看文件或目录所占用的磁盘空间的大小。
du常用的选项:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小
du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量
du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。
====lsof
1.列出所有打开的文件:
lsof
备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位
2. 查看谁正在使用某个文件
lsof /filepath/file
3.递归查看某个目录的文件信息
lsof +D /filepath/filepath2/
备注: 使用了+D,对应目录下的所有子目录和文件都会被列出
4. 比使用+D选项,遍历查看某个目录的所有文件信息 的方法
lsof | grep ‘/filepath/filepath2/’
5. 列出某个用户打开的文件信息
lsof -u username
备注: -u 选项,u其实是user的缩写
6. 列出某个程序所打开的文件信息
lsof -c mysql
备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比第二种方法要少打几个字符了
7. 列出多个程序多打开的文件信息
lsof -c mysql -c apache
8. 列出某个用户以及某个程序所打开的文件信息
lsof -u test -c mysql
9. 列出除了某个用户外的被打开的文件信息
lsof -u ^root
备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
10. 通过某个进程号显示该进程打开的文件
lsof -p 1
11. 列出多个进程号对应的文件信息
lsof -p 123,456,789
12. 列出除了某个进程号,其他进程号所打开的文件信息
lsof -p ^1
13 . 列出所有的网络连接
lsof -i
14. 列出所有tcp 网络连接信息
lsof -i tcp
15. 列出所有udp网络连接信息
lsof -i udp
16. 列出谁在使用某个端口
lsof -i :3306
17. 列出谁在使用某个特定的udp端口
lsof -i udp:55
特定的tcp端口
lsof -i tcp:80
18. 列出某个用户的所有活跃的网络端口
lsof -a -u test -i
19. 列出所有网络文件系统
lsof -N
20.域名socket文件
lsof -u
21.某个用户组所打开的文件信息
lsof -g 5555
22. 根据文件描述列出对应的文件信息
lsof -d description(like 2)
23. 根据文件描述范围列出文件信息
lsof -d 2-3