第一部分:linux系统命令               
图形界面启动:
(1)启动Linux时在终端输入:Startx    (临时)
(2)Vim /etc/inittab  (id:3:initdefault      id:5:initdefault)


cat /proc/version  //查看kernel版本内核
uname -r/-a        //unanme是unix name的简写。显示机器名,操作系统和内核的详细信息
cat /etc/issue    //查看ubuntu版本内核
lsb_release -a
cat /etc/lsb_release
getconf LONG_BIT  //查看系统是64位还是32位


基本网络配置:
网卡和计算机主机的连接方式可分为PCI网卡、ISA网卡、无线网卡(USB网卡)
lspci        //查看计算机上所有能被内核检测到的PCI设备信息
lsusb        //识别USB设备信息
lsblk        //列出块设备,除了RAM外,以标准的树状输出格式,整齐的显示块设备.(注:lsblk是最有用的和最简单的方式来了解新插入的USB设备的名字,特别是当你的终端上处理磁盘/块设备时)
lsblk -l     //以列表格式显示块设备


网络配置的四种方法:
1.图形化界面(略)
2.使用字符(setup)配置或直接使用system-config-network
setup   //全设置工具,可进行网络等服务配置
system-config-network(图形界面)
system-config-network-gui
system-config-network-tui
3.使用命令
ifconfig ethx xxx(ip) netmask xxx(掩码)
4.通过修改配置文件
/etc/sysconfig/network-scripts/ifcfg-xx
 (
DEVICE=网卡名
IPADDR=ip地址
NETMASK=掩码
[PREFIX=掩码位数]
GATEWAY=局部网关, /etc/sysconfig/network全局网关对所有网卡
HWADDR=mac地址
TYPE=Ethernet(以太网)网络的类型,
BOOTPROTO=[none|static|bootp|dhcp]    //引导时"不使用协议|静态分配|bootp|dhcp"
DNS1=dns服务器ip
[NS2=]
NETWORK=yes/no网络是否被配置
ONBOOT=yes/no启动时是否激活网卡配置,
HOSTNAME=机器的主机名
GATEWAYNAME=网关设备名
FORWARD_IPV4=yes/no是否开启ip转发功能
)


