shell基础
2016-06-12 17:23
295 查看
本博客不注重格式,最主要的目的是给自己当笔记用,当然大家也可以参考.
shell在linux是一种最基础的交方式,它提供了多种语言给使用者,在这里不一一说明
bash是我们最常用的也是CentOS默认的bash,关于定义和原理请自行度娘.
查看当前默认shell类型
命令提示符: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、一个命令可以用\分成多行
命令行扩展、被括起来的集合
命令行扩展:$( ) 或``
例:把一个命令的输出打印给另一个命令的参数
打印重复字符串的简化形式
重复前一条命令:
上方向键
!!
!-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右移一个单词
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 socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- Linux 下无损图片压缩小工具介绍