liunx常用命令

liunx常用命令
liunx常见的发行版本有Ubuntu,CentOS,Debian等
我们使用的比较多的是Ubuntu和CentOS
Ubuntu和CentOS对一般使用者来说,最大的不同是
	Ubuntu安装软件命令为apt-get install *
	CentOS安装软件命令为yum install *
查看liunx是Ubuntu还是CentOS
    lsb_release -a
安装lsb_release
    yum -y install redhat-lsb
如下这些命令与发行版本无关

liunx创建用户
    useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
    -c:加上备注文字,备注文字保存在passwd的备注栏中
    -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
    -D:变更预设值
    -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效
    -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1
    -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users
    -G:指定用户所属的附加群组
    -m:自动建立用户的登入目录
    -M:不要自动建立用户的登入目录
    -n:取消建立以用户名称为名的群组
    -p:账户密码
    -r:建立系统账
    -s:指定用户登入后所使用的shell。默认值为/bin/bash
    -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认保留给系统用户账号使用,所以该值必须大于499
    ps:useradd xxxx
        passwd xxxx

liunx命令中一定要深刻记忆的一条命令
    sudo rm -rf /*  //删除根目录下所有内容

查看liunx基本信息
    cat /proc/version //查看linux版本
    uname -a //查看内核版本
    ulimit -n //单个进程所能打开的最大文件描述符数
    hostnamectl status //查看主机名
    hostnamectl status [--static|--transient|--pretty] //只查看静态、瞬态或灵活主机名,分别使用“--static”,“--transient”或“--pretty”选项
    sudo hostnamectl set-hostname <host-name> //要同时修改所有三个主机名:静态、瞬态和灵活主机名
    sudo hostnamectl [--static|--transient|--pretty]  set-hostname <host-name> //如果只想修改特定的主机名(静态,瞬态或灵活),你可以使用“--static”,“--transient”或“--pretty”选项

创建文件夹
    mkdir dir //创建目录dir(文件夹)
    mkdir -p /../../dir //创建目录树dir(文件夹dir及所有的父文件)

创建文件
    vi file //创建文件file(文件名包括扩展名),命令(esc+:+wq)退出

删除
    rm -rf dir //删除目录dir及其内容(文件夹dir及其内容)
    rm -f file //删除文件file,-f可省略

重命名或移动
    mv dir1 dir2 //将文件(或目录)dir1移动并重命名为dir2

复制
    cp -rf dir1 fir2 //复制文件(或目录)dir1到dir2

统计文件行数、字节数、字数
    wc -c 统计字节数 -l 统计行数 -w 统计字数 file

查看文件夹下文件的个数
  ls -l | grep "^-" | wc -l
 
查看文件夹下文件的个数,包括子文件夹中的
  ls -lR | grep "^-" | wc -l
 
查看文件夹下文件夹的个数,包括子文件夹中的
  ls -lR | grep "^d" | wc -l

杀死指定命令进程
    kill `ps ax | grep "xxxxxxx" | grep -v grep | awk '{ print $1; }'`

其他
    cd dir //进入目录dir
    cd .. //返回上级目录(cd ../.. 即为返回上两级目录)
    cd - //返回上次所在的目录
    cd -- //返回/root(同 cd ~)
    pwd //显示当前路径
    ls //查看目录中的文件(不显示隐藏文件)
        ls -a //显示包括隐藏文件在内的所有文件
        ls -l //显示目录中文件的详细信息
        ls -t //按照修改时间排列显示目录中的文件(建议配合l使用,ls -lt查看文件具体修改时间)
     
    cat file //查看文件file内容
        cat file|head //查看文件file前10行内容(或head 10 file)
        cat file|tail -n 10 //查看文件file最后10行内容(或tail 10 file)
    tac file //反向查看文件内容(即从最后一行反向查看)(正好写法与表述都与cat相反)
    tail -f file //实时查看被添加到文件的内容
        Ctrl + s //停止
        Ctrl + q //继续
    echo str >> file //在文件file末尾(最后一行下)添加str (文件file不存在时就创建file)
    echo str > file //用str覆盖file中的所有内容 (文件file不存在时就创建file)
    find dir -name "file" //查找在目录dir下所有文件名为file的文件,支持模糊查找(即*.pdf,*.txt等)
     
    grep //查找
        grep str file //在file中查找str
        grep -r str dir //在目录dir下的所有文件及子文件中查找str
        grep -c str file //统计str在file中出现的行数
        grep -5 'parttern' inputfile //打印匹配行的前后5行写入inputfile
        grep -C 5 'parttern' inputfile //打印匹配行的前后5行写入inputfile
        grep -A 5 'parttern' inputfile //打印匹配行的后5行写入inputfile
        grep -B 5 'parttern' inputfile //打印匹配行的前5行写入inputfile
        grep -Ff file1 file2 //打印file2中和file1中相同的行
        grep -v str //排除str
         
    sed 替换或插入
        sed 's/原字符串/替换字符串/' file //用替换字符串替换file中的原字符串
        sed 's/^/添加的头部&/g' //在所有行首添加
        sed 's/$/&添加的尾部/g' //在所有行末添加
        sed '2s/原字符串/替换字符串/g' //替换第2行
        sed '$s/原字符串/替换字符串/g' //替换最后一行
        sed '2,5s/原字符串/替换字符串/g' //替换第2到第5行
        sed '2,$s/原字符串/替换字符串/g' //替换第2到最后一行
     
    lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more //查看文件句柄个数
      
    查看线程:
        cat /proc/${pid}/status //可以查看大致的情况
        top -H -p pid //查看进程的所有线程(ps -T -p pid)
     
    sysctl //查看系统参数
        -w //临时改变某个指定参数的值,如sysctl -w net.ipv4.ip_forward=1
        -a //显示所有的系统参数
        -p //从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
     
    查看JVM设置参数
    jcmd pid VM.flags
     
    查看gc状态
    jstat -gc pid 1000
     
    查看内存队列
    jmap -histo pid | head -n 20
    jmap -dump:format=b,file=/log/heapdump1.out pid
      
    xargs与-exec功能类似
        find mnt/*/root/*.properties -type f |xargs grep -i "Mary" //在所有文件中检索字符串Mary
      
    shell 快捷键
        Ctrl + a  -- 跳到行首
        Ctrl + e  -- 跳到行尾
    awk:
        cat /proc/partitions | grep "[hsrm].*[^0-9]$" | sort -k 1 -k 2 -k 4| head -n 2| tail -n 1|awk '{print $NF}' //获取硬盘盘符
        cat test.txt |awk '{$1=""; $3=""; $4=""; print }' //第几列不要,其他列都要
        cat top.txt | awk '{if(NR % 3 == 0){print $0}}' //只显示3的倍数行,其他行不显示
        awk '{if(NR % 3 != 0){print $0}}' //删除3的倍数行
    最后一列 $NF ,分离 -F ',' '(print $1)'
      
    cat file | sed -e "/rsyslogd was HUPed/d" //文件file中,包含"rsyslogd was HUPed"的行都显示
    cat filename |sort |uniq //文件去重

    统计文件行数、字数、字节数
    wc
        -l 统计行数
        -w 统计字数
        -c 统计字节数

TCP/IP
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' //查看TCP状态
    tcpdump -i eth0 host 172.16.15.38 and port 8055 -w out.cap //查看网卡eth0的tcp报文,并重定向到文件中

上传/下载
    本地与远程服务器间
    ftp  101.37.86.115 //连接指定host,要求输入用户名密码
    sftp -P 40003 admin@120.55.21.42 //连接指定host的40003端口,以admin连接,要输入密码
    get //下载
    put //上传
    服务器间
    scp *.tmp 101.37.86.115:/root/deploy/kft/req //将当前目录下tmp后缀的文件上传到指定目录
    scp root@10.20.2.232:/mnt/cosmetic-rest/*.* ./ //将指定目录的文件下载到当前路径

压缩/解压缩
    tar -cvf jpg.tar *.jpg //压缩
    tar -cvf jpg.tar 1.jpg 2.jpg 3.jpg //压缩
    tar -xvf aaa.tar //解压
卸载
    rpm -q -a //查看安装的软件包
    rpm -e [package name] //卸载软件包
    rpm -e [package name] --nodeps //忽略依赖
    rpm -ql [package name] //查看安装位置
批量删除同名进程
    kill -9 `ps -ef|grep xxxx|awk '{print $2}'`
    ps -ef|grep xxxx|awk '{print $2}'|xargs kill -9

  

posted @ 2018-01-22 10:30  朝北暮苍  阅读(627)  评论(0编辑  收藏  举报