zoukankan      html  css  js  c++  java
  • linux常用命令_1

     linux中命令格式是什么?

           命令 [参数选项] [文件或路径]

                  中括号表示可选,命令的参数与路径文件可选

                  参数选择表示一个命令的不同功能

           命令 和 参数选项 中必有一空格,多个参数连在一起写

      几乎所有命令都可以直接接文件

    什么是相对路径和绝对路径?

           绝对路径: 从头开始的路径,对于window是从盘符开始的路径,对于linux为以 / 开始的目录

                  如: /etc   /root/data

           相对路径: 不从头开始,不从根开始的路径

                  如: data/

    mkdir     创建目录

    mkdir /data    # 在根目录下创建data目录

      -p 递归创建目录

    mkdir -p /data/a/b    # 在/data/目录下创建a目录,再在a目录下创建b目录

    ls   列表目录文件

    ls /     # 列根目录下内容

      -l(long)长格式,-d(directorys)查看目录

    ls -l /root    # 查看 /root目录下未隐藏的文件和目录长信息
    ls -ld /root    # 查看 /root 目录本身长信息

      -a    查询包含隐藏的所有文件

    ls -a /root    # 查看 /root 目录下所以文件和目录信息,包括以点开头的隐藏文件信息

      -t     按修改时间排序

    ls -lt /root    # 查看 /root 目录下,最新修改时间的文件在最上面

      -r     按创建时间倒序排序,翻转排序,最新的放在下边

    ls -lrt /root    # 查看 /root 目录下,通过 r ,把最新修改时间的文件在放最下面,翻转

      --color=auto         ls显示颜色,或grep过滤满足条件添加颜色

    grep --color=auto 3306 /etc/services    # 对查询结果关键字添加标记颜色

      -h    人类可读

    ls -lh /root    # 最直观感受,文件大小换算成k为单位

      -i     文件i节点

    ls -ihl    # 最直观每行结果前面多个一串数字

      --time-style=long-iso   规范时间显示

    ls -lh --time-style=long-iso /root    # 最直观感受是时间的顺序,按年月日时分格式化了

    cd          切换目录路径 

    cd ~            # 回到用户家目录
    cd /etc       # 切换到/etc 目录下
    cd              # 不加 - 默认也是回到家目录
    cd .    # 返回当前目录
    cd ..    # 返回上级目录

    pwd        打印当前所在目录的绝对路径

    touch     创建文件或更新时间戳,如果文件存在,把该文件更新到当前时间戳

    touch /data/hello.txt             # 绝对路径下,在 /data/目录下创建一个hello.txt文件
    touch data/hello.txt               # 相对路径下,在当前目录下data/目录中创建一个hello.txt文件
    touch /data/hello.txt data/hello.txt    # 以上两个文件可以同时创建
    

    vi     编辑文件,没有就新建,相当于windows记事本

      

                  初始进入命令模式,按i 或 a 进入编辑模式,按esc退出编辑模式,按 : wq 退出vi

    vim        复杂编辑器           写脚本(shell, python)

    echo      打印 

    echo 'My name is BeiMenChuiXue'

      echo 联合 > 和 >> 使用,分别是输出重定向和输出追加重定向

    echo 'My name is BeiMenChuiXue' > Name.txt        # 会清空 Name.txt内容添加 My name is BeiMenChuiXue内容进去
    echo 'My name is BeiMenChuiXue' >> Name.txt    # 把 My name is BeiMenChuiXue 这短字符追加到 Name.txt文件内容后面

    cat         浏览文件内容       联合 重定向 使用,往文件内写入内容

      -n 显示行号

    seq 1 100 > Name.txt    # 写入数据
    cat Name.txt        # 浏览内容
    cat -n Name.txt    # 显示内容行号

       多行追加,用户写脚本

    cat>>get_html.py<<jia
    import requests
    url = 'https://www.baidu.com/'
    res = requests.get(url=url)
    if res.status_code == 200:
        print 'OK'
    else:
        print "Faile"
    print "done!"
    > jia
    
    # 写了一段python脚本代码,获取百度首页网页,jia字符是开始和结束标记,是成对的任意字符
    

      

    xargs     从标准输入获取内容创建和执行命令

       -n    按 多少组字符分行,每组字符以空格分开

    echo stu{01..20} |xargs -n 5        # 把 stu01 ~ stu20 按5个词组分组,占一行

    有哪些特殊符号?

           >     输出重定向:       把前面输出的内容输入到后边的文件中,会清空原文件内容

    >Name.txt    # 清空Name.txt 内容

           >>  输出追加重定向 把前面输出的东西追加输入到后边的文件文件尾部,不会清空文件内容

    seq 100 >> Name.txt    # 向 Name.txt 追加 1 到 100 个数字字符

           <     输入重定向    改变命令的输入,后面指定输入内容,前面跟文件名

    xargs -n 5 < Name.txt    # 把 Name.txt的内容当做输入给xargs命令

           <<  追加输入重定向 后面跟字符串,用来表示”输入结束”

           2>   错误重定向

    ech 'hell word' 2> error.txt    # 错误信息写入error.txt文件

           2>> 追加错误重定向

           说明:

        1. 箭头的指向就是数据的流向

        2. 0 标准输入    < 或 << 数据流从右向左

        3. 1 标准输出    > 或 > 数据从左向右

        4. 2 错误输出    2> 或 2>> 错误数据输出,数据量从左到右

      .     当前目录

      ..    上一级目录

      /     根目录

      |     管道,上一个命令的结果作为下一个命令处理对象

      ;      分割两个命令,并没有因果关系

      {}     创建多个或指定文化或目录

    mkdir /data/{test1, test2}/data.txt -p    # 同时/data目录下创建 test1, test2两个目录同时这两个目录下包含 data.txt 文件
    touch {1..10}.txt   # 当前目录下创建 1 ~10 个文件,并按 1.txt~10.txt 创建

      !        调用最近使用的命令, 取反

           !m           查询最近使用的以m开头的命令

           !33           执行history查询出来33指定的命令

    find /oldboy -type f ! -name ‘test.sh’         # 取oldboy目录下,名字非test.sh的文件

      !!      调用最近使用的命名

             ! 和 !! 联合history使用

            当前用户的家目录

      -        上一次所在目录

             单个任意字符

      .*       代表所有字符

              转义字符,把带有特殊含义的字符还原成原原本本的字符

      正则表达式只适用与linux三剑客(awk sed grep), 普通命令只适用通配符

    如何把正确的和错误的都放入同一个文件?

           2>&1      或  &>          正确的错误都放入同一个文件

    cho oldboy > oldboy.txt 2>&1        # 错误信息写入oldboy.txt
    echo oldboy &> oldboy.txt             # 正确信息写入oldboy.txt    

           2>>&1    或 &>>   追加

    echo hhhhhh &>> oldboy.txt            # 正确追加
    cho hhhhhh &>> oldboy.txt             #  错误追加

    cp   拷贝文件或目录,不加参数只能拷贝文件

    cp Name.txt /tmp/    # 把当前目录下 Name.txt 拷贝到 /tmp目录下

      -p    档案属性一起复制过去

    cp -p Name.txt /tmp/    # 复制文件时间把文件属性也一同带过去

      -r     递归复制目录

    cp -r /root/ /tmp/    # 把 /root 目录,拷贝到 /tmp 目录下

      -a   相当于-pdr

      -d  复制连接文件,不复制连接文件指向的文件

    cp -d to_link /tmp/    # 复制软链接到 /tmp 目录下

    mv  移动或修改名     移动时候,目录最后一个斜杠不要加

    mv /data /tmp        # 把data目录移到tmp目录下
    mv boy.txt girl.txt         # 把boy.txt文件名改成girl.txt
    

    rm  删除(少用和谨慎使用,最好不要使用)     一旦删除,无法恢复,删除前先备份

      -f 强制删除 

    rm -f /root/Name.txt       # 强制删除 Name.txt 文件

      -r 删除目录

    rm -rf /data    # 强制删除 /data 目录
    

    find  查找            最重要命令之一

           -type f / d       f 表示文件, d表示目录, c字符类型,b(block)

           -name 指明名字

           -exec 命令 {} .    对查询结果进行处理

    find /root -type f -name ‘Name.txt’ -exec rm {} ;        #从 /root目录下查询名字为 Name.txt 的文件,对查询结果执行rm命名    

           -mtime 时间数字

                  +7 七天以前

                  7 第七天

                  -7 最近7天

           -o           or          取或

           -a           and        取并

    find /data -type f -name ‘*.txt’ |xargs rm -f         # 从 data目录下查询所有以.txt结尾的文件,通过|xargs组成一行命名,执行rm -f    

    grep  过滤内容   非常重要,三剑客排行老三

      -v 排除内容

    grep -v 'Word' Name.txt    # 查询 Name.txt 文件内容,不包含 Word的其他行内容

      -E    表示可以通过搜索多个字符,以 | 隔开

    grep -E “3306 | 1521” /etc/service

      -i     不区分大小写

    grep -iv 'word' Name.txt    # i不区分大小写

    head      读一个文件前n行内容,默认前10行

    head -1 Name.txt    # 查看 Name.txt 文件中内容第一行

    tail          读一个文件后n行数据,默认10行

    tail -1 Name.txt    # 读取文件最后一行内容

    yum       安装软件包

      -y 直接装

    yum install -y tree    # 安装 tree 软件包

    tree        展示目录树结构

      -L 指定展现几级目录

    tree -L 1 /root/    # 显示 /root 目录下,1层目录结构

      -d    表示只查看目录

    tree -Ld 1 /root/    # 只查看 /root 下只含有 目录 的一层目录结构

    alias       别名

      作用: 给危险命令加一些保护参数,防止误错作,把复杂命令改成简单命令

      直接输入 alias ,查看已经设置好的别名信息

    alias py2=python    # 临时把python命令改为py2,系统重启生效

    unalias  取消别名

    unalias py2    # 取消py2对应的命令

      如何做到永久生效?

        按格式写入这两个文件

                         .bashrc         当前用户生效

                         /etc/profile     所有用户生效

    seq  打印序列

      -s 指定分隔符

    seq -s" " 1 20    # 打印1 到 20 的字符,中间以空格隔开
    seq -s" " 1 2 20    # 间隔 2 打印 1到20 字符,中间以空格隔开

    sed  流编辑器,实现对文件的增删改查替换,三剑客排名第二

      -n 取消默认输出,按规则打印想要内容

    seq 1 100 > Name.txt    # 写入数据
    sed -n '1,2,20'p Name.txt    # 打印 Name.txt 中 间隔2行从第1行到 20行内容

      p 表示打印内容

    sed -n '$'p Name.txt    # 打印最后一行内容

      s 查找并替换,与g联合使用

    sed "s#99#new#g" Name.txt    # 找出Name.txt所有内容 含有 99 字符的全部替换成new字符,打印结果

      g 全局匹配替换

      -i 修改内容

    sed -i "s#99#new#g" Name.txt    # 找出Name.txt所有内容 含有 99 字符的全部替换成new字符,更改生效

    awk  过滤、输出内容一门语言

      NR 代表行号, $1 第一列, $2第二列,依次轮推,但是$0表示一行,$NF最后一列

    seq 1 10 > seq.txt    # 写入数据
    awk 'NR>1&&NR<5' seq.txt    # 查找seq.txt内容中 2 - 4行内容

          -F 指定分隔符

    echo '1:2:3:4:5:6:7:8:9'> awk.test    # 写入内容
    awk -F ':' '{print $1}' awk.test    # 打印以 : 隔开的第一个内容

    man       所有命令的使用方法,帮助文档

    man cp    # 查看cp命令详情使用方法

                  相似: --help, 有些命令时bash内置命令,不能通过man查询,也看不到命令位

    date       查看时间

      -s 更改时间

    date -s '2017/11/21 15:43'    # 更改系统时间,格式为:年/月/日/ 时:分,

      +  格式化时间

        %H         小时

        %M        分钟

        %S         秒

        %X         时分秒

        %F         年-月-日

        %w         一周第几天

    date +%Y-%m-%d %H:%M:%S		年-月-日 时:分:秒
    

        企业应用:

          day        天

          Hour      时

          Min        分

    tar cvzf date_`date +%F`.tar.gz date/	# 一般接在文件名后面
    tar zcvf data_$(date +%F).tar.gz date/	# 同上
    date +%F -d '-2day'			# 求前天的时间
    date +%F -d '-24Hour '			# 24小时以前
    date +%F %X -d '+4Hour'		# 4小时以后
    

      

    which  查询命令所在路径

    which cp    # 查询cp命令所在决绝路径,一些内置bash命令无法查找到位置

    less        按页显示文件内容,可以按 n或enter 一行一行显示出来, 按 空格 一页一样显示,按b可以回退

    chkconfig  设置开机自启动服务

      -- list       查询服务启动级别,默认全部,指定服务名显示某服务启动级别

    chkconfig --list sshd           # 查询sshd服务的开机自启动对应级别

      -- level    设置服务启动级别

           on/off       开启或关闭服务,默认2345级别

    chkconfig crond off    #关闭 crond 服务
    chkconfig crond on    # 开启 crond 服务
    chkconfig --list | grep '3:on'    # 查询3级别自启的服务

    dumpe2fs     查询文件系统内部信息(元数据)

    dumpe2fs /dev/sda1 | grep -i ‘inode size’       #  查询sda1分区inode大小

    df  查询磁盘信息

           -i 查询分区inode使用节点,剩余inode

    df -i    # 查询 inode 使用情况

           -h 查询磁盘剩余空间(Block)

    df -h    # 查询 block 使用情况

           磁盘空间满了,有两项参数指定,inode是否满了,block是否满了,任何一项满了,都无法再存放数据了

           磁盘满的一个特征: (no space left on device)

    file  查询文件类型

    file Name.txt /root    # 查询 Name.txt文件的文件类型 和 /root 目录的文件类型

    last  查询用户登录信息,对应 /var/log/wtmp文件

    lastlog  显示最近用户是否登录过,对应/var/log/lastlog文件

  • 相关阅读:
    hibernate对应的annocation版本
    Struts 2 OGNL
    Struts2的Stack Context和ValueStack
    Struts2中的OGNL详解
    struts2中根对象以及ognl .
    在Struts 2中实现IoC
    Struts2的属性驱动与模型驱动的区别
    Struts2的模型驱动
    Java中线程的锁和数据库中的事务隔离级别
    为什么socket编程要用到多线程
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7872620.html
Copyright © 2011-2022 走看看