Ubuntu_shell命令

来源:互联网 发布:常德seo 编辑:程序博客网 时间:2024/05/22 01:48
  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. 命令详解

    # 为超级管理员     ; $ 为普通用户      ;  清空屏幕:clearpwd:查看当前用户所在的路径              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 [参数] [用户名]  显示用户idchfn [参数] [用户名]  修改用户个人信息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 /homels -l    ==list  #显示文件;-l 长格式显示;-d 显示目录mkdir -p #创建目录,例如:# mkdir data,递归创建目录和文件du -h --max-depth=1   # 查看当前目录下所有文件的大小

    文件:

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

    文件内容:

    wc [参数] [文件名]  :  统计文件的字数、字节数、行数等信息comm [参数] [文件1] [文件2]  :  逐行比较两个已排序文件的差异,并将结果显示出来diff [参数] [文件1] [文件2] :逐行比较两个文件的异同处、用户及权限管理vimdiff txt1 txt2 #比较两个文件的区别,并高亮显示less(=cat)   按屏(空格,pgup,pgdn)或行(回车)查看内容 more    按屏(空格)或行(回车)查看内容(不能向上翻)head   #取文件的前n行,默认前10行,取前三行 -n 3,简写是-3tail   #取文件的最后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 processnamerenice命令修改进程的优先级该命令只有root用户能使用语法:renice [优先级] [-g<进程群组名称>...] [-p<进程号>...] [-u<用户名称>...]eg: renice -12 76864kill命令终止进程语法:kill [-signal] PIDsignal为信号的值终止进程(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 -frmdir   #删除空目录

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

    find  ./data/ -type f -name “test1.text" | xargs sed -i ‘s#oldboy#oldgirl#g’将data目录下的所有test1.txt文件找出来,并将其中的oldboy替换为oldgirlfind /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替换为oldgirls 代表查找替换;g(global)对所有内容中符合条件的内容替换;-i 改文件内容# 分隔符,可用其他符号替换

    awk***** 擅长取列

    awk -F ‘:’ ‘{print $2}’ 文件   #$2表示第二列,-F指定以:分割awk ‘{if(NR<31 && NR>19)  printf  $2 “\n”}’  regan.txtNR代表行号,\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/profilesunalias 命令名   #取消别名\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
原创粉丝点击