拓展:[设置虚拟网卡:
1.临时的: ifconfig ethx:x  xxx(ip)  ,重启网络服务(service network restart)网卡配置消失

2.永久的:
(1)建立配置文件 cp /etc/sysconfig/network-scripts/ifcfg-ethx   /etc/sysconfig/network-scripts/ifcfg-ethx:x
(2)修改配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0  
                            把onboot=no改为onboot=yes 并重启网络服务
      修改UUID网络设备的识别码: (若虚拟机网卡是复制而来的)
                            删除MAC地址行
(3)删除网卡和MAC地址绑定文件:
    rm -rf  /etc/udev/rules.d/70-persistent-net.rules
    重启系统

3.激活网卡:
    ifup ethx    //激活网卡
    ifdown ethx    //禁用网卡


4.ifconfig [ethx]  //查看网卡配置或网络状态]



配置基本ip路由和网关:
开启系统ip转发功能的Linux主机实际就具有了路由功能:
(1)将配置文件/etc/sysctl.conf中的一行修改为net.ipv4.ip_froward = 1就可以启用ip转发功能
(2)使用sysctl_p或service network restart 命令重新起订网络进程,使修改立即生效
或:
    通过修改虚拟文件系统直接进行当前状态修改
    echo "1" > /proc/sys/net/ipv4/ip_forward


/etc/resolv.conf    //文件存储的是DNS信息,该文件会随/etc/sysconfig/network-scripts/ifcfg-eth0文件的改变而改变。
/etc/hosts            //编辑静态域名解析(主机ip对应的域名)
/etc/host.conf      //设置域名解析顺序


hostname [xxx(主机名)]    //检验[或动态配置]机器的主机名

netstat  -an        //显示系统核心路由表、查看系统开启的端口
[  参数:

–a所有网络链接(linux最多支持0-255个,windows2003以前的最多2个,windows2008最多4个);
-t  TCP协议端口;

-u   UDP协议端口;

-l在监听状态网络服务端口;

-n使用IP地址和端口号显示(而不使用域名与服务名)   ]

netstat –an | grep ESTABLISHED (正在正确链接状态的) | wc (统计) -l (行数)   (wc --help 了解更多)            //统计当前正在远程链接的个数

netstat  –tulnp | grep   :xx (端口)         //查询服务端口状态[ sendmail:acce启动   /  关闭 ]

netstat  –rn  //查看网关(也可以查看路由列表) =route –n(以ip和端口形式显示)

ping xxx -c  x(指定ping包次数)   // 检测设置好的网关域名、静态域名解析

route –n  //查看路由列表(可以看到网关)
  route add/del default gw xxx(网关ip)
 //临时设定/删除网关(注意:同网络段;在真实网络上的服务器只有外网网卡才能设网关,内网网卡不能,否则导致外网不通)

traceroute  -n(使用ip而不是域名) xxx(ip或域名)  //路由跟踪

tcpdump -i eth0 –nnX port 21(指定监听端口)     //抓包命令
 [ -i指定网卡接口 ;  -nn将数据包中的域名与服务转为ip和端口 ;  -X以十六进制和ASCII码显示数据包内容;  ]

nslookup  //进行域名与ip地址解析
  >server    //查看本机dns服务器



启动服务进程:
(1)临时启动某服务
 service xxx        start/stop/restart /reload /etc/rc.d/init.d/xxx  
 /etc/init.d/xxx       start/stop/restart/reload

(2)自启动某服务
ntsysv  + * 于某服务前                    
chkconfig  xxx  on/off  
(3)检查某服务状态
service xxx status
(4)显示所有已启动的服务
chkconfig --list
 

进程管理
(1)用ps获得进程状态
    ps    //查看目前系统中正在执行的进程及执行状态
    ps -l    //显示详细进程信息
    ps -u    //以用户的格式显示进程信息
    ps -x    //显示后台进程运行的参数
(2)终止进程的命令
    kill -l        //查看所有可供传送的信号
    kill 进程号    //终止某个进程
    kill -9/-15 进程号     //有些进程会捕捉某些信号,用-9或-15可直接结束进程
(3)控制进程优先级
    进程被赋予使用cpu优先级越高,cpu分配给它的使用时间越高。优先级等级分为-20到19,-20最高级,19最低级。进程优先级会影响pc运行效率。更改进程优先级可使用nice或renice命令。
    例:
        nice -x(优先级) 进程号
        nice -x -g xxx(user) //将用户为user的进程调整为x

用户登录:
login     //登录远程链接
logout    //终止远程链接(注销)

telnet  xxx(域名/ip) //远程管理(明文) 

telnet  xxx(域名/ip)  xxx(端口) //端口探测    

ctrl+]  退回telnet交互命令,然后quit退回用户界面


ssh  xxx(用户名)@xxx(ip)  //远程管理指
定linux服务器,exit 退出链接。
    scp [-r] xxx(用户名)@xxx(ip):文件路径   本地路径   //下载文件
    scp [-r]  本地文件 xxx(用户名)@xxx(ip):上传路径    //上传文件


查看系统登录的用户:
w        //查看登录的用户的行为
w xxx(user)    //查看单个用户的数据
who        //查看当前登录的用户
who -u         //查看当前在线用户更为详细的数据
last        //查看曾经登录过的用户
last | more    //省略过长的用户名单



md5sum    //计算和验证md5信息签名
md5 cheecksum (通常叫做哈希)使用匹配或者验证文件的文件的完整性,因为文件可能因为传输错误,磁盘错误或者无恶意的等原因而造成。


cal    //用来显示当前月份或者未来或者过去任何年份中的月份

