实例1:显示所有进程信息
命令:
ps -A
实例3:显示所有进程信息,连同命令行
命令:
ps -ef
实例4: ps 与grep 常用组合用法,查找特定进程
命令:
ps -ef|grep ssh
实例6:列出目前所有的正在内存当中的程序
命令:
ps aux
ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,
watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,
命令格式
watch[参数][命令]
可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令
使用实例
命令:每隔一秒高亮显示网络链接数的变化情况
watch -n 1 -d netstat -ant
1.命令格式
at[参数][时间]
2.命令功能
在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程(
ps -ef | grep atd查看, 开启用/etc/init.d/atd start or restart; 开机即启动则需要运行 chkconfig --level 2345 atd on)。
4.使用实例
实例1:三天后的下午 5 点执行 /bin/ls
命令:
at 5pm+3 days
Linux 系统也提供了使用者控制计划任务的命令 : crontab 命令。
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
ls用来打印出当前目录的列表,
rm
实例二
强行删除文件,系统不再提示。
命令:
rm -f mylog.txt
将目录及子目录中所有档案删除。
命令:
rm -r tempdir
rm -rf test2命令会将 test2 子目录及子目录中所有档案删除,并且不用逐个确认。
删除以 -f 开头的文件
命令:
rm – -f
rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。
mv
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
1.命令格式
在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
文件改名
命令:
mv test.log new-test.log
移动文件
命令:
mv test1.txt test3
touch命令不常用,一般用来修改文件时间戳,或者新建一个不存在的文件。
cat
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
cat主要有三大功能:
一次显示整个文件:cat filename
从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
将几个文件合并为一个文件:cat file1 file2 > file
nl命令在linux系统中用来计算文件中行号。
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。
less命令也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。
Linux命令 的 head
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示文件的开头至标准输出中,而 tail 想当然尔就是看文件的结尾。
tail 命令从指定点开始将文件写到标准输出
命令功能
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。
将源文件复制至目标文件,或将多个源文件复制至目标目录。
tar
Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip, bzip2命令)。
linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。
tar本身不具有压缩功能,它是调用压缩功能实现的。
tar文件格式
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
.gz文件格式
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2文件格式
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2文件格式
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz文件格式
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz文件格式
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z文件格式
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z文件格式
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.zip文件格式
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
tar -cvf log1.tar log1.log 仅打包,不压缩!
tar -zcvf log2.tar.gz log2.log 打包后,以 gzip 压缩
tar -zcvf log.tar.bz2 log3.log 打包后,以 bzip2 压缩
实例3:将 tar 包解压缩
命令:
tar -zxvf /home/yiibai/log2.tar.gz
一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:
Linux命令 的 gzip
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。
gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出”.gz“的扩展名。
Linux命令 的 which
在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
which - 查看可执行文件的位置。
whereis - 查看文件的位置。
locate - 配合数据库查看文件位置。
find - 实际搜寻硬盘查询文件名称。
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which adduser
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,
Linux中的find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
find pathname -options [-print -exec -ok …]
命令功能
用于在文件树种查找文件,并作出相应的处理
Linux命令 的 find
实例2:根据关键字查找
命令:
find . -name “*.log”
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
chown yiibai:yiibai newfile.txt
实例1:改变拥有者和群组
实例3:改变文件群组
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
实例3:显示指定类型磁盘
实例4:列出各文件系统的i节点使用情况
du命令也是查看使用空间的,与df命令不同的是,Linux du命令是对文件和目录磁盘使用的空间的查看,所以它和df命令还是有一些区别的。
实例4:显示多个文件所占空间
命令:
du file1 file2
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。
实例1:显示进程信息
命令:
top
free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。
交换将通过三个途径来减少系统中使用的物理页面的个数:
减少缓冲与页面cache的大小,
将系统V类型的内存页面交换出去,
换出或者丢弃页面。(应用程序占用的内存页,也就是物理内存不足)。
事实上,少量地使用swap是不是影响到系统性能的。
buffers和cached都是缓存,两者有什么区别呢?
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。
Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了。这也是linux看内存是否够用的标准.
如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。
实例2:以总和的形式显示内存的使用信息
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。
作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。
linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
Linux命令 的 ifconfig
ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。
ifconfig eth0 up
ifconfig eth0 down
实例4:用ifconfig修改MAC地址
命令:
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
实例5:配置IP地址
命令:
[root@localhost ~]# ifconfig eth0 192.168.1.56
[root@localhost ~]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
查看/dev/sda1磁盘的读/写
Linux系统中的 iostat 是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。
route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器
route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。
可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。
系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,
它通过发送ICMP ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST to network hosts),并显示响应情况,这样就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的)。有些服务器为了防止通过ping探测到,通过防火墙设置了禁止ping或者在内核参数中禁止ping,这样就不能通过ping确定该主机是否还处于开启状态。
实例3:ping网关
命令:
ping -b 192.168.0.0
通过traceroute可以知道信息从计算机到互联网另一端的主机数据经过什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
在大多数情况下,在linux主机系统可直接执行命令行:
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果使用 traceroute -q 4 www.yiibai.com ,表示向每个网关发送4个数据包。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。
跳数设置
Linux命令 的 netstat
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
如果计算机有时候接收到的数据报导致出错数据或故障,不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么就应该使用netstat查一查为什么会出现这些情况了。
ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。ss是Socket Statistics的缩写。
ss -t -a
rcp代表“remote file copy”(远程文件拷贝)。该命令用于在计算机之间拷贝文件。rcp命令有两种格式。第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
软链接:
软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
软链接可以 跨文件系统 ,硬链接不可以
软链接可以对一个不存在的文件名进行链接
软链接可以对目录进行链接
硬链接:
硬链接,以文件副本的形式存在。但不占用实际空间。
不允许给目录创建硬链接
硬链接只有在同一个文件系统中才能创建
这里有两点要注意:
第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。
目录只能创建软链接。
目录创建链接必须用绝对路径,相对路径创建会不成功,会提示:符号连接的层数过多 这样的错误。
在链接目标目录中修改文件都会在源文件目录中同步变化。
软链接就相当于windows的的快捷方式,使用场景:
在文件系统中多处共享同一个较大文件时,使用软链接就可以避免创建多个副本。
维护动态库文件的版本时,使用软链接,在升级库文件后,只需修改软链接的源文件,而使用该库的程序则不需要修改。
硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode.通过使用硬链接可达到备份数据(实际是备份节点)的效果。
diff命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。
diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
Linux命令 的 date
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。
grep [option] pattern file
grep的规则表达式:
^ #锚定行的开始 如:’^grep’匹配所有以grep开头的行。
$ #锚定行的结束 如:’grep$’匹配所有以grep结尾的行。
. #匹配一个非换行符的字符 如:’gr.p’匹配gr后接一个任意字符,然后是p。
查找指定进程
命令:
ps -ef|grep python
输出:
[yiibai@localhost yiibai]$ ps -ef|grep python
root 920 1 0 Feb25 ? 00:00:14 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 4705 4631 91 08:05 pts/0 00:00:36 python run.py
yiibai 4726 4712 0 08:05 pts/0 00:00:00 grep --color=auto python
[yiibai@localhost yiibai]$
说明:第一条记录是查找出的进程;第二条结果是grep进程本身,并非真正要找的进程。
实例3:从文件中读取关键词进行搜索
命令:
cat file2.txt |grep -f file1.txt
例4:从文件中读取关键词进行搜索 且显示行号
命令:
cat file2.txt | grep -nf file1.txt
实例5:从文件中查找关键词
命令:
grep ‘linux’ file1.txt
实例8:找出已w开头的行内容
命令:
cat file1.txt |grep ^w
实例10:输出以hat结尾的行内容
命令:
cat test.txt |grep hat$
实例11:显示包含on或者on字符的内容行
命令:
cat file2.txt |grep -E “on|va”
Linux系统中的wc(表示:Word Count,不是指厕所)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
用来统计当前目录下的文件数
命令: