ubantu命令大全

****************************************2015年10月21日**************************************************
0、sudo apt-get install samba        下载samba
1、长久显示隐藏文件:sudo nautilus
2、暂时显示隐藏文件:快捷键 ctrl+h
3、文字界面登陆tty2~tty6:ctrl+alt+【f2~f6】
4、进入图形界面桌面:ctrl+alt+f7
5、切换输入法:上档键
6、显示日期:date +%y/%m/%d/%H/%M
7、显示日历:cal [[month ]year]
8、计算器:bc进入 scale=3代表答案小数几位 quit离开
9、~                    表示自己的主文件夹
10、sudu fdisk -l            查看硬盘情况
11、df                    查看文件系统挂载情况
12、mount                查看文件系统属性情况
    mount -a            挂载/etc/fstab里面配置的文件
13、partprobe                将内核的partition table更新
****************************************2015年10月22日**************************************************
1、[tab][tab]                接在一串命令的第一个命令之后表示 命令补全 cal[tab][tab]
2、[tab][tab]                接在一串命令的第二个命令之后表示 文件补齐 ls -al ~/.bash[tab][tab] (列出自己主文件夹下

一.bash开头的文件)
3、ctrl+c                 中断目前程序。(比如 find /)
4、ctrl+d                 代表键盘输入的结束标志;也可以代替exit。
5、man+[代号]+命令             查询该命令的用法。
    代号    代表内容
    1    用户在shell环境中可以操作的命令或可执行文件
    3    一些常用函数与函数库,大部分都是C的函数库
    5    配置文件或者是某些文件的格式
6、在man的功能下,输入 /+内容 表示搜索该内容。
7、whatis [命令或数据]=man -f [命令或数据]
8、apropos [命令或数据]=man -k [命令或数据]
9、info与man类似,但是可以进入node
10、nano+[存在或未存在的文件]          都是在自己的文件夹下( home)。
11、shutdown reboot halt poweroff    只有root权限的问题才能使用
12、init+level等级
    runlrvel 0:关机
    runlrvel 3:纯命令行模式
    runlrvel 5:含有图形界面模式
    runlrvel 6:重启
13、sudo su                 切换到root用户
14、nano /etc/issue             欢迎界面修改。
15、chgrp+组名+文件             更改某一文件的组。
16、chown+[所有者:][组]+文件        更改组和所有者。
17、cp+源文件+目标文件            拷贝。
18、修改文件权限
    chmod xyz 文件            x,y,z表示三个权限修改的值(值为 r:4 w:2 x:1的和)
    chmod u=rwx,g=rw,o=r 文件        
    chmod a=rwx 文件        全部权限
    chmod a-x 文件            全部权限减去可执行
    chmod a+x 文件            全部权限加上可执行
19、chgrp、chmod、chown -R        持续更改,连同子目录下的所有文件
19、cd /tmp                切换到tmp目录下
20、touch testing/one            在testing目录下创建one文件
21、su - rockylee            切换到了rockylee用户下
22、rm 文件                删除文件。(拥有上级目录的w属性才行)
23、rmdir 目录                删除目录
24、ls -l 文件或目录            列出文件或目录下的东西。包括隐藏文件。
****************************************2015年10月23日**************************************************
1、.                    代表当前目录,也可用./来表示
2、..                    代表上一层目录,也可用../表示
3、uname -r                可以查看实际内核版本
4、lsb_release -a            查看lsb的版本
5、-                    代表前一个工作目录
6、pwd                    显示当前所在绝对位置
7、mkdir -p test/test1/test2        自行创建多层目录
8、mkdir                当目录不存在时创建
    mkdir -p test/test1/test2    一直从test开始创建,存在的话则跳过
9、rmdir                目录为空时才能删除
    rmdir -p test/test1/test2    从最小子目录一直向父级删到目录不为空
11、ehco $PATH              显示PATH变量值
12、mv /bin/ls /root            移动
13、PATH = "$PATH":/root        添加/root到PATH    
14、ls
    -d                只列出目录本身
    -a                列出全部,包括隐藏文件
    -l                列出非隐藏类的全部文件详细信息
    -al                列出所有文件的详细信息
    ls -l [--time=mtime] 文件    默认时间修改的时间
    ls -l --time=atime 文件        取用时间(内容被读取时,cat命令)
    ls -l --time=ctime 文件        状态时间(权限、属性等改变)    
    ls -i 文件或目录        显示inode号码
15、cp
    cp ~/test.txt /tmp/test        复制test.txt并更改名字为test
    cp -i ~/test.txt /tmp/test    覆盖前确认操作
    cp -r /etc /tmp            -r表示复制目录,但是与前面一样权限会有所改变
    cp -a /var/log/wtmp wtmp2    包括权限与时间等的完全复制
    cp -s bashrc bashrc_slink    新建快捷方式,不会更改bashrc的link数
    cp -l bashrc bashrc_llink    新建硬连接,源文件的link数增加1
    cp -u ~/.bashrc /tmp/bashrc    源文件与目标文件有差异时才会被复制,常用语备份当中
    -d                复制链接文件的快捷方式属性,不加-d表示复制链接文件所指向的文件
    cp [源文件 ](1...n) 目标文件    将多个数据复制到同一个目录去
****************************************2015年10月25日**************************************************
1、rm
    rm -i 文件            互动模式,询问是否要删除文件
    rm -r test            将该目录下的所有东西都删除包括自己
2、mv 目录1 目录2             如果都在同一父目录下,目录2不存在,只是将目录1重命名目录2。
3、mv 文件[ 文件] 目录            移动
4、basename /sss/ss/s            结果为s
5、dirname /sss/ss/s            结果为/sss/ss
6、cat
    cat /etc/issue            
    cat -n /etc/issue        内容加上行号
    cat -A 文件            包括特殊字符
7、tac 文件                反着显示
8、nl         -b a           -n rz                   -w 3          /etc/issue
   (添加行号)   (空行也列出行号)  (行号自己字段右边,其余加0) (行号站位为3) (文件)
9、more、less
10、head
    head test            默认显示前10行
    head -n 20 test            显示前20行
    head -n -100 test        只是不打印后面100行
11、tail
    tail    test            默认显示最后10行
    tail -n 20 test            显示最后20行
    tail -n +100    test        100行以后,的内容
    tail -f  test            持续检测,输入会立即被显示。(乌班图貌似不行)
12、tail -n 20 test | tail -n 10     取10到20行内容。
13、od
    od -t a 文件            默认字符输出
    od -t c    文件            使用ASCII输出
    od -t d 文件            10进制decimal
    od -t f 文件            浮点数floating
    od -t o 文件            8进制octal
    od -t x 文件            16进制hexadeciaml
15、touch
    touch -d "2 days ago" 文件       atime、mtime变为当前时间前2天,ctime变为当前时间
    touch -t 0712190202 文件    atime、mtime变为当前时间前2天,ctime变为当前时间
****************************************2015年10月26日**************************************************
1、umask                新建文件的默认权限(文件忽略X,目录有X)
    umask                结果为0022的话,表示创建者属性减去0、组减去2、其他减去2
    umask -S            结果为u=rwx,g=rx,o=rx(文件最终无法被执行,所以忽略X)
    umask 002            修改默认权限值
2、chattr                设置隐藏属性
    chattr  [+-=][ASacdistu] 文件或目录名称
            +:增加  a:只能增加内容,不能修改和删除数据
        -:减去  i:不能删除,改名,设置连接也无法写入或添加数据
        =:仅有后面的参数属性
3、lsattr [-adR] 文件或目录        显示文件隐藏属性
      -a:隐藏文件也要秀出来
      -d:如果是目录,仅仅秀目录
      -R:连同子目录的数据一并秀出来