date    //使用标准输出打印当前的日期和时间



wget http://soft.vpser.net/lnmp1.1-full.tar.gz    //下载命令
例:
wget  --random-wait -r -p -e robots=off -U Mozilla     www.example.com
//用wget的递归方式下载整个网站
参数解释:
--random-wait 等待0.5到1.5秒的时间来进行下一次的请求
-r 开启递归检索
-e robots=off 忽略robots.txt
-U Mozilla 设置User-Agent头为Mozilla
--limit-rate=20k 限制下载速度为20k
-o logfile.txt 记录下载日志
-l0 删除深度(默认为5)
--wait=1h 每下载一个文件后等待1小时



常见的3种软件安装方法:
(1)RPM可执行文件的软件安装
    rpm -ivh xxx
[-i //表示安装指定的rpm软件包
-v //在安装期间以‘#’显示进度
-h //显示安装的详细信息]
    rpm -ivh -replacepkgs xxx    //重新安装
    rpm -ivh -force xxx        //强制安装,忽略冲突
    rpm -ivh -nodeps xxx        //忽略软件包依赖性
    rpm -Uvh xxx            //软件包升级
    rpm -e xxx(不用完整的软件包名)    //rpm软件删除
    rpm -q xxx             //查询某软件是否安装
    rpm -qa | grep xxx        //查询系统已安装某软件的包
    rpm -V xxx            //查询某软件包内文件是否毁坏或丢失

(2)基于可执行文件(例:bin文件或pl文件)的软件安装
这种软件安装类似于windows的软件安装,即在图形界面直接双击其图标或在终端窗口输入可执行文件命令即可完成软件的安装

(3)基于源代码的软件安装(代码编译安装软件)
    tar -jxvf/-zxvf xxx.tar.bz2/gz //软件代码一般使用以tar.bz2/gz格式压缩,使用tar命令解压缩并解包
    cd xxx                   //切换到解压缩后的目录下
    ./configure              //配置系统,执行组态配置文件
    make                  //产生目标文件,连接,生成可执行文件
    make install              //将可执行文件安装到默认目录下

例如:升级vim
1.通过软件包管理器
yum install vim
或:
sudo apt-get install vim (apt-get是ubuntu linux的软件包管理器)
或:
rpm -Uvh vim-xxx

2.通过源程序编译生成
步骤:
(1)下载vim源文件(在mirror站抓取最新vim版本,别忘了runtime文件也要抓,否则无法找到需要的文件来执行)
(2)配置: ./configure \
     --prefix=/usr/local/vim7  \     //安装目录
    --with-x --enable-gui=gtk2 \    //编译gvim
    --with-features=big
 (3)编译、安装:
      make                //记得用root运行,安装好后可执行文件在/usr/local/vim7/bin中
      make install
 (4)安装到系统中来:(安装完vim7后还是会运行系统原来自带的vim版本,因为vim7的安装路径/usr/local/vim7/bin不在系统的PATH环境变量内,所以要将vim7/bin可执行文件创建一个符号链接到系统的PATH内)
    mv /usr/bin/vim  /usr/bin/vim6        //先将原来的vi版本改名
    ln -s /usr/local/vim7/bin/vim  /usr/bin/vim     //再将vim7链接过来
   


磁盘挂载:
 # ll /dev | grep cdrom    
//找到光盘的完整路径盘符(cdrom  hdxy   sdxy)
 # mount  /dev/xxx(完整路径盘符)    /mnt/
//将光盘挂载到/mnt目录下
 # cd /mnt |  ll   
               //查看并可使用挂载的内容 (例:通过光盘安装rpm :
                cd  /mnt/Server  /mnt/CentOS
                ls  xxx*
                rpm  –ivh  xxx*
                rpm  -qa | grep xxx  )
