liunx常用命令

2017-01-12 17:38

常用指令

ls 显示文件或目录

  • -l 列出文件详细信息l(list)
  • -a 列出当前目录下所有文件及目录,包括隐藏的a(all)

  • 显示目录下所有的文件总数

ls -lrt  

mkdir 创建目录

  • -p 创建目录,若无父目录,则创建p(parent)

cd 切换目录

touch 创建空文件

echo 创建带有内容的文件

tcpdump 抓包分析工具

diff 比较文件误差

du

disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。

实例

  • 显示目录或者文件所占空间
du
du log2012.log  显示单个文件大小
du scf 显示目录大小
du log30.tar.gz log31.tar.gz 显示多个文件大小
du -s 只显示总和的大小
du -ah test 文件和目录都显示文件大小,后面加个test有利于阅读
du|sort -nr|more 按照控件大小来排序
du -h  --max-depth=1 输出当前目录下各个子目录所使用的空间

df

显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示

实例

df
df -i 以inode模式来显示磁盘使用情况
df -t ext3 显示指定类型磁盘
df -T 列出文件系统的类型
  • 以更易读的方式显示目前磁盘空间和使用情况
[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采用了类似指针的方式管理磁盘空间影射.这也是一个比较关键应用

cat 查看文件内容

cp 复制文件 》源文件 目标文件夹

  • -r 目录
  • -p 复制时保留文件属性

实例

  • 拷贝kerry目录下文件到tmp目录下
 cp /home/kerry/*  /tmp
  • 拷贝文件file1并更名为file2
 cp file1 file2
  • 将目录下的所有目录包括子目录陆续复制到另外一个目录
 cp -r /home/tomcat/ /tmp/bak  
  • 保存与源文件相关联的修改日期、时间和访问控制列表等
 cp -p install.log.syslog  install.log.syslog.bak1 

mv 移动或重命名

  • -i 覆盖文件会有覆盖提示
  • -u 则只在源文件比目标文件新时才执行更新
  • -v 打印移动的结果信息
  • -n 选项将不会允许我们覆盖任何已存在的文件
  • -b 该选项会在新文件覆盖旧文件时将旧文件做备份
  • -f 无条件覆盖已经存在的文件

实例

  • 把 file_1.txt移动到目标文件夹下
 mv file_1.txt /home/pungki/office  
  • 多文件移动
 mv file_2.txt file_3.txt file_4.txt /home/pungki/office 
  • 移动所有txt文件
 mv *.txt /home/pungki/office
  • 把file目录移动到hme/file/目录下
 mv file/ /home/file/ 
  • 把file_1重命名为file_2.注意目标位置和源位置必须相同才可以。然后文件名必须不同
 mv file_1.txt file_2.txt
  • 重名名目录
 mv directory_1/ directory_2/  
  • 多文件移动
 mv -v *.txt /home/pungki/office
  • 能移动这些文件是因为它们最近的修改时间戳比 /home/pungki/office 目录中的文件新
 mv -uv *.txt /home/pungki/office  
  • 多文件移动,如果目标文件已经存在,不覆盖
 mv -vn *.txt /home/pungki/office 
  • 新文件覆盖旧文件时将旧文件做备份
 mv -bv *.txt /home/pungki/office
  • 无条件覆盖已经存在的文件
 mv -f *.txt /home/pungki/office

rm 删除文件

  • -r 递归删除,可删除子目录及文件
  • -f 强制删除
  • -i 进行任何删除操作前必须先确认
  • -v 删除文件后出现提示信息
rm -v gsp_lgwr_4617.trc 
rm -iv gsp_lgwr_5005.trc 
rm -rf kerry/
rm -r kerry/ 
rm -v *.trc

- find 在文件系统中搜索某文件

命令参数

  • pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
  • -print: find命令将匹配的文件输出到标准输出。
  • -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
  • -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

** 命令选项**

  • -name 按照文件名查找文件。
  • -perm 按照文件权限来查找文件。
  • -prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
  • -user 按照文件属主来查找文件。
  • -group 按照文件所属的组来查找文件。
  • -mtime -n +n 按照文件的更改时间来查找文件,
    -n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

  • -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

  • -nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

  • -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。

  • -type 查找某一类型的文件,诸如:

    • b - 块设备文件。
    • d - 目录。
    • c - 字符设备文件。
    • p - 管道文件。
    • l - 符号链接文件。
    • f - 普通文件。
  • -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

  • -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    另外,下面三个的区别:

  • -amin n 查找系统中最后N分钟访问的文件

  • -atime n 查找系统中最后n*24小时访问的文件

  • -cmin n 查找系统中最后N分钟被改变文件状态的文件

  • -ctime n 查找系统中最后n*24小时被改变文件状态的文件

  • -mmin n 查找系统中最后N分钟被改变文件数据的文件

  • -mtime n 查找系统中最后n*24小时被改变文件数据的文件

实例

  • 超找48小时内修改过的文件
find -atime -2
  • 最后5分钟改变状态
  find -cmin 5 
  • 根据关键字查找.在当前目录查找 以.log结尾的文件。 ". "代表当前目录
find . -name "*.log"
  • 查找/opt/soft/test/目录下 权限为 777的文件
find . -type f -name "*.log"
  • 查找当前所有目录并排序
find . -type d | sort
  • 查找当前目录大于1K的文件
find . -size +1000c -print

wc 统计文本中行数、字数、字符数

参数

  • -c或--bytes或--chars 只显示Bytes数。
  • -l或--lines 只显示列数。
  • -w或--words 只显示字数。
  • --help 在线帮助。
  • --version 显示版本信息。

实例

-显示文件的行数为3、单词数92、字节数598

wc testfile
  • 统计多个文件的信息
wc testfile testfile_1 testfile_2

grep 在文本文件中查找某个字符串

rmdir 删除空目录

tree 树形结构显示目录,需要安装tree包

pwd 显示当前目录

ln 创建链接文件

more、less 分页显示文本文件内容

head 文件头

默认head命令打印其相应文件的开头10行

命令参数

  • -q 隐藏文件名
  • -v 显示文件名
  • -c<字节> 显示字节数
  • -n<行数> 显示的行数

实例

  • 显示文件的前5行
head -n 5 log2014.log
  • 显示文件前20个字节
head -c 20 log2014.log
  • 件的除了最后32个字节以外的内容
head -c -32 log2014.log
  • 输出文件除了最后6行的全部内容
head -n -6 log2014.log

tail

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
命令参数:

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示行数
  • --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例

  • 显示文件最后5行内容
tail -n 5 log2014.log
  • 循环查看文件内容
ping 192.168.120.204 > test.log &
tail -f test.log 
说明:
ping 192.168.120.204 > test.log & //在后台ping远程主机。并输出文件到test.log;这种做法也使用于一个以上的档案监视。用Ctrl+c来终止
  • 从第5行开始显示文件
tail -n +5 log2014.log
  • 要从第200 字节开始,每次显示一页notes 文件
tail  -c +200 notes | pg

ctrl+alt+F1 命令行全屏模式

打包压缩相关命令

tar

是对文件或者目录进行归档,归成一个文件,但并不压缩,但是它可以调用压缩bzip2,gzip来实现压缩
主选项

  • -c 创建新的档案文件
  • -r 把要归档的文件追加到档案文件的末尾
  • -t 列出档案文件中已经归档的文件列表
  • -u 更新文件,用新文件替代档案中原始文件。如果备份文件中不存在该文件,则把它追加到备份文件的末尾
  • -x 从档案文件中还原文件

辅选项

  • -f 归档到普通文件
  • -k 保存已存在的文件。例如在还原的过程中,遇到相同的文件,不会进行覆盖
  • -m 在还原文件时,把所有文件的修改时间设定为现在时间
  • -v 报告tar的详细处理过程
  • -w 每一步都要进行确认
  • -z 用gzip来压缩/解压缩文件
  • -j 通过bzip2压缩/解压缩文件
  • -Z 通过compress程序过滤档案。

实例

  • 将/etc/目录下所有东西归档到当前目录下,取名为wpc.tar 必须包含-c(打包),-f指定打包后文件
tar cvf wpc.tar /etc/
  • 将当前目录下wpc.tar解压到当前目录下
tar xvf wpc.tar
  • 打包并且使用bzip2压缩文件
 tar -cjvf test.tar.bz2 test
  • 解压缩bzip2压缩包。把c改成x就是解压
tar -xjvf test.tar.bz2
  • 将文件f2从打包中删除
tar --delete f2 -vff.tar

gzip

可以将一般的文件进行压缩,或者将归档的文件进行压缩

选项参数

  • -a或——ascii:使用ASCII文字模式;
  • -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:显示版本信息; -<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
  • --best:此参数的效果和指定“-9”参数相同;
  • --fast:此参数的效果和指定“-1”参数相同。

实例

gzip -v wpc.bmp
gzip -dv *  //每个文件压缩成.gz文件
gzip -d wpc.bmp.gz //解压
gzip -r log.tar //此时压缩文件的扩展为.tar.gz
gzip -rv test6 //递归压缩
gzip -dr test6 //递归解压
  • wpc.bmp.gz被解压缩,并被删除,出现wpc.bmp
gunzip -d wpc.bmp.gz
  • 先使用tar命令打包,再压缩
tar -cvf test.tartest
gzip test.tar

zip & unzip

zip

zip与windows的winzip压缩程序产生相同压缩文件.zip。

常用参数

  • -d:从压缩文件内删除指定的文件。
  • -g:将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
  • -r:递 归处理,将指定目录下的所有文件和子目录一并处理。
  • -<压缩效率> 压 缩效率是一个介于1-9的 数值

实例

  • 将当前目录下,wpc子目录下面的所有内容压缩成wpc.zip
zip wpc.zip wpc/
  • 删除已有zip文件中文件test
zip -d test.ziptest/test.txt
  • 向已有zip文件增加压缩文件
zip -m test.zip./test/test.txt
  • 排除制定文件不压缩
zip -r test.zip test-x ./test/test.txt

unzip

  • 语法格式:unzip [选项] 压缩文件名.zip

常用选项

  • -x 文件列表 解压缩文件,但不包括“文件列表”中指定的文件
  • -v 查看压缩文件目录,但不解压
  • -t 测试文件有无损坏,但不解压
  • -d 目录 把压缩文件解压到指定目录下
  • -z 只显示压缩文件的注解
  • -n 不覆盖已经存在的文件
  • -o 覆盖已存在的文件且不要求用户确认
  • -j 不重建文档的目录结构,把所有文件解压到同一目录下
  • -P<密码> 使用zip的密码选项。

实例

  • 解压缩文件test.zip
 unzip test.zip
  • 查看压缩文件目录及文件信息,并不解压
unzip -v test.zip
  • .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
解压: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
  • .tgz
解压:tar zxvf FileName.tgz

压缩:未知
  • .tar.tgz
解压:tar zxvf FileName.tar.tgz

压缩:tar zcvf FileName.tar.tgz FileName
  • .zip
解压:unzip FileName.zip

压缩:zip FileName.zip DirName
  • .rar
解压:rar a FileName.rar

压缩:rar e FileName.rar

关机/重启机器

  • shutdown
  • -r 关机重启
  • -h 关机不重启
  • now 立刻关机
  • halt 关机
  • reboot 重启