1.ls命令
命令格式:
ls [选项] [目录名]
命令功能:
列出目标目录中所有的子目录和文件。
常用参数:
-a,列出所有文件包括隐藏文件
-l,列出详细信息,文件大小一般以字节大小显示
-h,以容易理解的方式列出文件大小
例:
2.cd命令
命令格式:
cd [目录名]
命令功能:
切换当前目录至dirName
常用范例:
cd / 切换到系统根目录
.当前目录 ..上级目录(返回上一级)
cd ../.. //可以一直退到根目录
3.pwd命令
查看”当前工作目录“的完整路径
4.mkdir命令
创建文件夹
参数:
mkdir -p test2/test22 递归创建目录-p
5.rm命令
rm -f log1.log 强制删除文件-f
6.mv命令
移动文件,通常用来备份文件和目录
文件重命名/覆盖文件:mv test.log test1.txt,把文件test.log重命名为test1.txt -f 强制,不提示
移动文件:mv test1.txt test3,将test1.txt文件移到目录test3中
7.cp命令
cp命令用来复制文件或者目录
cp log.log test5
8.touch命令
touch [选项]... 文件... 创建不存在的文件,创建空文件
9.cat命令
用来显示文件内容
10.vim命令
vim .test 创建隐藏文件
vim test 创建文件,并打开,按i进入编辑模式,写完按esc退出编辑模式,按shift+:,输入wq,回车
11.more 命令
more test 回车一行一行查看;空格一页一页查看,慢慢查看
12.tree 命令
查看a目录的结构 tree a
13.pwd
查看当前目录/路径
14.df-h
查看当前磁盘占用
15.top命令
16.kill命令
kill+进程id,关闭进程 kill 27317(pid),其中进程id用top查
17.find命令
实例3:在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限
命令:
find . -perm -7 -print | xargs chmod o-w
实例4:用grep命令在所有的普通文件中搜索hostname这个词
命令:
find . -type f -print | xargs grep "hostname"
要想让系统高负荷运行,就从根目录开始查找所有的文件。
find / -name "*" -print
如果想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件:
命令:
find . -name "[a-z]*[4-9].log" -print
按照文件权限模式用-perm选项:在当前目录下查找文件权限位为755的文件
find . -perm 755 -print
18.less命令
使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件
19.head命令
显示文件的前n行head -n 5 log2014.log
20.tail命令
显示指定文件末尾内容
tail -n 5 log2014.log
21.which命令
使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
22.whereis命令
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
命令格式:
whereis [-bmsu] [BMS 目录名 -f ] 文件名
23.locate命令
查找和pwd相关的所有文件
命令:
locate pwd
搜索etc目录下所有以sh开头的文件
命令:
locate /etc/sh
24.chomd命令
1. 命令格式:
[-cfvR] [--help] [--version] mode
2. 命令功能:
用于改变文件或目录的访问权限,用它控制文件或目录的访问权限。
3. 命令参数:
必要参数:
-c 当发生改变时,报告处理信息-f 错误信息不输出-R 处理指定目录以及其子目录下的所有文件-v 运行时显示详细处理信息增加文件所有用户组可执行权限
命令:
chmod a+x log2012.log
删除文件权限
命令:
chmod a-x log2012.log
命令:
chmod 751 file
说明:
给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
25.tar命令
先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName将文件全部打包成tar包
命令:
tar -cvf log.tar log2012.log 仅打包,不压缩!
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
26.chgrp命令
chgrp -v bin log2012.log
将log2012.log文件由root群组改为bin群组
27.gzip命令
命令格式:
gzip[参数][文件或者目录]
命令功能:
gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。
命令参数:
-a或--ascii 使用ASCII文字模式。
-c或--stdout或--to-stdout 把压缩后的文件输出到标准输出设备,不去更动原始文件。
-d或--decompress或----uncompress 解开压缩文件。
-f或--force 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-h或--help 在线帮助。
-l或--list 列出压缩文件的相关信息。
-L或--license 显示版本与版权信息。
-n或--no-name 压缩文件时,不保存原来的文件名称及时间戳记。
-N或--name 压缩文件时,保存原来的文件名称及时间戳记。
-q或--quiet 不显示警告信息。
-r或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或----suffix<压缩字尾字符串> 更改压缩字尾字符串。
-t或--test 测试压缩文件是否正确无误。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
例:gzip -dv * 文件解压,并列出详细的信息
递归的压缩目录
命令:
gzip -rv test6
这样,所有test下面的文件都变成了*.gz,目录依然存在只是目录里面的文件相应变成了*.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。
28.du命令
显示每个文件和目录的磁盘使用空间。
显示指定文件所占空间
命令:
du log2012.log
显示当前目录或者文件所占空间
命令:
du
查看指定目录的所占空间
命令:
du scf
29.in命令
为某一个文件在另外一个位置建立一个同步的链接.
给文件创建软链接
命令:
ln -s log2013.log link2013 -s软连接标志
为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效
给文件创建硬链接
命令:
ln log2013.log ln2013
为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
30.diff命令
diff命令能比较单个文件或者目录内容。比较两个版本不同的文件以找到改动的地方。
比较两个文件
命令:
输出:
[root@localhost test3]# diff log2014.log log2013.log
3c3
< 2014-03
---
> 2013-03
8c8
< 2013-07
---
> 2013-08
11,12d10
< 2013-11
< 2013-12
说明:
上面的“3c3”和“8c8”表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。
31.data命令
date 可以用来显示或设定系统的日期与时间。
命令参数:
必要参数:
%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 市区。
%a 星期的缩写。
%A 星期的完整名称。
%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%j 该年中的第几天。
%m 月份(以01-12来表示)。
%U 该年中的周数。
%w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小时(必要)
mm 分钟(必要)
ss 秒(选择性)
32.cal命令
显示当前月份日历
33.grep命令
grep命令是一种强大的文本搜索工具
-n在显示符合样式的那一行之前,标示出该行的列数编号。
cat test.txt | grep -f test2.txt
输出test.txt文件中含有从test2.txt文件中读取出的关键词的内容行
34.wc命令
wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
wc test.txt
35.ps命令
ps命令用来列出系统中当前运行的那些进程
ps 与grep 常用组合用法,查找特定进程
命令:
ps -ef|grep ssh
显示所有进程信息,连同命令行
命令:
ps -ef
36.free命令
可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行是交换分区SWAP的,也就是我们通常所说的虚拟内存。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是2098428KB,已用内存是30841684KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
37.vmstat命令
Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控
38.iostat命令
通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。
命令参数:
-C 显示CPU使用情况
-d 显示磁盘使用情况
-k 以 KB 为单位显示
-m 以 M 为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS 使用情况
-p[磁盘] 显示磁盘和分区的情况
-t 显示终端和CPU的信息
-x 显示详细信息
-V 显示版本信息
39.watch命令
多用于周期性执行命令/定时执行命令
10秒一次输出系统的平均负载
命令:
watch -n 10 'cat /proc/loadavg'
40.at命令
在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程(
ps -ef | grep atd查看, 开启用/etc/init.d/atd start or restart; 开机即启动则需要运行 chkconfig --level 2345 atd on)。
41.crond命令
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。
每1分钟执行一次command
命令:
crontab command
42.lsof命令
用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。需要root用户执行
-a 列出打开文件存在的进程
lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
PPID:父进程标识符(需要指定-R参数)
USER:进程所有者
PGID:进程所属组
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
(1)cwd:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改
(2)txt :该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序
(3)lnn:library references (AIX);
(4)er:FD information error (see NAME column);
(5)jld:jail directory (FreeBSD);
(6)ltx:shared library text (code and data);
(7)mxx :hex memory-mapped type number xx.
(8)m86:DOS Merge mapped file;
(9)mem:memory-mapped file;
(10)mmap:memory-mapped device;
(11)pd:parent directory;
(12)rtd:root directory;
(13)tr:kernel trace file (OpenBSD);
(14)v86 VP/ix mapped file;
(15)0:表示标准输出
(16)1:表示标准输入
(17)2:表示标准错误
一般在标准输出、标准错误、标准输入后还跟着文件状态模式:r、w、u等
(1)u:表示该文件被打开并处于读取/写入模式
(2)r:表示该文件被打开并处于只读模式
(3)w:表示该文件被打开并处于
(4)空格:表示该文件的状态模式为unknow,且没有锁定
(5)-:表示该文件的状态模式为unknow,且被锁定
同时在文件状态模式后面,还跟着相关的锁
(1)N:for a Solaris NFS lock of unknown type;
(2)r:for read lock on part of the file;
(3)R:for a read lock on the entire file;
(4)w:for a write lock on part of the file;(文件的部分写锁)
(5)W:for a write lock on the entire file;(整个文件的写锁)
(6)u:for a read and write lock of any length;
(7)U:for a lock of unknown type;
(8)x:for an SCO OpenServer Xenix lock on part of the file;
(9)X:for an SCO OpenServer Xenix lock on the entire file;
(10)space:if there is no lock.
TYPE:文件类型,如DIR、REG等,常见的文件类型
(1)DIR:表示目录
(2)CHR:表示字符类型
(3)BLK:块设备类型
(4)UNIX: UNIX 域套接字
(5)FIFO:先进先出 (FIFO) 队列
(6)IPv4:网际协议 (IP) 套接字
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
查找某个文件相关的进程
命令:
lsof /bin/bash
43.ifconfig 命令
用来查看和配置网络设备。
44.Route命令
用于操作基于内核ip路由表,它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0。
显示当前路由
命令:
route
[root@localhost ~]# route
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.120.0 * 255.255.255.0 U 0 0 0 eth0e192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth010.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0第一行表示主机所在网络的地址为192.168.120.0,若数据传送目标是在本局域网内通信,则可直接通过eth0转发数据包;
第四行表示数据传送目的是访问Internet,则由接口eth0,将数据包发送到网关192.168.120.240
其中Flags为路由标志,标记当前网络节点的状态。
Flags标志说明:
U Up表示此路由当前为启动状态
H Host,表示此网关为一主机
G Gateway,表示此网关为一路由器
R Reinstate Route,使用动态路由重新初始化的路由
D Dynamically,此路由是动态性地写入
M Modified,此路由是由路由守护程序或导向器动态修改
! 表示此路由当前为关闭状态
备注:
route -n (-n 表示不解析名字,列出速度会比route 快)
45.ping命令
用于:确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。
命令格式:
ping [参数] [主机名或IP地址]
ping的通的情况
命令:
ping 192.168.120.205
46.netstat命令
用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
套接口类型:
-t :TCP
-u :UDP
-raw :RAW类型
--unix :UNIX域类型
--ax25 :AX25类型
--ipx :ipx类型
--netrom :netrom类型
状态说明:
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态
47.ss(Socket Statistics的缩写)命令
可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比 netstat 更快速高效。
-h, --help 帮助信息
-V, --version 程序版本信息
-n, --numeric 不解析服务名称
-r, --resolve 解析主机名
-a, --all 显示所有套接字(sockets)
-l, --listening 显示监听状态的套接字(sockets)
-o, --options 显示计时器信息
-e, --extended 显示详细的套接字(sockets)信息
-m, --memory 显示套接字(socket)的内存使用情况
-p, --processes 显示使用套接字(socket)的进程
-i, --info 显示 TCP内部信息
-s, --summary 显示套接字(socket)使用概况
-4, --ipv4 仅显示IPv4的套接字(sockets)
-6, --ipv6 仅显示IPv6的套接字(sockets)
-0, --packet 显示 PACKET 套接字(socket)
-t, --tcp 仅显示 TCP套接字(sockets)
-u, --udp 仅显示 UCP套接字(sockets)
-d, --dccp 仅显示 DCCP套接字(sockets)
-w, --raw 仅显示 RAW套接字(sockets)
-x, --unix 仅显示 Unix套接字(sockets)
-f, --family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 将原始TCP套接字(sockets)信息转储到文件
-F, --filter=FILE 从文件中都去过滤器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
48.telnet指令
开启终端机阶段作业,并登入远端主机。
远程服务器无法访问
命令:
telnet 192.168.120.206
处理这种情况方法:
(1)确认ip地址是否正确?
(2)确认ip地址对应的主机是否已经开机?
(3)如果主机已经启动,确认路由设置是否设置正确?(使用route命令查看)
(4)如果主机已经启动,确认主机上是否开启了telnet服务?(使用netstat命令查看,TCP的23端口是否有LISTEN状态的行)
(5)如果主机已经启动telnet服务,确认防火墙是否放开了23端口的访问?(使用iptables-save查看)
域名无法解析
命令:
telnet www.baidu.com
处理这种情况方法:
(1)确认域名是否正确
(2)确认本机的域名解析有关的设置是否正确(/etc/resolv.conf中nameserver的设置是否正确,如果没有,可以使用nameserver 8.8.8.8)
(3)确认防火墙是否放开了UDP53端口的访问(DNS使用UDP协议,端口53,使用iptables-save查看)
49.rcp命令
用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。
将当前目录下的 test1 复制到名为 webserver1的远程系统
命令:
rcp test1 webserver1:/home/root/test3
说明:
在这种情况下,test1 被复制到远程子目录 test3下,名称仍为 test1 。如果仅提供了远程主机名,rcp 将把 test1 复制到远程主目录下,名称仍为 test1 。
还可以在目的目录中包含文件名。例如,将文件复制到名为 webserver1的系统中:
rcp test1 webserver1:/home/root/test3
在这种情况下,将 test1 复制到远程目录root 下并将其命名为 test3。
从远程系统复制文件:要将远程系统中的文件复制到本地目录下
命令:
rcp remote_hostname:remote_file local_fileEnter
将远程系统 webserver1中的 test2 复制到当前目录:
命令:
rcp webserver1:/home/root/test2 .Enter
说明:
点 (.) 是“当前目录”的简写形式。在这种情况下,远程目录中的 test2 被复制到当前目录下,名称仍为 test2 。
如果希望用新名称复制文件,请提供目标文件名。
如果希望将 test2 复制到本地系统中的其他目录下,请使用以下绝对或相对路径名:
rcp webserver1:/home/root/test2 otherdir/ Enter
或者,如果希望用其他文件名将文件复制到其他目录下:
rcp webserver1:/home/root/test2 otherdir/otherfile Enter
50.scp是命令
secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录
从远处复制文件到本地目录
命令:
scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
从192.168.120.204机器上的/opt/soft/的目录中下载nginx-0.5.38.tar.gz 文件到本地/opt/soft/目录中
51.wget命令:
用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录。
使用wget下载单个文件
命令:
wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip
说明:
以下的例子是从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。