磁盘卸载:
#umount  /mnt /temp  (# mkdir –p /mnt/temp)

            
磁盘分区:
方法1:使用fdisk分区工具
1.1)fdisk命令通过问答式界面来管理和维护磁盘分区,它允许将4个不同的操作系统放置在不同的分区,但只有一个分区是活动的;也可以把一个物理分区划分成几个逻辑分区。该命令可显示磁盘分区信息、创建或删除磁盘分区、改变活动分区。

1.2)fdisk命令格式及参数:
    fdisk -b 分区大小 -uv 外围设备代号
    fdisk -l -b 分区大小 -uv 外围设备代号。。。
    fdisk -s 分区编号
参数:    
    -b 分区大小  //指定每个分区大小
    -l        //列出分区表状况
    -s 分区编号 //以块为单位将指定分区大小输出到标准输出上
    -u        //搭配"-l"参数列表,以扇区数目取代柱面数目,来表示每个分区的起始地址
    -v       //显示版本信息
 
1.3)fdisk常用的几个子命令:
n:创建一个新分区
p:显示当前分区情况
d:删除一个分区
q:不存盘退出
w:存盘退出
c:切换DOS启动标识

方法2:使用parted分区工具
parted命令除重新规划分区的功能外,其他功能与fdisk相似。支持交互式和命令模式。
2.1)parted命令格式及参数:
    parted options device command parameters
参数:
options:
    -h:显示帮助信息
    -i:交互式模式(默认模式)。parted也支持命令行模式
    -l:显示所有设备上的分区信息
    -s:执行脚本
    -v:显示版本信息

commands:(在命令模式支持的指令)
    help [command]          
//获取帮助(显示一条指令的帮助信息)

    check number(分区号)  
//检查分区,该分区是未加载分区

    cp [from-device] from-number to-number   
//将form-number分区的文件系统完整的复制到to-number分区上(目标分区的数据将被全部删除,目标分区必须比源分区大)。如果要在不同设备间复制文件系统,可通过from-device来指定来源硬盘的名称。


    mklabel label-type   
//在一个磁盘上创建分区表,将会导致原来的分区全部丢失(如果还没有新键分区,可以通过rescue指令恢复)。label-type可以是aix/amiga/bsd/dvh/gpt/mac/msdos/sun/loop。

    mkfs number fs-type  
//在number分区上建立文件系统,fs-type只能是ext2/fat16/fat32/linux-swap/reiserfs格式

    mkpart part-type [fs-type] start end
//建立一个新分区。若要建立非扩展分区,最好用fs-type来指定文件系统。start和end是新分区开始和结束的具体位置。part-type可以是primary/extended/logical三者之一。start和end表示磁盘的位置,可以是4GB(如果没有指定单位,则默认单位是MB),也可以是10%,或是负数,如-ls表示最后一个sector(扇区)

    mkpartfs part-type fs-type start end
//建立一个新分区,并在其内建立文件系统,相当于mkpart和mkfs的合体

    move number start end
//用于在硬盘中移动选定的分区。其中,start指定一个新的分区的起始位置,end指定分区的结束位置(新分区必须大于或等于原来分区)

    name number Name
//为编号所指定的分区命名

    print [number]    
//显示当前硬盘的分区信息或某个分区的信息

    quit
//退出parted,所有分区操作开始生效

    rescue start end
//如果不小心删除了一个分区,可以尝试用rescue指令恢复。只要通过start 和end指定分区所在的大概位置,parted就会自动搜索。如果找到分区,则会询问是否重建该分区。

    resize number start end
//调整指定分区的大小。新分区的开始位置和结束位置由start和end决定,需要注意的是,即使缩小分区,也因保证新分区能够容纳原分区里面的内容

    rm number
//将指定编号的分区删除

    select device
//选择parted将要处理的磁盘设备,这个设备可以是一个linux硬盘设备、软盘、软RAID磁盘阵、LVM逻辑卷

    set number flag start
//更改指定编号的分区的标记。其具体标记类型是由分区表决定的。标记有两种状态:on(生效) off(失效)

    unit UNIT
