zoukankan      html  css  js  c++  java
  • Linux 命令总结

    Linux 命令总结

    我们需要掌握Linux命令150个,常用的也就80个。

    命令 --help 命令的简单帮助
    man ==命令的复杂帮助
    help ==命令的帮助(bash的内置命令帮助)
    ls ==list 查看目录列表,-l(long),-d(directory),-F给不同文件类型结尾加标识,-p给目录加斜线,-r reverse反转排序,-t按修改时间排序
    --color=auto 给输出的不同类型文件加不同颜色
    -a 显示隐藏文件
    --time-style=long-iso,显示友好的长格式时间。

    mkdir ==make directory 作用是创建目录,例如:mkdir /data -p 递归创建目录。
    cd ==change directory 作用切换路径,例如:cd /
    touch ==摸一下的意思,作用是创建文件,例如:touch oldboy.txt
    vi ==编辑器,相当于记事本,有编辑功能,但较弱。
    vim ==复杂编辑器或者说高级编辑器,相当于EmEditor,editplus,notepad++
    echo ==打印输出内容,配合“>或>>”可以为文件覆盖及追加内容
    -n不换行输出;-e解析转义字符 tab 回车  退格
    echo "oldboy
    oldgirl" >oldboy.txt
    cat ==查看文件内容,-n查看行号
    特殊用法:增加多行内容
    cat >>/data/oldboy.txt<<EOF
    I am studying linux.
    EOF
    EOF要成对出现,EOF可以被任意成对内容替换。
    cp ==copy 复制命令,例如:cp oldboy.txt /tmp/
    -r:递归,用于复制目录;-p:保持属性。
    -a:相当于 -pdr
    cp'cp -i' -i 需要确认

    mv ==移动目录或文件,例:mv /data /root/
    pwd ==print work directory 查看当前用户所在的路径
    rm ==remove 删除文件或目录;强制删除 -f ,删除目录 -r
    生产场景尽量不要使用rm,如果非要用,一定要先cp等备份。
    替代方法:mv移动到一个临时目录。相当于回收站。
    find删除
    find /root/data/ -type f -exec rm -f {} ;
    find /root/data/ -type f|xargs rm -f
    find***** ==查找-type 按文件类型查找;-name 按照名字查找,查找的内容最好用双引号括起来;! 取反。-a(and)并且,-o(or)或。-maxdepth [数字] 查找深度,-mtime 修改时间
    find /oldboy -maxdepth 1 -type d ! -name "oldboy"

    head ==头部,取文件的前N行,不接参数默认前10行;
    取前三行-n 3,简写就是-3。
    tail ==尾巴,取文件的最后N行,不接参数默认前10行;
    取最后三行-n 3,简写就是-3。-f跟踪一个文件尾部的实时变化。

    awk***** ==一门语言,可以过滤内容(擅长取列),打印,删除。Linux三剑客 老大
    awk -F "分隔符号" '{print $1}' 文件
    <==$1第一列,$2第二列...$NF最后一列,$(NF-1)倒数第二列
    例:awk '{if(NR<31 && NR>19) printf $1" "}' test.txt
    NR代表行号,&&(and)并且, 回车换行,$0 表示整行
    awk多分隔符用法:
    [root@oldboy-test ~]# cat oldboy.txt
    I am oldboy,myqq is 49000448
    [root@oldboy oldboy]# awk -F "[, ]" '{print $3" "$6}' oldboy.txt
    oldboy 49000448

    grep***** ==擅长过滤器,把想要的或者不想要的分离开。-v 排除。Linux三剑客 老三。
    -i 不区分大小写,-E 过滤多个字符串,-o 输出精确匹配的字符而不是默认的整行。
    --color=auto 给匹配到的字符串加颜色(不是整行),-n 打印匹配内容行的行号
    #Context control:
    -B 除了显示匹配的一行之外,并显示该行之前的num行
    -A 除了显示匹配的一行之外,并显示该行之后的num行
    -C 除了显示匹配的一行之外,并显示该行之前后各num行
    grep "string" -B 10 test.txt

    grep一般常用参数:
    -a:在二进制文件中,以文本文件的方式搜索数据
    -c:计算找到 ’搜索字符串’ 的次数
    -o:仅显示出匹配regexp的内容(用于统计出现在文中的次数)
    -i*****:忽略大小写的不同,所以大小写视为相同*****
    -n*****:在行首显示匹配内容行的行号*****
    -v*****:反向选择,即不显示 ‘搜索字符串’ 内容的那一行*****
    -E*****:扩展的grep,即egrep*****
    --color=auto***:以特定颜色高亮显示匹配关键字(不是整行)***
    #提示: -i -v 为常用参数。
    -A:After的意思,显示匹配字符串及其后n行的数据
    -B:beforce的意思,显示匹配字符串及其前n行的数据
    -C:显示匹配字符串及其前后各num行的数据

    sed***** ==(stream editor)擅长取行、替换 Linux三剑客 老二。
    过滤:sed -n '/过滤的内容/处理的命令' 文件
    -n 取消sed的默认输出
    -i 改变文件内容。
    处理的命令:p print打印;d delete删除
    例子:
    sed '/oldboy/d' test.txt
    sed -n '/oldboy/p' test.txt
    sed替换:*****
    sed -i 's#oldboy#oldgirl#g' test.txt
    s 常说的查找并替换,用一个字符串替换成另一个
    g (global)与s联合使用时,表示对当前行全局替换(与下一个g意义不同)
    -i 修改文件内容
    "#"是分隔符,可以用 / @ 等替换
    sed -r 's#(.*)#I am 1#g' test.txt
    = 表示行号
    sed '/$/a\n' test.txt 可以在文件的每行末尾添加一个回车
    sed '$aeof' test.txt 可以在文件的末尾添加'eof'

    yum ==Linux里的包管理器,yum帮助解决依赖问题。
    yum update -y <==upgrade,windows打补丁。
    例子:yum install tree(包名) -y
    下载tree包,然后调用rpm命令安装tree包
    如果需要依赖包,帮你下载帮你提前安装。
    yum grouplist 里选包组,然后yum groupinstall "包组" -y
    yum search 关键字或 yum search all
    yum remove tree -y <==不要用
    remove or erase
    Are used to remove the specified packages from the system as
    well as removing any packages which depend on the package being
    removed.


    rpm ==安装参数 -i install -v verify -h hash ;
    -ivh(安装、显示输出、人类可读展示)
    例子:rpm -ivh 包名.rpm(提前下载好)
    最大问题,依赖问题不好解决:安装a提示需要b,安装b提示需要c...
    [root@oldboy66-23 ~]# rpm -qa tree <== -q query -a all
    tree-1.5.3-3.el6.x86_64
    tree ==显示目录树结构 -L 层数,-d 目录

    alias ==查看以及定义别名(外号、小名)
    例子:
    oldboy='echo "I am oldboy linux."'
    alias rm='echo "rm can not be used,pls use mv"'
    别名生效的位置:针对root用户:/root/.bashrc
    所有用户都生效:/etc/bashrc或/etc/profile定义
    生效source /etc/profile
    别名的作用:
    1)通过给危险命令加一些保护参数,防止人为误操作。
    2)把很多复杂的字符串或命令变成一个简单的字符串或命令。
    unalias ==取消别名


    seq == sequence=seq序列 -s 指定序列的分隔符;-w
    Usage: seq [OPTION]... LAST
    or: seq [OPTION]... FIRST LAST
    or: seq [OPTION]... FIRST INCREMENT LAST
    history ==打印用户操作的历史记录。-c清除所有记录,-d清除指定记录
    hostname ==查看主机名(uname -n)
    uname ==打印系统信息 -r内核;-m32还是64位;-n主机名;-a所有

    su ==用户角色切换;su - 用户名、-相当于是一个参数,切换用户环境变量
    从普通用户到root,需要输入root密码。从root到普通用户无需密码
    普通用户 大臣,root 皇帝。
    getenforce ==检查selinux状态
    setenforce ==设置SELINUX状态 1启用 0警告、不启用
    runlevel ==查看当前系统运行级别
    init ==切换运行级别,后面接对应级别的数字
    init 5 === startx 切换桌面环境。需桌面软件包
    chkconfig ==设定开机自启动服务
    diff ==比较,接两个文件。
    vimdiff ==高级比较,高亮显示两个文件内容区别
    which ==查找命令所在路径,搜索范围来自全局环境PATH变量对应的路径。
    history ==显示历史记录,-c清除所有记录,-d清除指定记录
    whereis ==查找相关信息 -b查二进制命令
    locate ==从数据库里查相关信息,新命令需提前updatedb更新数据库
    ulimit ==-SHn -a Modify shell resource limits
    wget ==下载 wget http://url
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 下载到指定路径改名
    --spider 爬虫,检查网站是不是好的,不会下载只是检查
    -T seconds --timeout=seconds 超时时间。
    --tries=2 指定重试的次数
    -q --quiet 关闭输出
    visudo ==编辑sudo配置文件(相当于vi /etc/sudoers)-c 检查语法
    sudo ==调兵虎符,sudo配置文件授权之后,执行命令时候需要命令前带sudo
    ifup ==启动网卡
    ifdown ==停止网卡

    fsck ==-A磁盘检查(不要检查好磁盘),卸载的状态检查。
    dmesg ==内核打印的错误信息,例如硬件故障警告
    tar ==打包(zcvf),解包(zxvf、xf),查看包内容(tf),-C指定路径解包。
    --exclude和-X 排除打包
    --exclude=opt/test.txt <==排除opt/test.txt
    -X, --exclude-from=FILE
    exclude patterns listed in FILE
    tar zcvfX oldboy.tar.gz paichu.txt ./oldboy <==使用X参数按文件内容排除打包,排除paichu.txt文件的内容。
    -P 使用绝对路径打包(危险),-j bzip包的解压缩。
    -C 指定路径解压 tar zxvf oldboy.tar.gz -C /tmp/ <==指定/tmp目录解压

    gzip unzip zip ==压缩解压缩
    cut ==切割,简单的取列命令 -d指定分隔符,-f数字 取第几列。-f3,6
    -c按字符取。
    [root@oldboy-test ~]# cat oldboy.txt
    I am oldboy myqq is 49000448
    [root@oldboy-test ~]# cut -c 6-12,21- oldboy.txt
    oldboy 49000448

    wc ==打印行号,字节数等 -l 行数(企业案例)
    有关使用wc命令的工作实战案例可参考:
    http://oldboy.blog.51cto.com/2561410/577227


    stat == - display file or file system status
    chmod == change mode改变文件权限
    useradd ==添加用户 -u 指定uid ,-g 指定所属组 ,-s 指定登录shell ,-M 取消家目录
    -e 指定用户过期时间
    usermod ==修改用户 -u 指定uid ,-g 指定所属组 ,-s 指定登录shell
    -e 指定用户过期时间
    chage ==查看及修改用户密码相关信息 -l 查看,-E 修改帐号过期时间
    passwd ==修改用户密码 --stdin 非交互式设置密码
    who ==show who is logged on
    w ==show who is logged on and what they are doing
    whoami ==查看当前用户
    uniq ==字符串去重 -c计数
    相关文件:老男孩教育uniq命令.txt
    sort ==字符串排序 -n,-r,-t,-k,-u(-u 一般用不到,很少用到)
    相关文件:sort 排序命令-k参数小技巧总结.txt

    #############磁盘管理##############
    dumpe2fs == - dump ext2/ext3/ext4 filesystem information
    fdisk -l ==查看磁盘及分区信息,fdisk /dev/sdb *****
    parted ==一般用于大于2T的磁盘分区 ***
    partprobe ==通知系统分区表的变化 ***
    mkfs ==格式化磁盘分区 mkfs -t ext4 -I inodesize -b blocksize ***
    tune2fs ==调整文件系统参数 tune2fs -c -1 /dev/sdb1
    mount ==挂载 mount -t ext4 -o loop,noatime,noexec /opt/sdb1 /mnt *****
    df -h ==以人类可读的信息查看磁盘挂载信息,-i查看挂载的磁盘inode使用情况 *****
    du -sh ==查看目录和文件大小 ****
    dd == ***
    e2fsck ==check a Linux ext2/ext3/ext4 file system
    resize2fs ==ext2/ext3/ext4 file system resizer

    free -m ==查看内存大小(buffer,cache);看“-/+ buffers/cache:”的这一行 *****
    fsck ==磁盘检查 fsck -C -f -t ext3 /dev/sda6 ***
    check and repair a Linux file system
    卸载状态检查,没问题的分区不要操作。
    fsck -y /dev/sda1
    -y 对文件系统做一些具体的检查 For some filesystem-specific checkers
    -A Walk through the /etc/fstab file and try to check all file sys-
    tems in one run. This option is typically used from the /etc/rc
    system initialization file, instead of multiple commands for
    checking a single file system.
    (-C 显示进度条,-t 指定文件系统类型)
    #############磁盘管理##############

    lsattr ==查看特殊属性。
    chattr ==设置特殊属性,例如:+i 不可变

    解析命令:
    方法:反引号``或$()
    tar zcvf etc-`date +%F`.tar.gz /etc
    tar zcvf oldboy-$(date +%F).tar.gz /etc

    暂时不用理的命令
    ps
    locate
    whereis
    export
    netstat(ss)
    ifconfig
    source
    ntpdate
    less* ==按屏(空格,page up/page down)或按行(回车)查看文件
    more ==按屏(空格)或按行(回车)查看文件(不能向上翻)


    快捷键:
    TAB 命令、路径补全


    特殊字符命令:
    >或1> 重定向,会清除文件里所有以前数据,增加新数据。
    >>或1>> 追加重定向,文件结尾加入内容,不会删除已有的文件内容。
    <0 输入重定向
    <<0 追加输入重定向
    2> 错误重定向
    2>> 错误追加重定向
    ===============================
    1.标准输入(stdin): 代码为0,使用<或<< 数据流向从右向左
    2.正常输出(stdout):代码为1,使用>或>> 数据流向从左向右
    3.错误输出(stderr):代码为2,使用2>或2>>
    箭头的指向就是数据的流向。
    下面的3种方法是等价的
    /dev/null 空设备 黑洞
    1) 1>/dev/null 2>/dev/null
    2) 1>/dev/null 2>&1 *****用得最多的
    3) &>/dev/null

    转义符;让一个有意义的字符,脱掉马甲。.代表点号。
    .. 相对路径,表示当前目录的上一级目录,例如:/mnt/oldboy,mnt就是oldboy的上级目录。
    . 相对路径,表示当前目录,即当前命令行的目录。以点开头的文件代表隐藏文件。
    | 管道(把前一个命令结果的输出交给后一个程序继续处理)
    ~ 用户的家目录,针对root环境 ~就代表/root。
    {} 输出字符序列或者数字序列
    ! ......

    基础正则表达式:一些特殊的符号 表示一些特殊的作用和功能
    定义好的,不能改变。
    . 单个任意字符
    * 重复前面任意0个或多个字符
    .* 匹配任意字符
    sed -i 's#(可以用正则匹配)#1#g' oldboy.txt
    把前面正则匹配的括号内的结果,在后面用1取出来操作。
    ^ 表示以...开头,^oldboy 以oldboy开头
    $ 表示以...结尾,oldboy$ 以oldboy结尾


    正则表达式实战举例:
    1)^word 搜索以word开头的。vi ^一行的开头
    2)word$ 搜索以word结尾的。vi $一行的末尾
    3)^$ 表示空行,能理解么?
    4). 代表且只能代表任意一个字符。
    5) 例 . 就只代表点本身,转义符号,让有着特殊身份意义的字符,脱掉马甲,还原原形。$。
    6)* 例 s* 重复0个或多个前面的一个字符
    7).* 匹配所有字符。延伸 ^.* 以任意多个字符开头。 .*$ 以任意多个字符结尾
    8)[abc] 匹配字符集合内的任意一个字符[a-zA-Z],[0-9]。
    9)[^abc] 匹配不包含^后的任意字符的内容。中括号里的^为取反,注意和以..开头区别。
    10)a{n,m} 重复n到m次,前一个重复的字符。如果用egrep/sed -r可以去掉转义符。
    11){n,} 重复至少n次,前一个重复的字符。如果用egrep/sed -r可以去掉转义符。
    12){n} 重复n次,前一个重复的字符。如果用egrep/sed -r可以去掉转义符。
    13){,m} ??????
    注意:egrep,grep -E或sed -r过滤一般特殊字符可以不转义。


    环境变量:
    PATH 系统路径变量,执行ls,cp等非内置命令时,系统会查找PATH里对应的路径是否有,如果没有就报告找不到该命令。
    当执行which cp来查看命令所在路径的时候,也是从PATH变量去搜索。
    临时修改:export PATH="/tmp:$PATH" ,永久修改前面临时修改的命令放到/etc/profile下,使用source /etc/profile使得修改立刻生效。


    相对路径:
    不从/开始,而是从当前目录开始。例如:data/,mnt/oldboy

    绝对路径:
    从/开始的目录,就叫绝对路径。例如:/data/,/mnt/oldboy


    bash内置命令:用help命令查帮助

  • 相关阅读:
    Linux菜鸟级重点
    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
    搭建PHP开发环境
    Struts+Hibernate+Spring实现用户登录功能
    Struts2整合Hibernate3实现用户登录功能
    决战JS(二)
    决战JS
    lightoj-1098
    lightoj-1072
    lightoj-1094 Farthest Nodes in a Tree(求树的直径)
  • 原文地址:https://www.cnblogs.com/sunday294/p/6907974.html
Copyright © 2011-2022 走看看