码迷,mamicode.com
首页 > 系统相关 > 详细

shell基础

时间:2016-06-12 18:48:27      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:linux   博客   

本博客不注重格式,最主要的目的是给自己当笔记用,当然大家也可以参考.

shell在linux是一种最基础的交方式,它提供了多种语言给使用者,在这里不一一说明

bash是我们最常用的也是CentOS默认的bash,关于定义和原理请自行度娘.

查看当前默认shell类型

]$ echo $SHELL #查看变量 $SHELL 如果查看所用变量请用set命令
]$ cat /etc/shells #当前系统支持的所有 shells



命令提示符:prompt

命令提示符格式 [root@localhost~]$:echo $PS1

root (当前登录用户名) \u 

localhost(当前登录主机名) \h

~ 当前目录 \w

$(为普通用户)#(为管理员用户)

其他为可修改格式

shell中可用的命令分为两种:外部命令和内部命令

外部命令:当前系统的某文件系统路径下有对应的可执行文件:which.whereis

内部命令:由shell自带的,

区分内部命令和外部命令

]# type COMMAND

hash命令:执行过的外部命令会缓存到kv(key-value)中,这样当下次执行命令时可加速查询过程


命令格式.COMMAND [OPTIONS...] [ARGUMENTS...]

选项:用于启用或关闭命令的某个或某些功能;

短选项:-c, 例如:-l, -h

长选项:--word,例如:--all, --human-readable

参数:命令的作用对象,比如文件名,用户名等

注意:

    1、多选项,以及多参数和命令之间使用空白字符分隔

    2、取消和结束命令执行:Ctrl+c,Ctrl+d

    3、多个命令可以用;符号分开

    4、一个命令可以用\分成多行

    

命令行扩展、被括起来的集合

命令行扩展:$( ) 或``

例:把一个命令的输出打印给另一个命令的参数 


                $echo"Thissystem snameis$(hostname) "
        Thissystem snameis server1.example.com
        $echo "i am `whoami` "
        i am root

括号扩展:{ }

打印重复字符串的简化形式

        ]$echo file{1,3,5} 
        file1file3file5 
        ]# echo {1..5}
        1 2 3 4 5

执行历史命令的快捷方式

重复前一条命令:


        上方向键

        !!

        !-1

        CTRL+P

    !字符串:重复前一个以"字符串"开头的命令

    !MUM:执行history中第NUM条命令

    !?字符串:执行包含"字符串的"命令

    !-n:重复n个命令之前的命令

    CTRL+R来搜索命令历史中的命令

要重新调用上一个命令中的最后一个参数:


    !$表示

    ESC . 

调用历史命令参数:

    

        #CMD !^:调用上一个命令的第一个参数给CMD

        #CMD !$:调用上一个命令的最后一个参数给CMD

        #CMD !*:调用上一个命令中的所有参数给CMD

        #CMD !:n :调用上一个命令的第n个参数给CMD

    

    

        !n:^ 调用第n条命令的第一个参数

        !n:$ 调用第n条命令的最后一个参数

        !n:n 调用第n条命令的第n个参数

        !n:* 调用第n条命令的所有参数

           

         !string:^ 从命令历史中搜索以string 开头的命令,并获取它的第一个参数

         !string:$ 从命令历史中搜索以string 开头的命令,并获取它的最后一个参数

        !string:n 从命令历史中搜索以string 开头的命令,并获取它的第n个参数

        !string:* 从命令历史中搜索以string 开头的命令,并获取它的所有参数

     



    

命令行历史:histoy命令

    1. histoy命令可以查看当前用户执行的过的命令.当前登录执行的命令会保存在内存中,当用户退出时,这些命令会追加保存到~/.bash_history文件中.

    2. 在CenOS中命令默认可以保存1000条,可以通过修改bash环境变量的设置进行修改


    HISTSIZE:命令历史记录的条数;

    HISTFILE:指定历史文件,默认为~/.bash_history;

    HISTFILESIZE:命令历史文件记录历史的条数;

    HISTTIMEFORMAT=“%F %T“ 显示时间

    HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史

控制命令历史的记录方式:

环境变量:HISTCONTROL

ignoredups:忽略重复的命令;连续且相同方为“重复”

ignorespace:忽略所有以空白开头的命令;

ignoreboth:ignoredups, ignorespace;

export 变量名="值“

存放在/etc/profile 或~/.bash_profile

bash快捷键

Ctrl+l 清屏,相当于clear命令

Ctrl+c取消命令的执行

Ctrl-a 会移动到命令行的最前面

Ctrl-e 会移动到命令行的最后面

Ctrl-u 会删除到行首

Ctrl-k 会删除到行尾

Ctrl-arrow ctrl-b ctrl-f会向左或向右移动一个字符

Esc-b左移一个单词

Esc-f右移一个单词













本文出自 “11323677” 博客,请务必保留此出处http://zx337954373.blog.51cto.com/11323677/1788366

shell基础

标签:linux   博客   

原文地址:http://zx337954373.blog.51cto.com/11323677/1788366

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!