//为parted选择一个表示磁盘大小的单位,默认是以MB为单位的,也可以设置为GB。



磁盘配额
磁盘配额作用是限制普通用户使用的磁盘空间和创建文件个数。
注:1.只有ext2/etx3文件系统目前被支持;
       2.需要用户程序quota软件包
(1)mount –o usrquota,grpquota /dev/had1 /mnt/one
//使用usrquota,grpquota选项挂载一个分区,激活内核的支持。surquota是为用户创建配额,grpquota是为用户组创建配额。

(2)quotacheck   -cvug  /dev/hda1 =quotacheck   -cvuga
c创建v查看过程u用户g组

(3)quotaon –an 或 quotaon /dev/hda1
//激活开启所有的分区或某分区

(4)edquota    –u  用户
//编辑某用户的配额



文件压缩与归档:
压缩与解压缩:
1.compress:古老的unix文件压缩指令,压缩后文件会添加一个.Z拓展名,若要将多个文件压缩成一个压缩包,必须将文件tar起来再压缩。压缩文件可用uncompress指令解压。
格式:
Compress [-dfvcV] [-b maxbits] [file…]
参数解析:
-d:解压缩
-f:强制写入。如果文件存在,则会被覆盖
-v:显示程序执行信息到屏幕上
-c:将压缩的数据显示到屏幕上
-V:显示帮助信息