4、文件特殊权限
    SUID(4)                仅对二进制程序有效;执行者对该程序须有x可执行权限;
                    执行过程中有效;执行者将有所有者的权限
    SGID(2)                二进制程序;执行者须有x权限;
                    执行者在执行的过程中将会获得用户组的支持
    SBIT(1)                目录;当用户对此目录具有wx权限是,用户在该目录下创建的文件或目录
                    仅有自己和root才能删除
    chmod 7666 test            结果为-rwSrwSrwT(大写表示没有x权限),其余的修改方式请参照前面chmod用法
5、file 文件                查看某个文件的基本数据
6、which [-a] 命令            寻找[所有结果]“执行文件”
7、whereis [-bmsu] 文件或目录        在数据库里面查找。(-b:只查找二进制文件 -m:说明文件manual下 -s:source源文件 -u:其他)
8、locate [-ir] keyword            在数据库里面查找。(-i:忽略大小写 -r:后面可接正则表达式)
9、find
    find 目录 -mtime n        在n天之前,“一天内”被更改过的文件
    find 目录 -mtime +n        在n天之前,被更改(不含第n天)
    find 目录 -mtime -n        n天之内,被更改(不含第n天)
    find 目录 -newer file        比file还新的文件
    find / -user rockylee        找到所有属于rockylee的文件
    find / -nouser
    find / -nogroup
    find / -group root
    find / -name passwd        文件名为passwd的文件
    find / -type s            文件类型是socket
    find / -perm +7000        含有---s--s--t权限的问价
    find / -perm 7000
    find / -perm -7000
    find -name rockylee -exec 命令;    将找到的结过做处理(例如:ls -l {} \ 详细列出来  -print 默认处理)
    find / -size +1000k        找出大于1M的文件
    find / -name '*test*'        找出文件名包含test
****************************************2015年10月27日**************************************************
2、adb
    adb kill-server         停止服务
    adb start-server        启动服务
    adb devices            查看设备状态
3、/etc/init.d/udev restart        重启udev
4、dumpe2fs
    dumpe2fs -b /dev/sda1        列出保留为坏道的部分
    dumpe2fs -h /dev/sda1        只是列出superblock的数据
    dumpe2fs /dev/sda1        superblock和所有的blockgroup
5、ls -l /lib/modules/$(uname -r)/kernel
   /fs                    linux支持的文件系统
6、cat /proc/filesystems        系统目前加载到内存中支持的文件系统
****************************************2015年10月28日**************************************************
1、df                    
    df [文件]            默认显示系统内(文件)部分文件系统
    df -h    [文件]            以易读的方式显示出来(GB、MB等)
    df -a    [文件]            所有文件系统包括内存中/proc等
    df -T    [文件]            文件系统type
    df -i    [文件]            innode数量和总量
