美文网首页
linux 基本命令的使用

linux 基本命令的使用

作者: 一桥长书 | 来源:发表于2017-07-23 17:28 被阅读0次

    1 实现root开机用户的自动登录

    • 1 编辑/etc/gdm/custom.conf在[daemon] 中添加
    • AutomaticLoginEnable=true
    • AutomaticLogin=root
       [daemon]
           #开启自动登陆
           AutomaticLoginEnable=true  
           #开启自动登陆的用户
           AutomaticLogin=root
    

    2 修改登陆终端的提示符颜色

         F(前景色)  B(背景色)
            30      40      黑色  
            31      41      红色    
            32      42      绿色 
            33      43      黄色       
            34      44      蓝色       
            35      45      紫红色
            36      46      青蓝色   
            37      47      白色  
    
    #PS1="\[\e[35m\][\u@\h \w]\\$\[\e[0m\]"
    

    3 man的生成和查询命令帮助的一般顺序

            CentOS 6 用命令makewhatis  创建whatis
            CentOS 7 mandb             创建whatis
    
       1.  首先查看命令是外部命令还是内部命令
           type command
       2. 如果是内部命令可以使用 help
           help command
       3. 外部命令使用 man 
    

    4 查看命令的路径位置,man的位置

    • whereis command

    5 命令定义过别名后还想运行其原始的命令

    • \command 取消别名
    • /path/to/command 只对外部命令有效

    6 命令运行的顺序

      - alias            别名
      - compound        复合命令
      - function        函数命令
      - buildin         内部命令
      - hash         hash到内存的命令
      - $PATH        path路径中的命令
    

    7 hash中的命令的管理

      hash
         -d  command 删除hash中缓存的命令
         -r  清空hash中缓存的命令
         -l  列出hash中缓存的命令
         -t  打印hash缓存命令的路径
    

    8 linux cal 呼出日历的使用

       cal month       呼出本年那一月份的日历
       cal month year  呼出哪一年那一月份的日历
    

    9 shutdown 命令的使用

      shutdown [OPTIONS...] [TIME] [WALL...]
          OPTIONS
               -h     halt  关机           
               -r     reboot  重启
               -p      ower off  断电
          TIME
                + minutes  表示几分钟
                HH:mm      表示具体时间
          WALL
                   "要给在线的用户发送的信息"
       如 shutdown -h 18:40 "The system will halt"  表示 在18:40 将要关机
    

    10 单引号,双引号,反引号在linux 中意义

          - 单引号
             表示强引用:不对引号内的任何信息进行修改
      
        [# 69 #root@test ~]#echo 'echo hostname'
        echo hostname
    
          - 反引号
             表示强引用:命令调用
      
        [# 69 #root@test ~]#echo `hostname`
        test.mage.com
    
          - 双引号
             表示强引用:可以引用变量
    
        [# 75 #root@test ~]#echo "$PS1"
        \[\e[35m\][\u@\h \w]\\$\[\e[0m\]    
    

    11 date 的使用

       date
          -d            可以显示某几天前或后的日期
          +%F           显示日期
          +%T           显示时间
    
    如 显示10天前是星期几
    [root@test Packages]# date -d '10 days ago' +%A
     Thursday
    显示当前时间
    [root@test Packages]# date +%F\ %T
     2017-07-23 16:08:40
    

    12 history 历史记录的使用

     设置命令记录历史的条数 HISTSIZE
    [root@test Packages]# HISTSIZE=10000
    [root@test Packages]# echo $HISTSIZE
     10000
    设置文件存放历史记录的条数
    [root@test Packages]# HISTFILESIZE=50000
    [root@test Packages]# echo $HISTSIZE
     50000
    用户设置历史文件的位置
    [root@test Packages]# HISTFILE=/root/.history
    [root@test Packages]# echo $HISTFILE
     /root/.history
    使命令记录带时间
    [root@test Packages]# HISTTIMEFORMAT=%F\ %T
     5139  2017-07-23 16:20:16HISTTIMEFORMAT=%F %T
     5140  2017-07-23 16:20:20HISTTIMEFORMAT=%F\ %T
     5141  2017-07-23 16:20:36echo $HISTTIMEFORMAT
     5142  2017-07-23 16:20:40history
    HISTIGNORE:忽略敏感的记录 密码 不记录历史 HISTIGNORE="passwd *"
    HISTCONTROL:ignoredups忽略连续重复
              ignorespace 忽略空格 
              erasedups删除重复
              igoreboth 组合上面的控制
    

    13 ctrl 一些常用组合键

            ctrl+l 清屏
            ctrl+o 执行当前命令 并重新显示本命令
            ctrl+s 阻止屏幕输出 锁定
            ctrl+q 允许屏幕输出
            ctrl+z 挂起命令
            ctrl+c 终止命令
            ctrl+d EOF
            ctrl+u 浮标前的删除
            ctrl+k 浮标后的删除
            esc+. 可以多次点击
    

    14 在vwware 不用重启新加磁盘,不用在生产环境中

    [root@test Packages]# echo "- - -" > /sys/class/scsi_host/host2/scan 
    

    15 glob 通配符

    匹配字母是有顺序的aAbBcCdD....来进行匹配查找
    1 、显示/var 目录下所有以l 开头,以一个小写字母结尾,且中
    间出现至少一位数字的文件或目录
          ls -d /var/l*[0-9]*[[:lower:]]
    2 、显示/etc 目录下以任意一位数字开头,且以非数字结尾的
    文件或目录
          ls -d /etc/[0-9]*[^0-9]
    3 、显示/etc/ 目录下以非字母开头,后面跟了一个字母及其
    它任意长度任意字符的文件或目录
          ls -d /etc/[^[:alpah:]][[:alpha:]]*
    4 、显示/etc/ 目录下所有以rc 开头,并后面是0-6 之间的数
    字,其它为任意字符的文件或目录
         ls -d /etc/rc[0-6]*
    5 、显示/etc 目录下,所有以.d 结尾的文件或目录
         ls -d /etc/*.d
    6 、显示/etc 目录下,所有.conf 结尾,且以m,n,r,p 开头的文
    件或目录
        ls /etc/[mnrp]*.conf
    7 、只显示/root 下的隐藏文件和目录
        ls -d /root/*/
    8 、 只显示/etc非隐藏的目录
        ls /etc/[^.]*/
    

    16 cp 的一些用法

    cp [OPTION]... [-T] SOURCE DEST
         -i 交互式
         -r,-R 递归
         -a 归档 相当于-dR --preserv=all
         -d --no-dereference --preserv=links 不复制源文件 只复制链接文件
                    dereference 间接引用
                    preserv  保留;保存
         --preserv[=atrr_list]
                   mode:权限
                   ownership:属主属组
                   timestamp:时间戳
                   links :连接
                   xattr:隐藏属性
                   context:上下文  selinux 中的 东西 context
                   all :所有
        -p:等同--preserv=mode ownership,timestamp
        -v:--verbose  查看过程
        -f:forece 自己要对目录又所有权,可以先把前一个文件删除 ,再从新创建忽略权限
    
    cp的可以进行简单的打包
    cp -av  /path   /path/to
    

    17 对文件的通配改名

         rename '.txt' '.txt.bak'   *.txt   表示将所有以.txt结尾的文件的.txt 改为.txt.bak
         mv 既可以改单个文件名  亦可以移动文件
         mv index.txt index.bak             表示将 index.txt 改名为index.bak
         mv index.txt /path                 表示将 index.txt 移动到 /path 路径下
    

    18 file 是基本使用

    file  
        -F 自定义输出文件名与文件类型的分隔符    
          如 [root@test ~]# file anaconda-ks.cfg -F:
               anaconda-ks.cfg: ASCII text
              [root@test ~]# file anaconda-ks.cfg -F"          "
               anaconda-ks.cfg           ASCII text 
        -b 只显示文件类型不显示文件名
              [root@test ~]# file anaconda-ks.cfg -F:
               anaconda-ks.cfg: ASCII text
              [root@test ~]# file anaconda-ks.cfg -F"          "
               anaconda-ks.cfg           ASCII text
        -L 查看软连接指向的文件类型
             [root@test etc]# readlink system-release
              centos-release
             [root@test etc]# file -L system-release
              system-release: ASCII text
    

    19 软连接和硬链接

    软连接
        可以针对目录  可以删除,但原文件不会删除 不会增加inode号  可以跨分区  
    硬链接
        不可以针对目录 删除文件名原文件只要有其他入口还是可以访问 会inode号 相同  不可以跨分区  
    软连接 硬链接 根本原因 硬链接 同一个文件 不同名 
    创建软连接时 是相对于软连接的相对路径
    

    20 输出重定向和管道的使用

    0 标准输入 默认是键盘
    1 标准正确输出  默认是显示器
    2 标准错误输出 默认是显示器
    
    2>&1,&>  将错误输出变为正确输出
    set -C 进行重定向时 禁止覆盖
    set +C 开启覆盖
    > |   强行覆盖
    (command;command) > 多个命令的一起重定向
          如 (ls;hostname) > f1
    
    ls /boot /err 2>&1 | tr 'a-z' 'A-Z'
    [root@test ~]# ls /boot/ /err 2>&1 | tr 'a-z' 'A-Z' 将 /boot /err/的错误输出改为正确的,并通过管道送给 tr 进行大小写转换
    [root@test ~]# ls /boot /err |& tr 'a-z' 'A-Z'  和上面一样
        LS: CANNOT ACCESS /ERR: NO SUCH FILE OR       DIRECTORY
        /BOOT/:
        CONFIG-3.10.0-514.EL7.X86_64
        GRUB
        GRUB2
        INITRAMFS-0-RESCUE-        
        71A56F2C50654FBC9D6782AA5C7C7A4A.IMG
        INITRAMFS-3.10.0-514.EL7.X86_64.IMG
        INITRAMFS-3.10.0-514.EL7.X86_64KDUMP.IMG
        INITRD-PLYMOUTH.IMG
        SYMVERS-3.10.0-514.EL7.X86_64.GZ
        SYSTEM.MAP-3.10.0-514.EL7.X86_64
        VMLINUZ-0-RESCUE-
        71A56F2C50654FBC9D6782AA5C7C7A4A
        VMLINUZ-3.10.0-514.EL7.X86_64
    
    
    1 、将/etc/issue 文件中的内容转换为大写后保存至/tmp/issue.out 文件中
        tr 'a-z' 'A-Z' < /etc/issue > /tmp/issue.out
    2 、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out 文件中
    who | tr 'a-z' 'A-Z' >/tmp/show.out
    3 、一个linux 用户给root 发邮件,要求邮件标题为”help” ,邮件正文如下:
    Hello, I am  用户名,The system version is here,please help me to
    check it ,thanks!
    操作系统版本信息
    echo -e "hello,I am $USER,The system version is here,plesase help me to check it,thanks!\n `lsb_release`" | mail -s 'help'  root 
    4 、将/root/ 下文件列表,显示成一行,并文件名之间用空格隔开
    ls /root | tr '\n' '\t'
    5 、计算1+2+3+..+99+100 的总和
      echo {1..100} | tr ' ' '+' |bc
    6 、删除Windows 文本文件中的‘^M’ 字符
     tr -d '\r' win.txt
    7 、处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4 ”,只保留其中的数字和空格
      echo 'xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4' | tr -dc '0-9 '
    8 、将PATH 变量每个目录显示在独立的一行
    echo $PATH | tr ':' '\n'
    9、 、 将 指定文件中0-9 分别替代成a-j
     tr '0-9' 'a-j' > file
    10 、将文件中每个单词(由字母组成)显示在独立的一行,并无空行
    tr -sc '[:alpha:]'  '\n' 
    

    相关文章

      网友评论

          本文标题:linux 基本命令的使用

          本文链接:https://www.haomeiwen.com/subject/gwkmkxtx.html