2. gzip /zcat将1个文件压缩或解压缩成另1个文件,若将多个文件压缩成一个压缩包,必须将文件tar起来再压缩。
格式:
Gzip [-acdfhlLnNqrtvV] [-#] [--best/fast] [File or folder…]
参数解析:
-a:使用ASCll文字模式
-c:把压缩后的文件输出到标准输出设备,但不去更改原始文件
-d:解开压缩文件
-f:强行压缩文件,不论文件名或硬链接是否存在,以及该文件是否为符号链接
-h:在线帮助
-l:列出压缩文件的相关信息
-L:显示版本与版权信息
-n:压缩文件时,不保存原来文件名称及时间戳
-N:压缩文件时,保存原来文件名称及时间戳
-q:不显示警告信息
-r:递归处理,将指定目录下的所有文件及子目录一并处理
-t:测试压缩文件是否正确无误
-v:显示命令执行过程
-V:显示版本信息
-#:压缩效率,是一个介于1-9的数值,数值越大,压缩效率越高,其预设值为6
--best:此参事的效果和指定‘9’参数相同
--fast: 此参事的效果和指定‘1’参数相同


例:
gzip  xxx(被压缩文件)
gzip  -S  xx(自定义附加在压缩文件后的拓展名)  xxx(被压缩文件)   //使用-S自行指定扩展名 ,但解压时也要指定该拓展名,即:gzip –S xx(自拓展名) –d    xxx(被压缩文件)
  gzip  -d  xxx(被压缩文件)  =  gunzip  xxx(被压缩文件)
注:gunzip 也可对zip,compress,pack压缩文件解压

3.zip 与unzip   //能将多个文件压缩或解压缩成1个或多个文件
 zip xxx (被压缩文件)

4.bzip2:压缩率比gzip更高,压缩文件以.bz2为拓展名,与之对应的解压缩软件有bzcat和bunzip等
格式:
bzip 2 [-cdfhkLstvVz] [--repetitive-best] [--repetitive-fast] [Files]
参数:
-c:将压缩与解压缩结果送到标准输出(一般是屏幕上)
-d:解压缩
-f: bzip2在压缩或解压缩时,即使输出文件与现有文件同名,预设也不会覆盖现有文件。若要覆盖则可以使用此参数
-h:显示帮助
-k:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,则可以使用此参数
-s:降低程序执行时内存的使用量
-t:测试.bz2压缩文件的完整性
-v:压缩或解压缩时显示详细信息
-z:强制执行压缩
-V:显示版本信息
--repetitive-best:若文件中有重复出现的资料时,可以用此参数提高压缩效果
--repetitive-fast: 若文件中有重复出现的资料时,可以用此参数加快执行速度
-#:压缩时的区块大小。数值为1-9,数值越大,效果越好
bzcat xxx  //显示bz2压缩包中的内容到屏幕上
bunzip2 [-fkvsVL] [file]
参数:
-f:解压缩时,即使输出文件与现有文件同名,预设也不会覆盖现有文件。若要覆盖,则可以使用此参数
-k:解压缩后,会删除原始文件。若要保留原始文件,则可以使用此参数
-v:显示详细的信息
-s:降低程序执行时内存的使用量
-V:显示版本信息
-L:同-V参数
Bzip2recover xxx  //用于从bzip2文件中恢复文件,当bzip2压缩包损坏时,该指令可以恢复部分甚至全部文件

5.打包与解包:
Tar:可以将文件或目录打包到一起,与gzip 和bzip2结合。另外,它还可以通过参数将这些包压缩成gz或bz2格式
格式:
tar  [-cxtzjvfpPN]  [--exclude File]  File
tar  --help
参数:
 -c:打包(create的意思)
–x:解包
–t:查看tar文件里的内容
–z :用gzip压缩
-j:用bzip2压缩
-v:压缩过程中显示文件列表
-f:文件名。该参数必须是最后一个参数,且后面接文件名
-p:保留源文件属性
-P:使用绝对路径
-N:压缩指定日期(yyyy/mm/dd)以后的文件
--exclude FILE:不压缩FILE                                                

   
echo命令:
常见选项
 –n 换行
 –e  让转意符生效 (\t  \n等)
 

sort、uniq命令
sort作用是排序文本到标准输出,注:未修改原文件
    格式:sort [options] file(s)
常见选项:
    -n     按数字执行排序(默认为升序)
    -n -r  降序排序
    -u     (唯一性)移除输出中重复的行
    -f     忽略字符串中的大小写
    -t c   使用c作为字段分隔符        
    -k x   对第x字段排序
例:cat /etc/paswd | sort -t : -k 3 -n     


uniq作用是从输入中移除重复相邻行
常见选项:
    -c    统计重复次数

uniq最好与sort一起使用:
    sort file | uniq -c



tee命令
tee:多重重定向
命令格式:
cmd1 | tee file | cmd 2
//先保存cmd1标准输出到file中;然后将cmd1标准输出管道传递给cmd2
使用范围:
1.对复杂的管道拍错
2.同时查看并记录输出   


字段处理:
1.使用cut取出字段
(1)cut命令可以从一个文本文件或文本流中提取文件列(或:从文件的每行中写出选定的字节、子符或字段)
(2)语法格式:
    cut  -标志+list  file...
//常用标志:
    -d 'xx'   //-d标志定义'xx'为各字段的分割符
    -f list   //-f标志指定具体的字段,list参数可用逗号、空格或连字符连接。list参数示例:1,4,7   1-3,8  -5(即1-5)    3-(即3到最后)
    -c list   //指定字符位置,例:-c 1-72为每行的头72个字符  

    -b list  //指定字节位置,忽略多字节字符边界
    -n       //取消分割多字节字符,仅与-b使用
    -s        //取消不含定界符的行,仅与-f使用
(3)例:
cut -d ':' -f 1,7 /etc/passwd | grep bash
cut -d ':' -f 1,6,7 /etc/passwd | grep bash | cut -d ':' -f 1,2

2.使用join连接字段
(1)join命令可以连接不同的文件,使得具有相同key值的记录信息连到一起。它会根据指定栏位,找到两个文件中指定栏位内容相同的行,将它们合并,并根据要求的格式输出内容。该命令对于比较两个文件内容很有帮助。
(2)语法格式:
 join [-1 field] [-2 field] [ -a filenumber | -v filenumber] [ -e string

] [-o list] [-t character]   file1  file2

//常用标志:
    -1或-2 field  //由file1/file2的field变量作为指定字段连接两个文件。field必为正十进制整数。
    -a filenumber //filenumber值必为1或2,即表示file1或file2。以filen为标准,连接非标准file的匹配行,不管是否匹配,标准filen的全部行都必须输出,非标准file未匹配行不输出。
    -e string   //用string变量指定的字符串,代替空输出字段
    -o list        //构造一个输出行来包含由list变量指定的字段
    -t character //用由character参数指定的字符作为输入和输出的字段分隔符。
    -v filenumber //用由filenumber变量指定的文件的每一行产生一个输出行,此变量的连接字段和其他输入文件的任何一行都不匹配
(3)例:
join 1txt 2txt -a1
join file1 file2 -a2





Linux系统命令高级拓展:

1.ctrl+a     //将光标跳到行首
  ctrl+e    //将光标跳到行尾
2.ctrl+w   //删除光标所在的词
  ctrl+u  //删除光标前的所有,不含光标所在处
  ctrl+k  //删除光标后的所有,含光标所在处
 
3.事件引用符:!!=!-1=ctrl+p //引用前一条命令
     !-2,!-3,!-4... //默认在~/.bash_history文件记录用户执行的近500条命令,history命令可以显示这些命令

4.^x^y^ = !!:s/x/y = fc -s x=y
//又是另外一个事件引用符,可把上一条命令当中的x替换成y

5.cp filename{,.bak}
//快速备份一个文件,bash会对filename{,.bak}展开成filename filename.bak再传给cp,于是有了备份的命令。{}在bash里是排列意义,例:echo {a,b,c}{a,b,c}{a,b,c}

6.清空或创建一个文件
 >filename 或 touch file
//在shell里>是标准输出重定向,若没有前部命令则输出为空,于是就覆盖或创建成空文件。touch本来是用作修改文件的时间戳,但如果文件不存在,就自动创建文件了。
 

7.在某个时间执行某命令
date             //查看当前系统日期时间
echo cmd | at 00:00(或midnight,tomorrow,next week)
//at组件用于定时一次性任务,at可替换为cron,cron是定时周期性任务

8.dd if=原文件 of=目标文件
//dd是常用的数据拷贝程序
dd if=/dev/dsp | ssh username@host dd of=/dev/dsp
//远程传送麦克风语音,实现一个喊话器的功能。/dev/dsp是linux下声卡的文件映射,从中读数据就是录音;从里写数据就是播放。
 
9.ALT+. 或 ESC+.
 按<ALT+. 或 ESC+.>n次
//复制最后使用的命令中的最后参数
 <alt+1><alt+.>
 <alt+2><alt+.>
//指定上条命令的第n个参数

10.du -h --max-depth=1/2/3...
//显示当前目录下的第n级子目录的大小统计信息,-h参数则是以Mb、G的单位显示大小

11.ps aux| sort -nk +4 | tail
//显示消耗内存最多的10个运行中的进程,以内存使用量排序
注:如果想发现那个进程使用了大量内存,可使用htop或top而非ps

12.简易计时器
time read
//运行命令开始算起,到结束时按一下enter键,显示一个进程在运行到结束过程消耗的时间,精确到ms级别。
它的输出通常有三项:
例:
 $time ls /opt
  ...
 real 0m0.008s
 user 0m0.003s
 sys 0m0.007s

//real指整个程序对真实世界而言运行所需时间
//user指程序在用户空间运行的时间
//sys指程序对系统调用所占用时间

注:read本来是一个读取用户输入的命令,常见用法是read LINE,用户输入并回车后,键入内容就被保存到$LINE变量内,但在键入回车前,这个命令是一直阻塞的。

 


xxxxxxxxxxxxxxxx更多命令使用将进一步更新,敬请期待xxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

由于小菜目前能力有限,以上内容可能有所差错,还望各大神能多多赐教,感谢!!!