您的位置:首页 > 运维架构 > Shell

shell基础

2016-06-12 17:23 295 查看
本博客不注重格式,最主要的目的是给自己当笔记用,当然大家也可以参考.

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

在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右移一个单词
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 博客