Ubuntu_shell命令

  1. shell介绍

    常用的shell种类:ash、bash、ksh、zsh、csh等,Ubuntu默认使用bash
    查看当前shell种类:

    echo $SHELL
    

    改变shell种类:

    $sh
    $bash
    $ash
    $csh
    
  2. 概述

    线上查询及帮助命令(1个)

    man
    

    目录操作命令(6个)

    pwd cd ls mkdir rmdir tree     
    

    文件操作命令(7个)

    touch rm cp mv rename find ln   
    

    文件查看及处理命令(21个)

    cat less more head tail tac cut paste sort uniq wc iconv file diff chattr lsattr rev vimdiff 
    

    文件打包压缩命令(3个)

    gzip tar unzip 
    

    信息显示命令(12个)

    uname hostname dmesg uptime stat du df top free w date(查看系统时间)
    

    搜索文件命令(4个)

    find which whereis locate 
    

    用户管理命令(10个)

    useradd userdel passwd chage usermod id su sudo visudo  groupadd 
    

    基本网络操作命令(10个)

    telnet ssh scp wget ping route ifconfig ifup ifdown netstat 
    

    深入网络操作命令(6个)

    mail mutt nslookup dig
    

    有关磁盘空间的命令(6个)

    mount umount df fsck dd 
    

    查看系统信息的命令(7个)

    ps top kill
    

    系统管理相关命令(9个)

    free vmstat mpstat iostat sar chkconfig last 
    

    系统安全相关命令(13个)

    umask chgrp chmod chown lsattr ps whoami 
    

    查看系统用户登陆信息命令(6个)

    w who users last lastlog fingers 
    

    查看硬件相关命令(6个)

    ethtool mii-tool dmidecode dmesg lspci 
    

    其它(14个)

    echo yum watch alias unalias clear history eject time nohup nc xargs 
    

    监视CPU、内存、I/O、进程、负载

    top free vmstat sar ipcs ipcrm uptime 
    

    关机

    shutdown -h now ——>立刻关机(生产常用) 
    shutdown -h +1 ——>1 分钟以后关机        
    halt ——>立即停止系统,需要人工关闭电源
    poweroff ——>立即停止系统,并且关闭电源
    

    重启

    reboot(生产常用)               
    shutdown -r +1 ——>1 分钟以后重启     
    

    注销

    logout   
    exit(生产常用) 
    ctl+d ——>快捷键(生产常用) 
    

    进程管理:(16个)

    bg:后台运行              
    jobs:显示后台程序 
    kill,killall,pkill:杀掉进程
    crontab:设置定时          
    pstree:显示进程状态树
    top:显示进程              
    nice:改变优先权 
    nohup:用户退出系统之后继续工作
    strace:跟踪一个进程的系统调用
    ltrace:跟踪进程调用库函数的情况 
    vmstat:报告虚拟内存统计信息
    

    危险的系统命令:

    mv rm dd fdisk parted 
    

    linux 四剑客(4 个)

    grep egrep sed awk
    
  3. 命令详解

    # 为超级管理员     ; $ 为普通用户      ;  清空屏幕:clear
    pwd:查看当前用户所在的路径              
    history  打印用户操作命令的历史记录                
    

    特殊字符

      1>  重定向,会清除文件里所有以前数据
      1>> 追加重定向,在文件结尾加入内容,不会删除已有的文件内容
      <0  输入重定向
      <<0 追加输入重定向
      标准输入:0,使用<或<<数据流向从右向左
      正常输出:1,使用>或>>。数据流向从左向右
      错误输出:2,使用2>或2>>
      \ 转义字符
      .. 上级目录
      .  当前目录
      | 管道(把前一个命令的输出交给后一个程序继续处理)
      ~ 用户的家目录,针对root,~就代表 /root
      / 根目录,以及绝对路径表示
      ;命令分隔符
      `  命令替代符,总是成对出现: echo ‘ls -l’   #将命令’ls -l ’的结果显示出来
      {} 输出字母、字符或者数字序列
      ! 取反
      -a 并且
      -o 或者
      !+字母,表示调用最近一次以此字母开头的命令;
      !!表示使用最近一次操作的命令
      +数字,表示调出历史的第几条命令
      -用户上一次所在目录,-由OLDPWD变量控制
      #  注释标识
    

    快捷键

      tab  命令、路径补全
      Ctrl+c 终止当前命令或程序
      Ctrl+d 退出当前用户环境
      Ctrl+a 使光标移动到开头
      Ctrl+e 使光标移动到结尾
      Ctrl+u 删除光标以前的内容
      Ctrl+k 删除光标以后的内容
      Ctrl+l 清屏
    

    基础正则表达式

      ? 单个任意字符
      * 通配一个或多个任意字符
      []  指定范围
      !  排除符号
      sed -ir ‘s#(可以用正则)#\1#g’ regan.txt    #正则部分不用转义
    

    系统相关:

    uname  (-r 内核;-m 32/64位;-n 主机名; -a 所有)  打印系统信息
    hostname  查看主机名
    service network restart   重启网络
    sudo ufw status   查看防火墙状态
    /etc/init.d/iptables stop ==service iptables stop    关闭防火墙
    netstat -lntup 显示被使用的端口信息
    netstat  -apn | grep 8080   查看8080端口信息
    netstat -atln 查看网络端口信息
    

    用户管理:

    adduser [参数] [用户名]  添加用户
    passwd [参数] [用户名]  更改用户密码
    whoami 查看当前用户
    su - regan   切换当前用户(- 表示携带环境变量一起切换)
    finger [参数] [用户名]   显示用户信息
    usrmod [参数] [用户名]  修改用户登录信息
    id [参数] [用户名]  显示用户id
    chfn [参数] [用户名]  修改用户个人信息
    deluser [参数] [用户名] 删除用户
    
    组管理命令
    addgroup [参数] [用户组名]  添加用户组
    goups [用户组名]  显示用户组
    groupmod [参数] [用户组名]  修改用户组信息
    delgroup [参数] [用户组名]  删除用户组
    
    权限概述
    - rw - r- -r - - root root 184905 
    - rw - r- -r - - 表明了权限与用户和用户组的关系,除了第一位表示文件类型以外,剩余9位以3位为一组,分别表示文件归属用户的权限、归属用户组的权限、其他用户权限。root root 代表了文件的拥有者和该用户所归属的用户组。
    权限的表示方法:  r  100  4  ;  w  010  2  ;  x  001  1 
    因此- rw - r- -r - -可以表示为644
    
    权限管理
    chmod [参数] [文件名/目录名]     #修改文件或目录的权限
        chmod 755 hadoop:hadoop container-executor   将文件设置为755权限
    chown [参数] [用户名.<组名>] [文件名/目录]    #修改文件或目录归属的用户或用户组
        chown hadoop:hadoop hadoop-2.7.2-src/*   将目录下所有文件指定为hadoop组的hadoop用户
    chgrp [参数] [组名] [文件/目录名]    #修改文件或目录的归属组
    参数 -R  :递归处理
    
    配置文件:
    /etc/shadow  密码文件
    /etc/group   用户组文件
    /etc/sudoers  权限文件
    该文件只能由root用户,以命令”visudo”进行修改:
    root ALL=(ALL) ALL
    %admin ALL=(ALL) ALL
    第一栏为用户名或组名,组名必须以%开头
    第二栏为该规则适用的主机
    第三栏指出该用户能够以什么身份来执行命令,ALL代表所有用户
    第四栏指出该用户能够以第三栏指定的用户执行什么命令,ALL代表所有命令
    
    visudo  编辑sudo配置文件
    

    目录:

    cd     ==change directory  #切换路径,例如:# cd /home
    ls -l    ==list  #显示文件;-l 长格式显示;-d 显示目录
    mkdir -p #创建目录,例如:# mkdir data,递归创建目录和文件
    du -h --max-depth=1   # 查看当前目录下所有文件的大小
    

    文件:

    touch   #创建文件,例如:# touch regan.txt
    vi/vim   #编辑器
         :set nu   显示行号
         :5      定位到第5行
         :$      定位到最后一行
         /hadoop    定位到hadoop,n 到下一个定位点
    echo    #打印输出
    
    echo  >  #将文本写入到文件(会先清除源文件内容) 
    echo  >>  #将文本追加到文件末尾(不会清除源文件内容)
    cat -n 文件名   #显示文件的内容
    
    特殊用法:增加内容
    cat >>/data/regan.txt<<EOF
    I am regan
    EOF
    EOF必须成对出现,EOF可以被任意成对内容替换
    -n 显示行号
    

    文件内容:

    wc [参数] [文件名]  :  统计文件的字数、字节数、行数等信息
    comm [参数] [文件1] [文件2]  :  逐行比较两个已排序文件的差异,并将结果显示出来
    diff [参数] [文件1] [文件2] :逐行比较两个文件的异同处、用户及权限管理
    vimdiff txt1 txt2 #比较两个文件的区别,并高亮显示
    
    less(=cat)   按屏(空格,pgup,pgdn)或行(回车)查看内容 
    more    按屏(空格)或行(回车)查看内容(不能向上翻)
    head   #取文件的前n行,默认前10行,取前三行 -n 3,简写是-3
    tail   #取文件的最后n行,默认最后10行,取最后三行,-n 3 -f跟踪一个文件尾部的实时变化
    

    cp -a dir1 dir2 # 复制文件1给文件2,例如:cp -a regan.txt /home/data
    -r :递归,用于复制目录
    -p:保持属性
    -a:相当于-pdr
    -i :将提示确认

    进程:

    利用ps命令可以查看当前所有运行着的进程信息:ps [参数]
    -f :产生某个进程的一个完整信息清单
    -e :显示进程的完成清单
    -a:显示所有用户的进程清单
    -u:产生某个特定用户的的进程清单
    -t :产生与某个特定终端联系的进程清单
    -w:显示进程命令完整行信息
    -x:显示后台运行进程
    当ps命令不带参数时,只显示与控制终端相关的进程的基本信息
    
    top命令动态显示运行中的进程
    利用top命令动态显示进程信息时,可以更改显示顺序,常用命令如下:
    按“P”键可根据CPU使用率排序
    按“M”键可根据内存使用率排序
    按“T”键可根据运行时间的长短排序
    按“Q”键可退出查看模式
    
    nice命令设置进程运行优先级
    进程优先级一般为-20~19,-20为最高优先级,修改进程的nice值可以修改进程的优先级。系统进程的优先级默认为0
    语法:nice [-n] [command] [arguments]
    其中,-n表示进程的优先级,command表示要执行的命令,arguments是command所带的参数
    eg: nice --12 processname
    
    renice命令修改进程的优先级
    该命令只有root用户能使用
    语法:renice [优先级] [-g<进程群组名称>...] [-p<进程号>...] [-u<用户名称>...]
    eg: renice -12 76864
    
    kill命令终止进程
    语法:kill [-signal] PID
    signal为信号的值
    终止进程(kill不带参数时,发送的即为此信号)
    kill命令的常用方法:
    kill -STOP 4385   #停止4385进程,但不退出
    kill -CONT 4385  #重新开始4385进程
    kill -9 4385      #强制终止4385进程
    killall命令终止所有同名进程
    语法:killall [-signal] [进程名称]
    eg: killall -9 processname   #终止系统中所有的名为processname的进程
    

    mv #移动目录或文件,例如:# mv /data /root

    rm -f #删除文件或目录,-f 强制删除,-fr 删除目录

    生产场景尽量不要使用rm,如果非要用,一定要先cp备份
    替代方法:
    mv 移动至临时目录。回收站。
    find删除:find /root/data/ -type f -exec rm -f {} \;
              find /root/data/ -type f|xargs rm -f
              find /root/data/ -type f ! -name “regan.txt” |xargs rm -f
    rmdir   #删除空目录
    

    find [路径] -name [关键字] :按名字匹配关键字在路径下查找

    find  ./data/ -type f -name “test1.text" | xargs sed -i ‘s#oldboy#oldgirl#g’
    将data目录下的所有test1.txt文件找出来,并将其中的oldboy替换为oldgirl
    
    find /root/data/ -type f -a -type d -name “*.txt”
    

    sed*****(stream editor) #擅长取行

    sed ‘/oldboy/’ regan.txt 获取含有oldboy的行
    
    sed -n ‘/oldboy/d’ regan.txt  输出除了old以外的内容
                            -n取消sed的默认输出
                            -i 改变文件内容
                            d删除,p打印 
    sed -n ‘20,30p’ regan.txt    取第20到30行并打印
    

    sed替换*

    sed -i ‘s#oldboy#oldgirl#g’ regan.txt 将oldboy替换为oldgirl
    s 代表查找替换;
    g(global)对所有内容中符合条件的内容替换;-
    i 改文件内容
    # 分隔符,可用其他符号替换
    

    awk***** 擅长取列

    awk -F ‘:’ ‘{print $2}’ 文件   #$2表示第二列,-F指定以:分割
    awk ‘{if(NR<31 && NR>19)  printf  $2 “\n”}’  regan.txt
    NR代表行号,\n换行
    $NF代表最后一列
    $0 表示整行
    

    grep #擅长过滤,把想要的和不想要的分离开

    grep -ir “Ubuntu” /usr  : 在/usr下递归查找内容包括Ubuntu关键字的文件,忽略大小写
    grep “oldboy” regan.txt   #获取包含oldboy的所有行
    grep -v “oldboy” regan.txt  #获取除了oldboy以外的所有行
     -B 显示匹配行的前n行
     -A 显示匹配行的后n行
     -C 显示匹配行的前后各n行
     -o 只显示匹配到的内容本身,而不是整行
     -i 不区分大小写
     -E 过滤多个字符串 ,例:grep -E “3306|1521” /etc/services
     例:grep -B 30 -A 10 regan.txt  显示regan.txt的第20到30行
    

    yum #linux里的包管理器,帮助解决依赖问题

    yum install tree(包名)-y  #下载tree包,然后调用rpm命令安装tree包
    如果需要依赖包,将自动下载安装
    

    rpm -ivh #安装、显示输出、以可读方式展示

    rpm -ivh 包名.rpm #提前下载好,最大问题,依赖问题不好解决

    rpm -qa tree #查看tree包的状态

    tree #显示目录树结构

    alias #查看以及定义别名

    alias oldboy=’echo “i am regan”’
    别名生效的位置:针对root用户:/root/.bashrc
    所有用户生效:/etc/bashrc或/etc/profile定义
    使别名生效:source /etc/profiles
    
    unalias 命令名   #取消别名
    \cp 或 全路径 cp  #在取消别名的条件下复制
    

    seq -s “=” m p n ==打印从数字m到n步长为p的序列
    -s “=” #用=连接序列。例:seq -s “=” 1 2 10 #输出为1=3=5=7=9

    链接:硬链接和软链接

    硬链接利用Linux为每个文件分配的物理编号,即iNode建立的,因此硬链接不能跨越文件系统。软链接是利用文件的路径名建立链接。
    ln sourcefile targetfile  : 创建一个targetfile文件,其通过软链接指向sourcefule
    

    压缩和解压缩:

    zip [参数] [压缩文件名.zip] [被压缩文件列表]
    unzip [参数] [压缩文件名.zip]
    uzip 包名.zip     解压包
    tar [参数] [压缩文件名] [被压缩文件列表]    #tar的优势在于,将归档和压缩融合在一起同时完成
    tar -zxvf 包名.tar.gz   解压包
    

    dpkg

    dpkg -l krb5*   显示所有安装包,名字以krb开头
    

    定时任务

    ①上传可执行jar包,并编写执行脚本:
    #!/bin/bash 
    cd /home/hadoop/Timing_plan/
    /home/hadoop/jdk8/bin/java -jar MongodbToHBase_content_update.jar
    ②编辑crontab文件
    00 19   * * *   hadoop  /home/hadoop/Timing_plan/MongodbToHBase_content_update.sh
    ③重启定时服务
    /etc/init.d/cron restart
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值