linux 基本命令的使用

2017-07-23  本文已影响0人  一桥长书

1 实现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的位置

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

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' 
上一篇下一篇

猜你喜欢

热点阅读