1、ls
ls -hG //MacOS下输出带颜色文件和目录
ls -a // 显示隐藏文件
ls -l // 显示文件权限和组信息
ls -lR /home //列出 home目录包括其内部子目录中的所有文件
2、cd
cd / 进入系统根目录
cd ..// 进入上一层目录
cd - 返回进入此目录之前所在的目录
3、pwd
查看当前目录
当前目录被删除了,而pwd命令仍然显示那个目录
[root@localhost soft]# mkdir removed
[root@localhost soft]# cd removed/
[root@localhost removed]# pwd
/opt/soft/removed
[root@localhost removed]# rm ../removed -rf
[root@localhost removed]# pwd
/opt/soft/removed
4 、mkdir -m dirname
创建目录
-m 设置权限 mkdir -m 777 name
-p 递归创建多个目录 mkdir -p test2/test22
-v 显示创建目录的信息
[root@localhost test]# mkdir -v test4
mkdir:已创建目录“test4”
5、rm
删除文件或者文件夹
rm filename 删除某个文件
-r 删除目录以及子目录中的所有文件 rm -r test1
-f 删除前不询问 直接删除
-i 进行交互式删除 每次删除都需要确认
6、rmdir
删除空目录
当前目录中如果有子目录,即使子目录也为空,也不能用这个命令删除
-p 递归删除:当子目录都被删除,父目录为空后,直接把父目录也删除。
7、mv 选项 源文件/目录 目标文件/目录
“移动文件到目录” 或者“将源文件重命名为目标文件名” 或者“把源目录添加到目标目录”
mv text.txt text1.txt 将文件text.txt重命名为text1.txt 目录下只有text.txt文件,移动完文件夹下只有text1.txt
mv test1.txt test3 将test1.txt移动到test3目录中
将文件log1.txt,log2.txt,log3.txt移动到目录test3中
mv log1.txt log2.txt log3.txt test3
mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
mv 1.txt 2.txt 使用1.txt将2.txt覆盖,加上 -i 参数代表询问是否覆盖 -f 直接覆盖,不询问
mv -f 1.txt 2.txt
mv dir1 dir2 如果dir2不存在,将dir1改名为dir2; 如果dir2存在,将目录dir1移动到dir2
mv * ../ 移动文件夹下所有文件到上一目录
mv test3/*.txt test5 移动test3下以.txt结尾的文件移动到test5下
mv log1.txt -b log2.txt -b 参数功能,文件被覆盖前做备份
8、cp 源 目标 或者
cp -t 目标 源
拷贝文件或者拷贝文件到目标目录
在没有带-a参数时,两个文件的时间是不一样的。(注意:在带了-a参数时,两个文件的时间是一致的,否则时间不一致 )
拷贝整个目录到目标目录
9、touch 参数 文件名
建立文件或者更改文件时间(可以修改文件存取时间和文件修改时间)
touch -c test -c参数表示,如果文件不存在,那么不创建文件
touch -r log.log log2012.log 更新log2012.log的时间使其与log.log的时间一致
touch -t 201211142234.50 log.log 设定文件的时间戳, 其中时间戳的格式为[[CC]YY]MMDDhhmm[.SS]
10、cat
1)、一次显示整个文件 cat fileName 显示文件内容
2)、从键盘创建一个文件 cat > fileName 只能创建新文件,也就是如果原来有这个文件,使用这个命令后,原文件会被覆盖。
3)、将多个文件合并到一个文件 或者将一个文件合并到一个文件 cat file1 file2 > file
file1和file2合并到file显示,file如果原来有内容,会被覆盖。如果没有内容,会新建。
cat -n log2012.log log2013.log 把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里 如果是多个文件,输入到最后一个文件里
cat -b log2012.log log2013.log log.log 把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
使用 here doc来生成文件
bogon:logX sunhongbo$ cat >log.txt <<EOF
> world
> hello
> EOF
bogon:logX sunhongbo$ cat log.txt
world
hello
here doc可以进行字符串替换。 tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
tac log.txt
11、nl 选项 文件
给文件内容添加行号
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
[root@localhost test]# nl -b a -n rz -w 3 log2014.log
001 2014-01
002 2014-02
003 2014-03
004 2014-04
005 2014-05
命令行号默认为六位,要调整位数可以加上参数 -w 3 调整为3位。
12、more
功能类似于cat , 不过可以设置分页显示。
而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
ls -l | more -5
列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来
13、less 参数 文件
分页查看文件或者其它输出
less file 查看文件
ps -ef | less ps查看进程信息并通过less分页显示
history | less 查看命令历史使用记录并通过less分页显示
1.全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
14、head 参数 文件
head -n 5 file1 显示文件file1的前五行
head -n -6 file1 显示文件file1除了后六行的所有内容
head -c 20 file 显示文件file的前20个字节
head -c -20 file 显示文件file除了后20个字节之外的所有内容
15、tail 参数 文件
tail -n 5 file 显示文件后五行内容
tail -n +5 file 显示文件从第五行开始的余下所有内容
tail -f file 循环查看文件内容,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
ping 192.168.120.204 > test.log & //在后台ping远程主机。并输出文件到test.log;这种做法也使用于一个以上的档案监视。用Ctrl+c来终止。
16、which 可执行文件名
显示命令的路径, which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
which ls 查看命令ls所在的目录
17、whereis
查找二进制文件、说明文件和源文件
[root@localhost ~]# whereis svn
svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz
[root@localhost ~]# whereis -b svn
svn: /usr/bin/svn /usr/local/svn
[root@localhost ~]# whereis -m svn
svn: /usr/share/man/man1/svn.1.gz
[root@localhost ~]# whereis -s svn
svn:
[root@localhost ~]#
18、locate
loacte pwd 查找和pwd相关的所有文件
locat /etc/sh 搜索etc目录下所有以sh开头的文件
19、find
find -atime -2 查找指定时间内修改过的文件,查找2 * 24 = 48小时内修改过的文件
find . -name "*.log" 当前目录下查找以.log结尾的文件, .代表当前目录
find 目录 -perm 777 查找指定“目录”下权限为777的所有文件
find . type -f -name “*.log” 查找当前目录下以.log结尾的普通类型的文件
find . -type d | sort 查找当前目录下所有目录!并排序
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
find . -size +1000c -print 查找当前目录大于1k大小的文件
-print: find命令将匹配的文件输出到标准输出
find命令相关:
find ~ -name “*.log” ~代表在根目录下查找 .代表当前目录以及子目录 /目录名 在指定目录下查找
find . -name "[A-Z]*" -print 想要的当前目录及子目录中查找文件名以一个大写字母开头的文件
20、find命令之exec
将查找到的文件 执行exec后的命令;命令后以分号结束,考虑到各个系统分号会有特别的意义,分号前加一个,{}代表find的结果
find . -type f -exec ls -l {} ; 查找当前目录下的普通文件并以列表输出
find . -type f -mtime +14 -exec rm {} ; 查找14天前更改的文件并删除它们
find . -name "*.log" -mtime +5 -ok rm {} ; 在当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 按y键删除文件,按n键不删除。
find /etc -name "passwd*" -exec grep "root" {} ; find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个root用户。
find . -name "*.log" -exec mv {} .. ; 把查找到的文件移动到上一层目录
find . -name "*.log" -exec cp {} test3 ; 把查找到的文件拷贝到指定目录
21、find之xargs命令
exec命令对可接受输入的长度有限制,所以对于长的输入文件,可能会溢出;xargs就是应对这个出现的一个命令,他会将输入文件分批处理
并且有的系统对exec,每一条输入命令都会产生一个进程,这样多个输入文件会导致性能降低,而xargs只有一个进程。
find . -type f -print | xargs file 查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件
find / -name "core" -print | xargs echo "" >/tmp/core.log 查找内存信息转储文件(core dump) 并输出到coer.log文件中
find . -perm -7 -print | xargs chmod o-w 查找用户有读写执行权限的文件,并回收写权限
find . -type f -print | grep xargs “hostname” 用grep命令在所有的普通文件中搜索hostname这个词
find . -name "*.log" | xargs -i mv {} test4 移动文件
22、Linux文件:
普通文件(文本文件 二进制文件 数据接口文件)、目录文件、字符文件和块设备文件、符号链接文件和设备接口文件。
文件扩展名:.sh 脚本文件或者批处理文件
*Z, *.tar, *.tar.gz, *.zip, *.tgz 压缩文件,针对不同的压缩软件( gunzip, tar 等等),有不同的压缩文件
ls -lih 能查看文件详情,包括 文件索引inode(-i控制)等
例如:2095112 -rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log
第一列:inode
第二列:文件种类和权限;
第三列: 硬链接个数;
第四列: 属主;
第五列:所归属的组;
第六列:文件或目录的大小;
第七列和第八列:最后访问或修改时间;
第九列:文件名或目录名
23、SecureCTR;
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的。需要安装SecureCTR到主机上。
ssh是一个协议,是应用层和传输层之间的协议。SecureCRT是一款基于ssh协议的终端传输软件。
24、tar 参数 文件
tar只是打包,打包是把多个文件或目录打包成一个文件;而压缩是通过某种压缩算法把一个大文件压缩成一个小文件。
tar只有打包的功能,但是可以通过参数控制,增加打包功能。
tar cvf fileneme.tar filename 打包
tar xvf filename.tar 解包
压缩 gzip FileName
解压 gunzip filename.zip
gzip -d filename.zip
tar zcvf filename.tar.gz filename 打包压缩
tar zxvf filename.tar.gz 解包解压
压缩 bzip2 -z filename
解压 bzip -d filename.bz2
bunzip filename.bz2
tar jcvf filename.tar.bz2 filename 打包压缩
tar jxvf filename.tar.bz2 解包解压
uncompress FileName.Z tar Zxvf FileName.tar.Z
rar x FileName.rar 解压 rar a FileName.rar DirName 压缩
25、gzip
压缩命令
gzip * 压缩 gzip -r test1 递归压缩 压缩目录以及子目录中的文件
gzip -d file.gz 解压
26、chmod
修改文件或者目录的属主 组 和 其他用户权限
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
chmod a+x file file所有用户增加可执行权限
chmod g-w file file组用户减少写权限
chmod ug+r file file属主和组用户增加读权限
chmod u=x file file设置属主可执行权限
chmod -R u+x test4 对一个目录及其子目录所有文件添加权限
27、 chgrp
改变文件或者目录的组用户,使用权限是超级用户
chgrp -v bin file 把file的组用户改成bin -v代表打印详细信息
chgrp --reference==file1 file2 file2的组用户改成file的组用户
chgrp -R bin test1 改变test1目录及其子目录下的所有文件的组用户为bin
chgrp -R 100 test6 改变test1目录及其子目录下的所有文件的组用户为users(100为users群组的识别码,具体群组和群组识别码可以去/etc/group文件中查看)
28、chown
改变文件拥有者和群组
chown mail:mail file file的属主和群组都改成mail
chowm root: file file的属主和群组都改成root
chown :mail file file的群组改成mail
29、df
查看磁盘空间使用情况
df -h 使用更易读的方式显示磁盘空间使用情况
30、du
查看当前目录以及子目录大小
du -h [目录或者文件名] 以更易读的方式查看目录或者文件的大小
31、top
查看各个进程资源占用情况
32、free
查看系统空闲内存、已用物理内存以及swap交换区内存(虚拟内存),以及被内核使用的buffer。
free -s 10 周期性显示内存使用情况,10s刷新一次
33、vmstat
查看系统虚拟内存、进程、CPU活动
34、iostat
查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况
35、lsof
查看当前打开的文件的信息
36、ifconfig
获取网络接口等配置信息或者修改。
ifconfig eth0 up 打开一块网卡名字叫eth0
ifconfig eth0 down 关闭网卡eth0
ifconfig eth0 add 33ffe:3240:800:1005::2/64 为网卡配置IPV6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 删除IPV6地址
ifconfig eht0 hw ether 00:aa:bb:cc:dd:ee 修改网卡物理地址
ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255 配置网卡iP地址 子网掩码和广播地址
ifconfig eth0 arp 启用网卡eth0的arp协议 -arp代表关闭网卡的arp协议
ifconfig eth0 mtu 1500 设置最大传输单元为1500bytes
37、route
显示路由表
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 添加设置网关
route add -net 224.0.0.0 netmask 240.0.0.0 reject 增加一条屏蔽路由 目的地址为 224.x.x.x 将被拒绝
route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject 删除路由记录
route del default gw 192.168.120.240
route add default gw 192.168.120.240 删除和添加默认网关
38、ping
测试网络连通性
ping -c 5 www.58.com ping指定次数公网上的站点
ping -i 3 -s 1024 -t 255 www.58.com 3秒发送一次,发送字节数为1024,TTL = 255 代表存活时间,经过一个路由会被减1
39、traceroute
探测发送数据包到目的设备之间经过的设备发送数据到目的设备直到其返回需要的时间,默认一个设备发送三次数据。
traceroute -q 4 www.58.com
traceroute to ngx-out-1.op.58.com (115.159.231.139), 64 hops max, 52 byte packets
1 localhost (172.16.140.1) 5.698 ms 8.428 ms 5.090 ms 7.119 ms // 发送四次数据
traceroute -r www.baidu.com 绕过正常路由表 直接发送到网络相连的主机
40、date cal
查看当前时间和日期
41、grep
关键字查找
42、wc
统计当前文件的行数,单词数,字节数。
使用管道,ls - al | wc -l 查看当前目录下文件数
43、ps
查看当前进程
44、watch
检测命令的运行结果,周期性的执行,无需手动多次执行
45、at
设置定时任务