1.grep 搜索一个字符串
 
 -n   显示行号
 -R   递归子目录 
 
 "^string"    以string开头的行 
 "string$"    以string结尾的行 
 "^string$"   只搜索string的行不包含其他字符 
 
 *            当前目录下所有的文件
 
 常用用法: 
 grep  "string"  *   -n -R
 grep  "string"  *   -nR
 
 2.find  寻找一个文件 
 
 find  -name  文件名字 (从当前目录开始,在所有的子目录寻找指定的文件)
 
 例如:
 find  -name   file.c
 find  -name   *file*
 
 3.cut  对子字符串进行分割
 
 -d  指定分割符
 -f  指定需要的区域 
 
 cut  -d ":" -f  1 
 cut  -d " " -f  1,2,4
 
 
 二 cat , head ,tail , more ,less 
 
 功能:查看一个文件的内容 
 
 1.cat 
 
 cat  file  => 将文件的内容输出到终端上显示
 
 2.head 
 
 head  file => 从文件头开始显示10行
 head -n file => 从文件头开始显示n行
 
 2.tail 
 
 tail file => 显示文件的倒数10行 
 tail -n file => 显示文件的倒数n行 
 
 问题:如何显示文件中指定行?
 回答:head -line file | tail -1 
 
 3.more,less
 局部显示,通过 回车键 向下显示 
 
 问题:从/etc/passwd文件中提取用户信息,向终端上输出用户的信息,name:uid:gid?
      head -34 /etc/passwd | tail -1 |cut -d ":" -f 1,3,4
 
 问题:如何确定用户所在的行号?
     cat /etc/passwd | cut -d ":" -f 1 (提取用户名)| grep "^linux$" -n | cut -d ":" -f 1
 
 三 对文件或目录打包压缩
 
 gzip 和 bzip2 和 xz 对文件压缩  
 gzip  file  => file.gz
 bzip2 file  => file.bz2 
 xz    file  => file.xz 
 
 gunzip  bunzip2  unxz  对文件解压 
 
 注意:只针对文件操作 
 
 --------------------------------------------------
 对目录操作 
 
 命令:tar
 
 c 创建
 x 释放
 z gz格式
 j bz2格式
 J xz格式
 v 显示过程
 f 指定文件名 
 
 1.对目录打包不压缩 
   tar -cvf dir.tar  dir 
 
 2.对目录打包并且压缩 
  tar -czvf dir.tar.gz   dir 
  tar -cjvf dir.tar.bz2  dir 
  tar -cJvf dir.tar.xz   dir 
 
 3.解压操作 
  tar -xzvf dir.tar.gz   
  tar -xjvf dir.tar.bz2  
  tar -xJvf dir.tar.xz   
 
 注意:
 <1>f必须在组合的最后面 
 <2>tar -xvf dir.tar.x   自动根据压缩包的格式选择对应的解压方式进行解压 
 
 
 四 文件权限,文件所有者,所在组修改 
 
 1.chmod  修改指定文件的权限
 
 chmod  u/g/o/a  +/-  r/w/x  file 
 chmod  666  file
 
 2.chown  修改文件所有者或所在组
 chown  用户名  file 
 chown  用户名:组名  file 
 
 3.chgrp  修改文件所在的组 
 
 chgrp  组名  file 
 
 问题:如何修改所有文件的权限或所有者或所在组,包括子目录?
 回答:chown  root * -R (将所有文件的所有者名都修改成root,包括子目录)
 五 文件的链接
 
 (1)软链接 
 它是一种文件类型,类似windows快捷方式,用来记录目标文件的路径
 
 ln  -s  目标文件(普通文件或目录文件)   软连接文件 
 
 (2)硬链接
 本质:给文件取一个别名,并没有创建一个新文件,不占用磁盘空间 
 
 ln   目标文件    硬连接文件
 
 注意:
 (1)硬链接不能对目录操作
 (2)硬链接不能跨文件系统 
 (3)在Linux操作系统中只有当一个文件的打开次数为0并且硬链接数为0,此时表示文件不存在被删除
 
 问题:如何做到文件在关闭的时候,自动删除?
 回答:打开文件一次,将这个文件硬件变成0
 
 
 六 用户管理 
 
 (1)adduser  用户名 
 
 /etc/passwd  存放系统用户的信息  
 /etc/shadow  用户密码
 /etc/group   存放系统组的信息
 /etc/skel    创建新用户的时候,拷贝这个目录下的配置文件到用户主目录
 
 (2)临时切换用户
 
 su 用户名 
 
 (3)退出临时的用户 
 exit 
 
 (4)将用户添加到指定的组
 
 usermod -a -G 组名 用户名 
 
 (5)删除一个用户 
 deluser  用户名 --remove-home(删除用户的时候,删除这个用户的用户主目录)
 
 (6)修改用户密码 
 sudo passwd  用户名 
 
 七 硬盘管理 
 
 (1)查看系统中硬盘信息  
 sudo fdisk  -l 
 
 (2)查看分区的使用情况
 sudo df -h 
 
 (3)手动挂载自己的设备
 挂载:将一个块设备的信息映射到一个指定的目录下
 sudo mount /dev/设备文件名   挂载目录 
 
 (4)取消挂载的目录
 sudo umount  挂载目录 
 
 八 网络管理 
 
 1.网络基础 
 
 (1)IP   : 在网络中主机的唯一标示
 (2)组成 : 网络号(主机所在的网络) + 主机号(网络中主机编号)
 (3)表示 : 点分十进制
 (4)IPv4(32bit,4byte),IPv6(128bit,16byte)
 (5)分类 
      
          1000 0000
          1011 1111
 
          1100 0000 
          1101 1111
          网络号 + 主机号     最高位规定      第一个字节范围
    A      1     +  3            0            [0-127]
    B      2     +  2            10           [128-191]
    ----------------------------------------------------------
    C      3     +  1            110          [192,223]
             
    容纳的主机数:1byte [0-255] 
 
    192.168.0.0(表示网络)    192.168.0.255(广播地址)
    ---------------------------------------------------------
    D         组播               1110         [224,239]
    E       未使用
 
    问题:局域网内,主机间通信,遵从什么呢?
    回答:网络号一样,主机号不一样 
 
 (6)子网掩码 
    获取网络号  => submask  & 目标IP获取网络号,来判定目标主机和当前主机是否在同一个网络
 
 (7)网关
    可以和外网通信的主机ip地址都可以作为网关,习惯用路由器的IP地址作为网关 
    如果当前的主机判别目标主机不在同一个网络中,向目标主机发送的数据将发送到网关,由网关将数据包转发外网
 
 (8)DNS
    域名解析,将域名转换成IP地址 
 
    www.baidu.com  -> ip 
     
    免费使用的域名服务器:
    8.8.8.8
    114.114.114.114 
 
 2.查看IP地址 
 ipconfig(windows)/ifconfig(linux)
 
 临时修改ip地址 
 sudo ifconfig eth0  ip地址 
 
 3.ping 测试网络是否连接 
 
 ping 目标主机IP地址 或 域名 
 
 ping 192.168.0.1 
 ping www.baidu.com 
 ping 192.168.0.42
 
 九  环境变量 
 
 1.查看系统中的环境变量 
   env 
 
 2.PATH环境变量  
 shell在执行一个命令的时候,会从PATH环境变量保存的路径中去搜索,如果搜索到则执行,否则提示命令没有找到 
 
 问题:如何让自己的应用程序可以在任何路径下执行?
 回答:
 (1)将它拷贝到PATH环境变量保存的路径下
 或
 (2)将自己的路径添加到环境变量中
 
 
 3.永久添加环境变量 
 
 shell程序在运行的时候,会自动执行如下文件:
 /etc/bash.bashrc            针对所有用户有效 
 用户主目录下的.bashrc文件   只针对当前用户有效
 
 我们只需要将环境变量的修改,添加到这些配置文件中的任何一个中就可以了
 
  
原文:http://blog.51cto.com/13375232/2054033