****************************************2015年10月29日**************************************************
1、du   [-a:文件和目录 -h:以G/M显示占有的容量 -s:只是列出子目录目录 -S:不包括子目录下得总计 -k:KB -m:MB]
    du                显示当前目录下所有的目录容量
    du -a                将文件的容量也显示出来
    du -sm /*            检查根目录下得每个目录所占的容量
2、ln
    ln 源文件 目标文件        硬连接
    ln -s 源文件 目标文件        快捷方式
****************************************2015年10月30日**************************************************
1、parted(一般磁盘大小大于2TB使用,否则用fdisk即可)
    parted /dev/sdb    print        列出分区资料表
    parted /dev/hdc mkpart
    logical ext3 19.2GB 19.7GB         从19.2G~19.7G建立一个逻辑分区
    parted /dev/hdc rm 8        删除8号分区
2、adb
    adb devices            列出连上的设备
    adb shell getprop        获得设备属性信息
    adb shell ps            查看设备进程信息
****************************************2015年11月2日**************************************************
0、*.zip                zip是压缩程序,unzip是解压程序
    zip [参数] [打包后的文件名] [打包的目录路径]
    -a 将文件转成ASCII模式
    -F 尝试修复损坏的压缩文件
    -h 显示帮助界面
    -m 将文件压缩之后,删除源文件
    -n 特定字符串 不压缩具有特定字尾字符串的文件
    -o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
    -q 安静模式,在压缩的时候不显示指令的执行过程
    -r 将指定的目录下的所有子目录以及文件一起处理
    -S 包含系统文件和隐含文件(S是大写)
    -t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
1、*.Z                    compress程序压缩的文件(uncompress、gzip解压,zcat查看)
2、*.gz                    gzip程序压缩的文件(gzip解压,zcat查看)
    gzip [-cdtv#] 文件名        
        -c:            将压缩的数据输到屏幕上,可以通过数据重定向解决
        -d:            解压缩
        -t:            检验一个压缩文件的一致性,查看文件是否有误
        -v:            显示压缩比
        -#:            压缩等级(-1最快最差,-9最慢最好,一般默认-6)
    gzip [-9] -c man.config > man.config.gz
                    保留源文件
3、*.bz2                bzip2程序压缩的文件(bzip2 -d、bunzip2解压,bzcat查看)
    bzip2 [-cdkzv#]    文件名    
        -c:            将压缩的数据输到屏幕上,可以通过数据重定向解决
        -d:            解压缩
        -z:            压缩
        -t:            检验一个压缩文件的一致性,查看文件是否有误
        -v:            显示压缩比
        -#:            压缩等级(-1最快最差,-9最慢最好,一般默认-6)
    bzip2 [-9] -c 源文件 > 目标    最佳压缩比压缩,并保留源文件
4、*.tar                tar程序打包的数据,并没有压缩过
   *.tar.gz                先打包命令在压缩命令 或者 一个命令
   *.tar.bz2                先打包命令在压缩命令 或者 一个命令
    压缩:tar -jcv -f file.tar.bz2 要被压缩的文件或目录
          tar -zcv -f file.tar.gz 要被压缩的文件或目录
    查看:tar -jtv -f file.tar.bz2
          tar -ztv -f file.tar.gz
    解压: tar -jxv -f file.tar.bz2 -C 欲解压的目录
          tar -zxv -f file.tar.gz -C 欲解压的目录
                    解压都会保留源文件
        j:bz2 z:gzip v:处理过程显示 c:新建压缩文件 t:重点查看文件名 x:解压或解压缩,与-C表示在特定目录解开
    -P:保留备份数据原来的属性与权限(一般不用,主要是怕解压时覆盖其他文件,貌似ubantu14.04失效) -p:允许备份数据中含有根目录存

在之意

    tar -jtv -f test.tar.bz2 | grep '1' 查看压缩包并筛选'1'的查询结果
    tar -jtv -f test.tar.bz2 | grep -v '2$' 查看压缩包并筛选‘尾部非2’的查询结果
    tar -jxv -f test.tar.bz2 test/w/1   解压1,不破坏压缩文件
    tar -jcvp -f test.tar.bz2 --exclude=test/3/4 --exlude=test1/2 test test1
                    不打包test/3/4,test1/2,有时候需要除去test.tar.bz2包自身
    tar -jcvp -f test.tar.bz2 --newer-mtime="2015/11/01" test
                    内容变更时间在20151101之后,--newer表示atime、mtime都在之后
    tar -cv -f - /etc | tar -xv -f -
                    把/etc复制到当前目录(一边打包一边解包)
****************************************2015年11月3日**************************************************
1、dump [-Suvj] [-level] [-f 备份文件] 待备份数据
    -S:显示备份需要多大容量,单位是b
    -u:dump时间写入/etc/dumpdates文件(ubantu14.04无)
    -v:dump文件的过程显示出来
    -j:最后bzip2一下,默认压缩等级为2
    -level:0~9(不是文件系统的话,只能使用0)
    -W:列出在/etc/fstab里面具有dump设置的分区是否备份过

    dump -S    待备份数据        
    dump -u -0 -f /tmp/boot.dump /     以0等级备份,问价并写入时间
    dump -W    
2、restore
    rsetore -t [-f dumpfile] [-h]    查看dump文件
    rsetore -C [-f dumpfile] [-D 挂载点]
                    与实际比价差异
    rsetore -i [-f dumpfile]     进入restore互动模式
    restore    -r [-f dumpfile]    还原整个文件系统,请你一定要还原的位置
    
    还原部分文件的restore互动模式
    restore -i -f dumpfile
    help->ls->cd 位置->add 文件或文件夹->加错了可以delete相应文件或文件夹->extract 还原->quit            
3、dd if=/dev/zero of=/tmp/test.img bs=1M count=10
                    创建10M大小的test.img文件
****************************************2015年11月6日**************************************************
1、mkisofs
    mkisofs [-r] [-v] [-o 镜像文件] [-m file] 待备份文件 [-V vol] -graft-point isodir1=systemdir1 isodir2=systemdir2 ...
        -r:通过RockRifge产生支持UNIX/Linux文件数据,可记录较多信息
        -v:显示构建iso过程
        -o:镜像文件名
        -m file:排除文件
        -V vol:新建Volume
        -graft-point:利用等式,让系统文件能够分类地构建在iso文件内部。一般也可以不加,并不能使用等式。
2、mount -o loop test.img /mnt
3、umount /mnt
4、dd 能进行普通文件的备份,也能进行扇区的读写
    dd if="input file" of="output file" [bs="block size" count="number"]
    
    dd if=/dev/hdc of=/tmp/test.back bs=512 count=1
                    将hdc磁盘第一个大小为512byte的扇区拷出(也就是MBR和分区表)
    dd if=/dev/hdc1 of=/dev/hdc9
                    讲hdc1完整复制给hdc9,hdc9必须大于hdc1哈
5、cpio 可以备份任何东西,包括设备设备文件
    find / | cpio -ovcB > /tmp/boot.cpio
                    备份
    cpio -ivcdu < /tmp/boot.cpio    还原
    cpio -ivct < /tmp/boot.cpio    查看

        -o:输出到设备或文件
        -B:默认512的block可以增加到5120
        -i:输入到系统
        -d:自动新建目录
        -u:自动新的文件覆盖久的文件(可不要)
        -t:查看新建的文件或设备的内容
        -v:显示过程
        -c:新的portable format方式储存
6、file 文件                显示文件的格式
****************************************2015年11月9日**************************************************    
1、LANG=zh_CN.big5            设置linux语系
2、文件格式转换
    dos2UNIX [-kn] file [newfile]
    UNIX2dos [-kn] file [newfile]
3、语系编码转换
    iconv --list            列出iconv支持的语系
    iconv -f 原本编码 -t 新编码 filename [-o newfile]
****************************************2015年11月10日**************************************************
1、type    [-tpa] name            
    不加参数            判断命令是否为内置
    -t                结果file是外部命令,alias:别名,bulitin:内置。
    -p                外部命令的话显示完整路径
    -a                将含有name命令都列出来
2、shell变量
    =                例如:myname=VBird
    ""                双引号里的特殊数字符有效,比如:$。
    ''                单引号内的一切字符都是纯文本
    \                转义字符,可将空格等转义
    export    [name]            使变量成为环境变量,便可以在其他进程中执行(不加环境变量默认显示所有环境变量)
    unset name            取消变量
3、反单引号``                先执行。比如:ls -al `find -name .bashrc /`
4、?                    上个命令所传回的值
5、locale -a                显示支持的语系
6、read    -P "Please inter your name" -t 30 name_var
                    30秒内输入值到name_var变量,提示信息是"Please ..."
7、declare/typeset            声明变量
    declare [-aixr] varible
    -a                数组
    -i                int
    -x                环境变量
    -r                只读,一般只能通过注销再登陆取消
    -p                列出变量类型
    declare [+aix] varible        取消对应属性
8、ulimit [-SHacdfltu] [配额]        文件系统和程序的限制(注销再登陆,设置消失)
    -H                严格的限制,必定不能超过
    -S                警告的限制,超过有警告信息
    -a                后面不接参数,表示列出所有限制
    -c                内核文件(进程发生错误,内存信息写成的文件)的最大容量。
    -f                此shell进程能创建的最大文件容量。单位是KB
    -d                进程可以使用的最大断裂内存容量
    -l                可用于锁定的内存量
    -t                可以最大使用CPU的时间
    -u                单一用户可以使用的最大进程数量
9、变量内容的删除
    ${var_name#匹配内容}        #表示从前往后删除最短匹配
    ${var_name##匹配内容}        #表示从前往后删除最长匹配
    ${var_name%匹配内容}        #表示从后往前删除最短匹配
    ${var_name%%匹配内容}        #表示从后往前删除最长匹配
10、变量内容替换
    ${var_name/匹配内容/替换内容}    从前往后替换一个        
    ${var_name//匹配内容/替换内容}    从前往后全部替换
    
****************************************2015年11月16日**************************************************
1、echo ${username-test}        如果username不存在,那么输出为test。否则为username。
2、echo ${username:-test}        如果username不存在或者为空,那么输出为test。否则为username。
3、echo ${username+test}        如果username不存在,那么输出为空。否则为test。
4、echo ${username:+test}        如果username不存在或者为空,那么输出为空。否则为test。
5、echo ${username=test}        如果username不存在,那么输出为test并且username赋值为test。否则为username,并且不赋值。
6、echo ${username:=test}        如果username不存在或者为空,那么输出为test并且username赋值为test。否则为test,并且不赋值。
7、echo ${username?无此变量}        如果usernmae不存在,输出bash: username: test。否则输出为test。
8、echo ${username:?无此变量}        如果usernmae不存在或者为空,输出bash: username: test。否则输出为test。
9、alias                
    不加参数            显示所有的别名
    alias vi=vim            用vi替代vim
    unalias vi            取消vi别名
10、历史命令
    history    [n]            列出最近使用的n条命令
    history [-c]            将目前shell中的history内容全部消除
    history [-raw]            -r:将histor内容读到目前shell的history记忆中
                    -a:将目前新增的history命令写入文件
                    -w:将目前history记忆内容写入文件
    !number                执行第number命令
    !!                执行上一个命令
    !al                执行最近以al开头的命令
11、.或source                将配置文件读入当前shell环境
12、set                    设置整个命令输入环境
    -u                默认不启用,启用后,当使用未设置的变量时,会显示错误信息。(+u取消)
     -v                默认不启用,启用后,在讯息被输入前,会先显示信息的原始内容
    -x                默认不启用,启用后,在命令被执行前,会显示命令内容
    -h                默认启用,与历史命令有关
    -H                默认启用,与历史命令有关
    -m                默认启用,与工作管理有关
    -B                默认启用,与刮号[]的作用有关
    -C                默认不启用,使用>等式,若文件存在时,该文件不会被覆盖
13、常用组合按键            执行结果
    Ctrl+C                终止目前的命令
    Ctrl+D                输入结束(EOF),例如邮件结束的时候
    Ctrl+M                就是Enter
    Ctrl+S                暂停屏幕的输出
    Ctrl+Q                回复屏幕的输出
    Ctrl+U                在提示符下,将整行命令删除
    Ctrl+Z                暂停目前的命令
14、命令行通配符与特殊符号
    *                代表0个到无穷多个任意字符
    ?                代表一定有一个任意字符
    []                代表一定有一个在中括号内的字符
    [0-9]                代表'0'到'9'字符之间所有字符
    [^abc]                非a,b,c的其他任意字符

15、bash环境中的特殊符号
    符号                内容
    #                批注
    \                转义
    |                分割两个管道命令的界定。前一个命令的标准输出就是后一个命令的标准输入(忽略标准错误输出)。
    ;                连续命令执行分隔符
    ~                用户主文件夹
    $                使用变量前导符
    &                作业控制,将命令变成背景下工作
    !                逻辑“非”                
    /                目录分割符
    >,>>                数据流重定向,输出导向,分别是“替换”与“累加”
    <,<<                数据流输入导向
    ''                不具有变量置换的功能
    ""                具有变量置换的功能
    ``                中间内容先执行
    ()                中间为子shell的起始与结束
    {}                在中间为命令块的组合
16、输出数据重定向
    [1]>                正确输出覆盖重定向
    [1]>>                正确输出累加重定向
    2>                错误输出覆盖重定向
    2>>                错误输出累加重定向
    
    find / -name .bashrc > right 2> false    
                    正确的覆盖输出到right,错误的覆盖输出到error
    find /home -name .bashrc 2> /dev/null
                    错误信息输出到黑洞设备,也就是忽略
    find /home -name .bashrc > list 2> &1
    find /home -name .bashrc &> list
                    按照和屏幕一样的顺序输出到文件    
17、输入数据重定向
    <                输入重定向
    <<                输入结束    

    case 范例一:
        cat > testfile
        i love you
        you know?
        #按ctrl+d离开
        #文件内容和文件都已创好
    break;
    case 范例二:
        cat > testfile < ~/.bashrc
    break;
    case 范例三:    
        cat > testfile << "eof"
        i love you
        you know?
        eof
        #输入结束,不需要快捷键
    end;
18、命令执行顺序
    cmd1;cmd2            先执行cmd1,再执行cmd2
    cmd1 && cmd2            cmd1正确执行,再执行cmd2
    cmd2 || cmd2            cmd1错误执行,再执行cmd2
19、cut
    echo $PATH | cut -d ':' -f 3,5
                    取出PATH变量中以:分割的第三个和第五个dir
    export | cut -c 12        输出每一行的第十二个字符
    export | cut -c 12-        输出每一行的第十二个字符至以后的字符
    export | cut -c 12-20        输出每一行的第十二个字符至二十
20、last                显示登录信息
21、grep [-acinv] [-A] [-B] [--color=auto] '查找字符串' filename
    -a                将二进制文件以text文件方式查找数据
    -c                计算找到的次数
    -i                忽略大小写
    -n                顺便输出行号
    -v                反向选择,即显示没有'查找字符串'内容的那一行
    --color=auto            加上颜色显示
    -A                后面可加数字,查询结果后面跟上几行
    -B                后面可加数字,跟上前面几行
****************************************2015年11月17日**************************************************
1、sort
    sort [-fbMnrtuk] [file or stdin]
    -f                忽略大小写
    -b                忽略前面的空格部分
    -M                以月份的名字来排序,例如JAN,DEC等的排序方法
    -n                “纯数字”进行排序
    -r                反向排序
    -u                uniq,相同数据中,仅出现一行代表
    -t                分隔符,默认[tab]分隔
    -k                哪个分隔区间

    cat /etc/passwd | sort -t ':' -k 3
                    以冒号分隔的第三个区间,升序。
2、uniq [-ic]
    -i                忽略大小写字符的不同
    -c                计数
3、wc [-lwm]                什么都不加,默认都列出来
    -l                行数
    -w                单词数
    -m                字符数
4、tee                    双向重定向(一份输出到文件,一份stdout)
    last | tee test | more        last数据一份丢到test文件。一份丢到more。
5、tr
    tr -d '[a-z]'               删除小写字母
    tr '[a-z]' '[A-Z]'        所有小写转成大写
    tr -s 'e'            重复字符去掉。(ee变成e)
6、col
    col -x                将tab转换为空格
    col -b                在文字内有反斜杠(/) 时,仅保留反斜杠最后接的那个字符
7、join [-ti12] file1 file2
    -t                join默认以空格分隔数据,并且对比“第一个字段”(数据前面以某个字符的分隔部分),如果两个文

件的数据的“第一个字段”相                        同,则合并为一个数据,且“第一个字段”放在最前面。
    -i                忽略大小写差异
    -1                代表file1要用哪个字段分析来作为“第一个字段”
    -2                代表file2要用哪个字段分析来作为“第一个字段”

    join -t ':' -1 4 /etc/passwd -2 3 /etc/group
8、paste [-d] file1 file2        将多个文件一行一行地以某一分隔符分开地连接
    -d                后面可接分隔符,默认是tab    
9、-                    代表stdin或stdout
9、expand [-t] file            tab键转为空格键
    -t                后面可接数字,一般一个tab转为8个空格
10、split [-bl] file PREFIX        切割(文件会以PREFIXaa,PREFIXab等来新建小文件)
    -b                以大小来切割(b、k、m等)。split -b 300k 文件 前缀
    -l                 文件行数来切割
11、xargs [-0pen] command
    -0                如果stdin有特殊字符,还原成一般字符。
    -p                每次都要询问
    -e                后面可接一个字符串,当分析道这个字符串时,就会停止
    -n                每次执行命令使用几个参数
    
    cut -d ':' -f 1 /etc/passwd | xargs -p -n 5 finger
                    每次取5个参数输入到finger(查询账户信息),并询问。
****************************************2015年11月23日**************************************************
1、正则表达式通配符
    [0-9]                代表'0'到'9'字符之间所有字符
    [^abc]                非a,b,c的其他任意字符
    *                重复字符,0到无穷多个    
    .                一定有一个字符
    ^the                以the开头
    \.$                以小数点结尾
    ^$                空白行
    \{数字一,[数字二]\}        限定连续重复字符范围。例:grep -n 'o\{2,\}' xx.test 连续出现两个至无穷个o
    [:alnum:]            代表英文大小写字符及数字
    [:alpha:]            大小写字符
    [:blank:]            空格键与tab键
    [:cntrl:]            键盘上面的控制按键,即包括CR、LF、Tab、Del等
    [:digit:]            数字
    [:graph:]            处空格符外其他所有按键
    [:lower:]            代表a-z的小写字母
    [:print:]            任何可被打印出来的字符
    [:punct:]            标点符号,即" ' ? ! ; : # $
    [:upper:]            大写字符
    [:space:]            任何产生空白的字符,包括空格键 tabC R等
    [:xdigit:]            16进制数字类型,因此包括0-9、A-F、a-f的数字与字符
2、sed [-nefr] [动作]
    -n                安静模式(经过处理的行才会列出)
    -e                直接在命令行模式上进行sed的动作编辑
    -f                直接将sed的动作写在一个文件内
    -r                sed的动作支持的是扩展型正则表达式的语法(默认是基础正则表达式)
    -i                直接修改读取的文件内容,而不是由屏幕输出
    
    动作:[n1[,n2]]function
    n1,n2                行数
    function参数
    a                新增
    c                替换
    d                删除
    i                插入
    p                打印
    s                直接进行替换(文件里)。可搭配正则表达式。例如:sed -i 's/\.$/\!/g' test   .结尾的点替换成

!
****************************************2015年11月30日**************************************************
1、拓展正则表达式(grep仅支持基础表达式。使用grep -E或egrep拓展。)
    +                重复一个或一个以上的RE字符 例:egrep -n 'go+d' test 查找god good goood 等
    ?                零个或一个的前一个RE字符 例:egrep -n 'go+d' test 查找god gd
    |                用或的方式查找出数个字符串 例:egrep -n 'gd|god' test 查找god gd
    ()                找出组字符串 例:egrep -n 'g(la|oo)d' test 查找glad good
    ()+                多个重复组的判别 例:echo 'gxyxyxyd'| egrep 'g(xy)+d'
2、awk                    主要是处理每一行的字段内的数据,默认分隔符为空格或[tab]
    变量    意义
    NF    当前行的字段数
    NR    目前是第几行数据
    FS    目前的分隔符,默认是空格键
    
    cat /etc/passwd | awk '{FS=":"} $3<10 {print $1 "\t" $3}'
3、diff                    比较文件新旧版本的区别
    diff [-bBi] from-file to-file
    -b                忽略一行中仅有多个空白的区别(例如:about me 和 about       me)
    -B                忽略空白行的区别
    -i                忽略大小写的区别

    diff -Naur old new > test.patch    区别制作成一个补丁文件
4、cmp [-s] file1 file2
    -s                将所有的不同点的字节处都列出来。默认值输出第一个发现的不同点
    
5、patch -pN < test.patch        更新
   patch -R -pN < test.patch        还原
    -pN                取消N层目录。如果在同一目录下就是0.
6、sh [-x]                子进程执行shell脚本
    -x                会将执行过程显示出来
   source                当前进程执行shell脚本
7、$((13%3))                运算内容
8、test可[]替代
    关于某个文件名的“文件类型”判断
    -e                该文件名是否存在
    -f                该文件名是否存在且为文件
    -d                该文件名是否存在且为目录
    -b                该文件名是否存在且为一个block device设备
    -c                该文件名是否存在且为一个character device设备
    -S                该文件名是否存在且为一个Socket文件
    -p                该文件名是否存在且为一个FIFO(pipe)文件
    -L                该文件名是否存在且为一个连接文件
    例如:test -e /etc && echo "yes" || echo "No"
    
    关于文件权限检查
    -r                检测该文件名是否存且具有“可读”的权限
    -w                检测该文件名是否存且具有“可写”的权限
    -x                检测该文件名是否存且具有“可执行”的权限
    -u                检测该文件名是否存且具有“SUID”的属性
    -g                检测该文件名是否存且具有“SGID”的属性
    -k                检测该文件名是否存且具有“Sticky bit”的属性    
    -s                检测该文件名是否存且且为“非空白文件”
    
    两个文件之间的比较 test file1 -[] file2
    -nt                file1是否比file2新
    -ot                file1是否比file2旧
    -ef                判断是否为同一文件。主要判定两个文件是否指向同一个inode(hard link)。
    
    连个整数之间的判断    
    -eq                数值相等
    -ne                数值不等
    -gt                n1大于n2
    -lt                n1小于n2
    -ge                n1大于等于n2
    -le                n1小于等于n2

    判定字符串的数据
    test -z string            判定字符串是否为空
    test -n string            判定字符串是否为不空
    test str1=str2            判定是否相等
    test str1!=str2            判定是否不相等
    
    多重条件判定
    -a                多个条件同时成立。test -r file1 -a -x file2  或 [ -r file1 -a -x file2 ]
    -o                任何一个条件成立。test -r file1 -o -x file2
    !                反向。test ! -x file
    
9、shell脚本参数(sh test 参数1 参数2)
    $0                test文件名
    $#                参数个数
    $@                代表"$1"、"$2"。每个变量都是独立的。
    $*                "$1c$2"。c为分隔符,默认空格。
    shift 3                偏移三个变量($#输出总个数减去3)
10、条件判断
    if [条件判断];then
    else if [条件判断];then
    else
    fi
11、case语句
    case $变量名称 in
     "第一个变量内容")
        程序段
        ;;
     "第二个变量内容")
        程序段
        ;;
     *)
        程序段
        ;;
    esac
12、函数
    function fname(){
    }
13、循环
    while [condition]
    do
        程序段落
    done

    until [condition]
    do
        程序段落
    done
    
    for var in con1 con2 con3 ...
    do
        程序段
    done
    
    for ((i=0;i<=100;i=i+1))
    do
        程序段
    done
****************************************2015年12月1日**************************************************
0、相关文件
    /etc/passwd            账号信息(账号,密码x,uid,初始用户组gid等)
    /etc/shadow            账号密码
    /etc/group            用户组信息(用户组名称,密码,GID等)
    /etc/gshadow            几乎与/etc/group一样(第二个字段是密码,如果为!表示不具有用户管理员)
    /etc/default/useradd        useradd的默认值
    /etc/login.defs            uid/gid的密码参数
    /etc/skel            用户主文件夹参考的基准目录(就是复制过去)
    /etc/pam.d/passwd        使用pam_cracklib.so测试密码,并替代/etc/login.defs内PASS_MIN_LEN
1、groups                查看当前用户支持的用户组(输出的第一个用户组为有效用户组)
2、newgrp 组名                切换当前用户的有效用户组
3、useradd [-u uid] [-g 初始用户组] [-G 次要用户组] [-mM] [-c 说明栏] [-d 主文件绝对路径] [-s shell] 用户账号名
    -M                强制不要创建用户主文件(系统账号默认值)
    -m                强制要创建用户主文件(一般账号默认值)
    -c                passwd的第9列说明内容
    -s                后面接一个shell,若美欧制定默认是/bin/bash
    -e                 失效日期
    -f                shadow第7字段。0为立刻失效,-1为永不失效
    -D                useradd默认属性值
    -r                创建一个系统账号
****************************************2015年12月2日**************************************************    
1、修改账户密码
    用户使用
    passwd                修改自己密码

    root使用
    passwd [-l] [-u] [--stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号
        --stdin            前一个管道的数据(ubuntu不支持)
        -l            将/etc/shadow第二列最前面加上!使密码失效
        -u            与-l相反
        -S            列出密码相关参数即shadow大部分内容
        -n            shadow第四字段,多久不可修改密码天数
        -x            shadow第五字段,多久必须改动密码
        -w            shadow第六字段,密码过期前的警告
        -i            shadow第七字段,密码失效日期

    echo "abc123" | passwd --stdin test
                    ubuntu貌似不支持
                    root修改test用户密码,但是不安全(直接使用passwd test)
    passwd -i 10            自创建起,10天密码失效
2、chage [-ldEImMW] 账号名
    -l                列出账号的详细密码参数
    -d                修改shadow的第三字段(最近一次更改密码的日期),格式 YYYY-MM-DD    
    -E                修改shadow的第八字段(账号失效日),格式 YYYY-MM-DD
    -I                修改shadow的第七字段(密码失效日)                    
    -m                修改shadow的第四字段(密码最短保留天数)
    -M                修改shadow的第五字段(密码需要多久更改)
    -W                修改shadow的第六字段(密码过期前警告日期)

    chage -d 0 test            账号新建时间被更改为1970/1/1
3、usermod [-cdeGlsuLU]    账号名
    -c                /etc/passwd第五列,账号说明
    -d                /etc/passwd第六列,主文件夹
    -e                修改shadow的第八字段(账号失效日),格式 YYYY-MM-DD
    -f                修改shadow的第七字段(密码失效日)
    -g                后面接初始用户组,gid
    -G                后面接次要用户组,/etc/group
    -a                与-G合用可增加次要用户组的支持而非设置
    -l                修改账号名称
    -s                shell文件夹
    -u                uid
    -L                在那时将用户密码冻结,让他无法登录
    -U                解锁,与-L相反        

    usermod -c "fox" test        
    usermod -e "1994-08-24" test
4、userdel [-r] 账号名            -r连同主文件夹和mailpool一起删
5、finger
    finger                列出目前登录的用户与登录时间
    finger test            列出test账户的相关属性(名字等)
    finger -s test            仅列出用户的账号、全面、终端机代还与登录时间等
    finger -m test            列出后面接的账号相同者,而不是利用部分对比
6、chfn [-foph] 账号名
    什么都不加            互动更改模式
    -f                完整大名
    -o                办公室房间号
    -p                办公室电话
    -h                家里的电话
7、chsh                    修改shell
8、id
    什么都不加            列出当前用户的所有id
    id test                列出test用户的id(也可用来查询test账号是否存在)
9、groupadd [-g gid] [-r] 用户组名
    -g                特定gid
    -r                系统用户组
10、groupmod [-g gid] [-n groupname] 用户组名
    -g                修改既有的gid数字(不要随意修改)
    -n                修改既有的组名
11、groupdel grouptest            删除grouptest(有用户关联无法删除)
12、gpasswd
    root动作

    gpasswd test            修改test密码
    gpasswd [-A user1,...] [-M user3,...] test
                    -A后面接test的管理员账号
                    -M将某些账号加入这个用户组
    gpasswd [-rR] test        -r删除密码,-R使之失效

    管理员动作
    
    gpasswd [-ad] user test
                    -a添加用户到test
                    -d从test删除用户
****************************************2015年12月3日**************************************************    
1、mount                直接查看挂载参数
2、setfacl [-bkRd] [{-m|-x} acl 参数] 目标文件
    -m                设置后续的acl参数给文件使用,不可与-x合用
    -x                删除后续acl参数,不可与-m合用
    -b                删除素有的acl参数设置
    -k                删除默认的acl参数
    -R                递归设置acl,包括子目录都会被设置起来
    -d                设置默认acl参数。只对目录有效,在该目录新建的数据会引用此默认值
    
    针对特定的用户(-m u:[用户列表]:[rwx] 无用户表示文件所有者)
    针对特定的用户组(-m g:[用户组列表]:[rwx] 无用户表示文件所属组)
    针对有效权限mask (-m m:[rwx])    对用户、用户组、other进行权限交集
    针对默认权限(-m d:[ug]:用户列表:[rwx] 目录)

3、getfacl 目标文件            查看所有权限,包括附加acl权限
4、su [-lm] [-c 命令] [username]
    什么都不加            使用non-longin shell方式,但是很多环境变量并没有切换(不推荐)
    -                使用login-shell的变量文件读取方式来登录系统,不加用户名,代表root
    -l                与-类似,但是必须加账号
    -m                与-p是一样的,表示使用目前的环境设置,而不读取新用户的配置文件
    -c                仅执行一次命令
5、env                    查看环境变量
6、sudo [-b] [-u 新用户账号]
    -b                将后续的命令让系统自行执行,而不与目前的shell产生影响
    -u                后面可以接欲切换的用户,若无代表切换身份为root

    sudo -u sshd touch /tmp/test
7、sh -c "一连命令;接着;接着;"        
8、visudo                能够修改sudo能执行的命令(鸟哥p430相关语法)
****************************************2015年12月4日**************************************************    
1、w或者who                查询当前登录在系统上的用户
2、lastlog                每个账号的最近登录时间
3、write 用户账号 中断端口        与相同主机上的用户交谈
4、mesg
    mesg                 显示mesg的状态
    mesg n                拒绝接受消息,root的消息不能拒绝,但是不显示
    mesg y                接受所有消息
5、wall                    针对系统上面的用户发送广播
6、mail 用户 -s "标题"            结束行为.;Cc:抄送
   mail                    查看状态,并等待输入命令(?来查看命令)
7、一些检查工具
    pwck                检查/etc/passwd这个账号配置文件内的信息,与实际主文件夹是否存在
    pwconv                将/etc/passwd的密码移到/etc/shadow
    pwunconv            将/etc/shadow密码移到/etc/passwd,并删除/etc/shadow(不推荐)
    chpasswd            chpasswd -m "username:明文密码"。进行加密并修改username密码
****************************************2015年12月5日**************************************************    
1、quotacheck [-avugfM] [/mount_point]    扫描文件系统并新建Quota的配置文件
    -a                扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数后,/mount_point可不必写,因为扫

描了所有的文件系统了
    -u                针对用户扫描文件与目录的使用情况,会新建 aquota.user
    -g                针对用户组扫描文件与目录的使用情况,会新建 aquota.group
    -v                显示扫描过程的信息
    -f                强制扫描文件系统,并写入新的quota配置文件(不推荐)
    -M                强制以读写的方式扫描文件系统,只有在特殊的情况下才会使用

    quotacheck -avug        针对含有usrquota、grpquota参数的文件系统就行扫描
    quotacheck -avugmf        强制扫描
2、quotaon [-avug]
   quotaon [-vug] [/mount_point]    启动quota服务
    -u                针对用户启动quota(aquota.user)
    -g                针对用户组启动quota(aquota.group)
    -v                显示启动过程的相关信息
    -a                根据/etc/mtab内的文件系统设置启动有关的quota,若不加-a的话,则后面需要加特定的文件系统

    quotaon -auvg            
3、quotaoff [-a]
   quotaoff [-ug] [/mount_point]    关闭quota服务
    -a                关闭全部的文件系统的该项服务(根据/etc/mtab)
    -u                仅针对后面接的 /mount_point 关闭 user quota
    -g                。。。
4、edquota [-u username] [-g groupname]
   edquota -t                修改宽限时间
   edquota -p 范本账号 -u 新账号
    -u                设置username的权限值
    -g                设置groupname的权限值
    -t                修改宽限时间
    -p                复制范本    
 5、quota [-uvs] [username]
    quota [-gvs] [groupname]        显示针对用户或者用户组的quota报表
    -u                ...
    -g                ...
    -v                显示每个用户在文件系统中的quota值
    -s                使用1024倍数的值
6、repquota -a [-vugs]
    -a                直接到 /etc/mtab 查询具有quota标志的文件系统,并显示报表
    -v                输出的数据将含有文件系统的详细信息
    -u                显示出所有用户的quota限制
    -g                。。。
    -s                使用M、G为单位    
7、dd if=/dev/zero of=bigfile bs=1M count=300
                    创建一个300M的空文件
8、warnquota                查看超过soft的账号并发送邮件(/etc/warnquota.conf配置文件)
9、setquota [-u | -g] 账号名称 block(soft) block(hard) inode(soft) inode(hard) 文件系统
                    直接于命令中设置quota限额
    
****************************************2015年12月7日**************************************************    
1、软件磁盘阵列设置
   mdadm --detail /dev/md0        
   cat /proc/mdstat            查询磁盘阵列信息
   mdadm --create --auto=yes /dev/md[0-9] --raid-devices=N --level=[015] --spare-devices=N [/dev/sdx /dev/hdx ... 或者 sdd

{5,6,7,8,9}]
    --create            为新建RAID的参数
    --auto=yes            决定新建后面接的软件磁盘阵列设备,即 /dev/md0,/dev/md1等
    --raid-devices=N        使用几个磁盘作为阵列设备
    --spare-devices=N        使用几个磁盘作为备用
    --level=[015]            设置磁盘阵列的等级,一般建议0,1,5
    --detail            后面所接的那个磁盘阵列设备的详细信息
2、mdadm --manage /dev/md[0-9] [--add 设备] [--remove 设备] [--fail 设备]
    --add                会将后面的设备加到这个md中
    --remove            从磁盘阵列md中删除后面接的设备
    --fail                会将后面的设备设置成为出错的状态
3、mdadm --stop /dev/md0        关闭/dev/md0

****************************************2015年12月8日**************************************************
1、LVM(分区标识符需要改为8e)
    pvscan                检查是否有PV的存在
    pvcreate /dev/sdd{5,6,7,8}    创建PV    
    pvdisplay            详细列出每个PV的信息
    pvmove /dev/sdd6 /dev/sdd9    内容移动

    vgcreate [-s N[mgt]] VG名称 PV名称
        -s            接每个PE的大小
    vgscan                检查VG的存在
    vgdisplay            详细显示每个VG的信息    
    vgextend liyangvg /dev/sdd9    添加sdd9
    vgreduce liyangvg /dev/sdd9    删除sdd9
    vgremove liyangvg        删除一个VG

    lvcreate [-L N[mgt]] [-n LV名称] VG名称
    lvcreate [-l N] [-n LV名称] VG名称
        -L            后面接容量,单位是MGT,取最接近的PE倍数
        -l            后面接PE的个数
        -n            后面接LV的名称
    lvdisplay            相信显示LV状态
    /dev/liyangvg/liyanglv        (以后直接对其进行文件系统格式化)
    lvresize -l +179 /dev/liyangvg/liyanglv            
                    将新加入的PV内的PE加入lv

    resize2fs /dev/liyangvg/liyanglv
                    将文件系统的容量确实增加
    resize2fs [-f] [device] [size]    (需要新进行解挂载和检查)
        -f            强制进行操作
        [device]        设备文件
        [size]            加上单位MG。不加size的话表示整个分区的容量
    e2fsck -f /dev/liyangvg/liyanglv
                    检查文件系统
    

    lvcreate -l 60 -s -n liyangss /dev/liyangvg/liyanglv
                    为liyanglv新建一个liyangss快照
        -s            快照
        -n            快照名
        -l            跟个数
2、at
    /etc/init.d/atd restart        重启atd
    at [-mldv] TIME
    at -c 工作号码
        -m            当at的工作完成后,及时没有输出信息,以email通知用户改工作已完成
        -l            相当于atq,列出目前系统上面的所有该用户的at调度
        -d            相当于atrm,可以取消一个在at调度中的工作
        -v            可以使用较明显的格式列出at调度中的任务列表
        -c            可以列出后面接的该项工作的实际命令内容
    TIME
        HH:MM            今日 ex>04:00
        HH:MM YYYY-MM-DD    某日 ex> 04:00 2009-03-17
        HH:MM[am|pm] [Month] [Date]
                    某日 ex>04pm March 17
        HH:MM[am|pm] + number [minutes|hours|days|weeks]
                    ex>now + 5 minutes ex>04pm + 3days
3、atq                    查询目前主机上有哪些at工作调度
4、atrm 5                删除第五个工作
5、batch                与at类似,是由atq/atrm管理。只有当CPU负载低于0.8的时候才会执行。
6、crontab [-u username] [-l|-e|-r]    循环执行
    -u                只有root才能进行,也即是帮助其他用户新建/删除crontab工作调度
    -e                编辑crontab的工作内容
    -l                查阅crontab的工作内容
    -r                删除所有的工作内容
7、anacron                检查执行未执行的crontab(关机等造成的)
   anacron [-sfn] [job] ..
   anacron -u [job] ..
    -s                开始执行各项工作,会一句时间记录文件的数据判断
    -f                强制执行,而不去判断时间记录的时间戳
    -n                立刻执行未进行的任务,而不延迟等待时间
    -u                仅更新时间记录文件的时间戳,不执行
    job                ...
****************************************2015年12月9日**************************************************    
1、ps -l                显示进程
2、&                    在终端后台中工作。(新建一个子进程之间pipe通信)
3、ctrl+z                将目前的工作丢到后台中“暂停”(比如编辑工作、查找操作)
4、jobs [-lrs]
    -l                列出job number,pid,命令字符串等(默认)
    -r                仅列出正在后台run的工作    
    -s                仅列出正在后台stop的工作
5、fg %jobnumber            将后台的工作弄到前台执行
6、kill -signal %jobnumber        将信号传到后台job
   kill -l                
    -l                列出目前可以使用的信号

   kill -signal pid            将信号传递到某个进程    

    signal                代表给予后面接的那个什么样的指示
        -1            重新读取一次参数的配置文件(- SIGHUP)
        -2            代表由键盘输入ctrl+c(-SIGINT)
        -9            立刻强制删除一个工作(-SIGKILL)
        -15            以正常的程序方式终止工作(与 -SIGTERM一样)
        -17            ctrl+z暂停一个进车(-SIGSTOP)
7、nohup [命令或参数]            在终端机前台工作
   nohup [命令或参数] &            在终端机后台工作(脱机或注销系统都行)
****************************************2015年12月10日**************************************************
1、ps aux                查看所有的进程数据
   ps -lA                同上
   ps axjf                同上,加上部分进程树状态
   ps -l                仅列出与你的操作环境bash有关的进程
    -A                进程均显示出来,与-e相同
    -a                与terminal有关的进程
    -u                有效用户(effective user)相关的进程
    x                通常与a这个参数一起使用,可列出较完整
    
    输出格式
    l                详细PID信息列出
    j                工作格式
    -f                做一个更为完整的输出
2、top [-d 数字]                    
   top [-bnp]                动态查看进程的变化
    -d                             接秒数。默认5s。
    -b                以批次的方式执行top。通常重定向输出批处理结果。
    -n                与-b搭配,需要进行几次top的输出结果
    -p                指定pid监测

   在top执行过程中可以使用的按键命令
    ?                显示能输入的所有命令
    P                以CPU的使用资源排序    
    M                以内存的使用资源排序
    N                以PID排序
    T                由该进程使用的CPU时间累积排序
    k                给予某个pid一个信号
    r                给与某个pid重新制定一个nice值
    q                离开top软件
3、echo $$                打印出当前bash的pid
4、pstree [-A|U] [-up]
    -A                各进程树之间以ASCII字符来连接
    -U                各进程树之间以utf8码字符来连接,某些终端接口可能有误
    -p                同时列出每个进程的pid
    -u                同时列出每个进程所属账号名称
5、killall -signal [-iIe] [command name](命令名称为ps最后一个字段)    
    -i                交互式询问
    -I                忽略命令名称的大小写
    -e                完整命令名称,不超过15字符
6、nice [-n 数字] command        新执行的命令给予新的nice值
    -n                数字范围-20~19
   renice [number] pid
7、free [-b|-k|-m|-g] [-t]        查看内存使用情况(默认KB)
    -t                在输出的最终结果中显示物理内存与swap总量
8、uname [-asrmpi]            查看系统内核相关信息
    -a                所有系统相关的信息(包括下面的数据)
    -s                内核名称
    -r                内核版本
    -m                硬件名称
    -p                CPU类型
    -i                硬件平台
9、uptime                查看系统启动时间与工作负载
10、netstat -[atunlp]
    -a                所有的连接、监听、Socket数据
    -t                列出tcp网络数据包数据
    -u                udp
    -n                不列出进程服务名称,以端口号显示
    -l                列出正在网络监听的服务
    -p                列出该网络服务的进程pid
11、dmesg                内核产生的log
12、vmstat                检测系统资源变化
    vmstat [-a] [延迟[总计检测次数]]CPU/内存等信息
    vmstat [-fs]            内存相关
    vmstat [-S 单位]        设置显示数据的单位
    vmstat [-d]            与磁盘有关
    vmstat [-p 分区]        与磁盘有关
        -a            使用inactive/active替代buffer/cache的内存输出信息
        -f            开机到目前为止系统fork的进程数
        -s            将一些时间(开机至目前为止)导致的内存变化情况列表说明
        -S            后面可接单位,让显示的数据有单位。
        -d            列出磁盘读写总量统计表
        -p            列出分区,可现实该分区的读写总量统计表
13、fuser [-umv] [-k [i] [-signal]] file/dir
                    找出正在使用该文件或文件系统的程序(由文件、设备去找)
    -u                除了进程pid之外,同时列出该进程的所有者
    -m                后面接的文件名会主动上提到该文件系统的顶层,对umount不成功很有效
    -v                列出每个文件与程序还有命令的完整相关性
    -k                找出使用该文件/目录的PID,并试图以SIGKILL这个信号给予该PID
    -i                必须与-k配合,在删除pid之前询问
    -signal                例如-1 -15等,不加默认为SIGKILL
14、lsof [-aUu] [+d]            列出被进程所打开的文件名
    -a                   多项数据需要“同时成立”才显示结果
    -U                仅列出Unix like系统的socket文件类型
    -u                后面接username,列出该用户相关进程打开的文件
    +d                后面接目录,即找出某个目录下面已经被打开的文件
15、pidof [-sx] program_name        找出正在执行的进程的pid
    -s                仅列出一个PID而不列出所有的PID
    -x                同时列出该program name可能的ppid那个进程的pid

****************************************2015年12月11日**************************************************
1、getenforce                获得目前selinux的模式(enforcing、permissive、getenforce)
2、sestatus [-vb]            
    -v                检查列于/etc/sestatus.conf内的文件与程序的安全上下文内容
    -b                将目前策略的规则布尔值列出,即某些规则是否要启动
3、/etc/selinux/config             selinux配置文件
4、setenforce [0|1]            0转成permissive,1转成enforcing
5、seinfo [-Atrub]            selinux策略查询与规则管理
    -A                列出SELinux的状态、规则布尔值、身份识别、角色、类型等
    -t                selinux的所有类型种类
    -r                selinux所有角色种类
    -u                selinux所有身份标识种类(user)
    -b                selinux所有规则种类
6、sesearhc [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]
    -a                列出该类型或布尔值的所有相关信息
    -t                例如 -t httpd_t
    -b                后面接布尔值的规则,-b httpd_enable_ftp_server
7、getsebool [-a] [布尔值条款]        查询布尔值
8、setsebool [-P] 布尔值=[0|1]        修改布尔值
9、默认安全上下文查询与修改
   semanage {login|user|port|interface|fcontext|translation} -l
   semanage fcontex -{a|d|m} [-frst] file_spec
    -a                增加
    -m                修改
    -d                删除
****************************************2015年12月12日**************************************************    
1、stand alone服务
   /etc/init.d/cron status        查看状态
   /etc/init.d/cron restart        重启
   service [servicename] (start|stop|restart|...)
   service --status-all            将所有的stand alone服务全部列出来
2、lld $(which sshd)            查询ssd服务动态函数库支持(比如看它是否用到libwrap.so)
3、rpm -q tcp_wrappers            查看是否安装tcp_wrappers
4、netstat -tulp            找出目前开通的网络服务
   netstat -lnp                找出所有监听网络的服务
5、chkconfig                管理系统服务默认开机启动
    chkconfig --list [服务名称]    列出系统上被chkconfig管理的服务
    chkconfig [--level [0123456]] [服务名称] [on|off]
                    修改服务启动等级
    chkconfig [--add|--del] [服务名称]
        --add            增加一个服务名称给chkconfig管理,该服务必须在/etc/init.d内
        --del            删除一个给chkconfig管理的服务
****************************************2015年12月16日**************************************************
1、logrotate                日志文件轮替
    logrotate [-vf] logfile
    -v                显示过程
    -f                无论是否符合配置文件数据,强制每个日志文件进行rotate操作

    例如:logrotate -vf /etc/logrotate.conf
                    执行/etc/logrotate.conf内容
2、mvli
****************************************2016年1月11日**************************************************
1、depmod [-Ane]            记录了在内核支持的模块的各项依赖性。不加任何参数时,主动分析当前内核的模块,并且重新写        

                    入/lib/modules/$(uname -r)/modules.dep。
    -A                查找比modules.dep内要新的模块,有新模块才会更新。
    -n                不写入modules.dep,输出到屏幕
    -e                显示出目前已加载的不可执行的模块名称
2、lsmod                目前加载到内核中的模块
3、modinfo [-adln] [module_name|filename]
                    不加参数,什么信息都有
    -a                列出作者名称
    -d                列出该modules的说明
    -l                列出授权
    -n                列出详细路径
4、insmod                模块加载,但不会主动分析模块间的依赖(modules.dep)。后面接完整路径。
5、rmmod [-fw] module_name        删除模块
    -f                强制删除,不论是否正在被使用
    -w                使用完之后再删除
6、modprobe [-lcfr] module_name        推荐使用。会检测模块间的依赖属性
    -c                列出目前系统所有的模块
//    -l                列出目前在/lib/modules/$(uname -r)/kernel 当中所有模块的完整文件名
    -f                强制加载模块
    -r                类似rmmod,删除模块
7、mkinitrd [-v] [--with=模块名] initrd文件名 内核版本
                    创建一个initrd虚拟磁盘文件
8、grub-install /dev/hda        将grub安装在目前系统的MBR下面
   grub-install --root-directory=/home /dev/hda3
                    将grub安装在/dev/hda3的bootsector里面
   grub-install --recheck /dev/hda1    重新生成device.map
9、sensors-detect            芯片组检测
10、sensors                温度、电压等检测    
11、ldconfig [-f conf] [-C cache]    动态库的连接信息
    ldconfig [-p]
    -f conf                使用conf作为library函数库的取得路径
    -C cache            使用cache作为缓存暂存的函数库资料
    -p                列出目前所有函数库数据内容
12、ldd [-vdr] [filename]        判断程序包含哪些动态库
    -v                列出所有的内容信息
    -d                重新将数据有丢失的link显示出来
    -r                将ELF有关的数据内容显示出来
****************************************2016年1月12日**************************************************    
1、rpm -ivh packname [--xxx]        软件管理程序
    -i                install
    -v                查看更详细的安装信息画面
    -h                以安装信息栏显示安装进度
    --nodeps            出现依赖问题,执意安装
    --replacefiles            覆盖以前的文件
    --replacepkgs            重复安装
    --force                上面两个的合体
    --test                测试一下,可以找出依赖性问题
    --justdb            更新软件在数据库里面的信息
    --nosignature            略过数字证书检查
    --prefix 新路径            安装到其他非正规路径
    --noscripts            不想让该软件在安装过程中自行执行某些系统命令
2、rpm -Uvh packname            未安装安装,已安装升级
   rpm -Fvh packname            未安装不安装,已安装升级
3、rpm查询                p692
4、rpm -Va                列出目前软件所有可能被改动的软件名称
   rpm -V 已安装软件            列出该软件可能被修改过的文件
   rpm -Vp 某个rpm文件的文件名        列出该软件可能被修改过的文件
   rpm -Vf 系统上某个文件        列出某个文件是否被改动
5、rpm --rebuilddb            重建数据库
6、rpmbuild --rebuild srpm        将后面接的srpm进行编译与打包
   rpmbuild --recompile    srpm        编译打包安装
   rpmbuild -ba rp-pppoe.spec        编译并同时生成rpm与srpm
   rpmbuild -bb rp-pppoe.spec        编译并同时生成rpm
7、yum [option] [查询工作项目] [相关参数]
    [option]
        -y            需要用户输入时,自动提供yes的响应
        --installroot=/some/path将该软件安装在/some/path
    [查询工作项目]
        search            搜索某个软件名称或描述的关键字
        list            与rpm -qa一致
        info            类似rpm -qai
        provides        类似rpm -qf
        install            后街软件
        update            后街软件
        remove            后街软件
   yum repolise all            列出所使用的容器有那些
   yum clean [packages|headers|all]
    packages            删除软件文件
    headers                将下载的软件头文件删除
    all                软件本身与列表
   yum [组功能] [软件组]
    grouplist            列出可使用的组列表
    groupinfo            接groupname,了解该group内含的所有组名称
    groupinstall            安装一整组的软件
    groupremove            删除某组
           

posted @ 2016-01-12 16:52  何人之名  阅读(1816)  评论(0)    收藏  举报