Linux基本原则
Bash特性
Shell
- shell(外壳),广义的shell可以理解为是用户的工作环境,在windows看来桌面就是一个shell,在linux看来终端就是shell
- 常见的shell有两种,一种是图形界面,即GUI,一种是命令行终端,即CLI。
1. 常用的GUI:Graphic User Interface
- Windows
- X-Window
-- Gnome
-- KDE
-- Xface
2. 常用的CLI:Command Line Interface
- bash
- sh
- csh
- zsh
- ksh
- tcsh
Bash特性
bash支持以下特性:
- 支持命令历史、命令补全
- 支持管道、重定向
- 支持命令别名
- 支持命令行编辑
- 支持命令行展开
- 支持文件名通配
- 支持变量
- 支持编程
Bash常用操作
//光标跳转
Ctrl+a //跳到命令行首
Ctrl+e //跳到命令行尾
Ctrl+u //删除光标至命令行首的内容
Ctrl+k //删除光标至命令行尾的内容
Ctrl+<-- //光标定位到离自己最近的一个单词前面
Ctrl+l //清屏
//命令历史
history //查看命令历史
-c //清空命令历史
-d OFFSET [n] //删除指定位置的命令历史
-w //保存命令历史至历史文件~/.bash_history中
//命令历史的使用技巧
!n //执行命令历史中的第n条命令
!-n //执行命令历史中倒数第n条命令
!! //执行上一条命令
!string //执行命令历史中最近一个以指定字符串开头的命令
!$ //引用前一个命令的最后一个参数
esc,. //按下esc松开后按.,引用前一个命令的最后一个参数
//控制命令历史的记录方式
//环境变量 HISTCONTROL
ignoredups //忽略重复的命令(连续且相同方为“重复”)
ignorespace //忽略所有以空格开头的命令,如“ ls -l”
ignoreboth //ignoredups和ignorespace均生效
修改环境变量HISTCONTROL值的方式
export HISTCONTROL=ignoreboth
//命令补全
搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件, \
如果多于一个,两次tab,可以给出列表,否则将直接补全
//路径补全
搜索我们给出的起始路径下的每个文件名,并试图补全
//命令别名:
alias CMDALIAS='COMMAND [options] [arguments]'
在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围为当前的shell进程。
//命令替换(把命令中某个子命令替换为其执行结果的过程)
$(COMMAND) //推荐方式
或
`COMMAND`
//命令行展开
~ //展开为用户的家目录
~USERNAME //展开为指定用户的家目录
{} //可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
//文件名通配 globbing
* //匹配任意长度的任意字符
? //匹配任意单个字符
[] //匹配指定范围内的任意单个字符
[abc],[a-m],[0-9]
[[:space:]] //表示空白字符
[[:punct:]] //表示标点符号
[[:lower:]] //表示小写字母
[[:upper:]] //表示大写字母
[[:alpha:]] //表示大小写字母
[[:digit:]] //表示数字
[[:alnum:]] //表示数字和大小写字母
使用man 7 glob命令可以获得以上字符集合的帮助信息!!!
[^] //匹配指定范围之外的任意单个字符
//环境变量
PATH //命令搜索路径
HISTSIZE //命令历史缓冲区大小
SHELL //当前shell
//bash内置变量
RANDOM //保存着0-32768之间的随机数
Bash字符串处理
//bash特性之截取变量的字符串
FILE=/usr/local/src
echo ${FILE#*/} 结果为 usr/local/src
echo ${FILE##*/} 结果为 src
echo ${FILE%/*} 结果为 /usr/local
//字符串切片
${var:offset:number}
//取字符串的最右侧几个字符(自右向左取)
${var: -lengh}
//注意:冒号后必须有一空白字符
//查找替换
${var/pattern/substi} //查找var所表示的字符串中,第一次被pattern所匹配到字符串,以substi替换之
${var//pattern/substi} //查找var所表示的字符串中,所有能被pattern所匹配到字符串,以substi替换之
${var/#pattern/substi} //查找var所表示的字符串中,行首被pattern所匹配到字符串,以substi替换之
${var/%pattern/substi} //查找var所表示的字符串中,行尾被pattern所匹配到字符串,以substi替换之
//查找并删除
${var/pattern} //查找var所表示的字符串中,第一次被pattern所匹配到字符串,删除之
${var//pattern} //查找var所表示的字符串中,所有被pattern所匹配到字符串,删除之
${var/#pattern} //查找var所表示的字符串中,行首被pattern所匹配到字符串,删除之
${var/%pattern} //查找var所表示的字符串中,行尾被pattern所匹配到字符串,删除之
//字符大小写转换
${var^^} //所有小写转换成大写
${var,,} //所有大写转换成小写
//注意:这里使用的是两个逗号“,,”
获取命令帮助
//内部命令
help COMMAND
//外部命令
COMMAND --help
//在线文档
info COMMAND
//命令手册 manual
man COMMAND
//文档
/usr/share/doc
whatis COMMAND //用于查看COMMAND出现在man的哪一章节中。
//man是分章节的,以下是每一章节的内容介绍:
1 用户命令(/bin,/usr/bin,/usr/local/bin);
2 系统调用;
3 库调用;
4 特殊文件(设备文件);
5 文件格式(配置文件 的语法);
6 游戏;
7 杂项(Miscellaneous);
8 管理命令(/sbin,/usr/sbin,/usr/local/sbin)
//man手册注意事项:
[] //可选
<> //必选
... //可以出现多次
| //多选一
{} //分组
NAME //命令名称及功能简要说明
SYNOPSIS //用法说明,包括可用的选项
DESCRIPTION //命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS //说明每一个选项的意义
FILES //此命令相关的配置文件
BUGS //报告bug
EXAMPLES //使用示例
SEE ALSO //另外参照
//man翻屏
向后翻一屏 //SPACE
向前翻一屏 //b
向后翻一行 //enter
向前翻一行 //k
//查找
/KEYWORD //向后
?KEYWORD //向前
n //下一个
N //前一个
q //退出
Linux基本原则的更多相关文章
- linux 基本原则和常用命令
Linux的基本原则:1.由目的单一的小程序组成,组合小程序完成复杂的功能:2.一切皆文件:3.尽量避免捕获用户接口:4.配置文件保存为纯文本格式. CLI接口的命令提示符:#(root)$(普通用户 ...
- 初识Linux 命令
1.linux基本原则 (1)有目的单一的小程序组成:组合小程序完成复杂任务 (2)一切皆文件 (3)尽量避免捕获用户接口 (4)配置文件保存为纯文本格式 2.命令格式 命令 选项 参数 短选项 - ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- [Linux] 概念
操作系统包括: 内核:管理硬件资源 库:没有执行入口的程序,用于提升软件开发效率 应用程序:有执行入口的程序 常见库文件: windows系统:dll(dynamic link library)动态链 ...
- 尚学linux课程---6、linux命令介绍
尚学linux课程---6.linux命令介绍 一.总结 一句话总结: linux中命令的一般格式:命令关键字 选项 参数1 参数2 1.linux基本原则? 一切皆文件 配置文件保存为纯文本格式 2 ...
- Linux的基本原则
Linux的基本原则:1.由目的单一的小程序组成,一个程序只做一件事,且做好: 2.’组合小程序完成复杂任务: 3.一切皆文件: 4.尽量避免捕获用户接口: 5.配置文件保存为纯文本格式: 6.提供机 ...
- [原创]Linux-day1
原创:转发务必注明出处http://www.cnblogs.com/0zcl/p/6077298.html 一.Linux的基本原则 由目的单一的小程序组成:组合小程序完成复杂任务 一切皆文件 尽量避 ...
- linux基本知识0
linux的基本原则: 1.有目的单一的小程序组成,组合小程序完成复杂任务. 2.一切皆文件 3.尽量避免捕获用户接口 4.配置文件保存为纯文本格式 CLI接口: 命令提示符,prompt,bash ...
- Linux NFS服务器的安装与配置
一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...
随机推荐
- day-08-文件管理
文件的操作的初识 利用python代码写一个很low的软件,去操作文件. 文件路径:path 打开方式:读,写,追加,读写,写读...... 编码方式:utf-8,gbk ,gb2312...... ...
- 配置IIS虚拟站点(5)
开发完ASP.NET网站后,想要直接浏览,不通过开发环境,那么就需要配置IIS虚拟站点 1.开始菜单->控制面板->所有控制面板->管理工具->双击打开Internet信息服务 ...
- [Fundamental of Power Electronics]-PART II-9. 控制器设计-9.5 控制器的设计
9.5 控制器设计 现在让我们来考虑如何设计控制器系统,来满足有关抑制扰动,瞬态响应以及稳定性的规范或者说设计目标.典型的直流控制器设计可以用以下规范定义: 1.负载电流变化对输出电压调节的影响.当负 ...
- 201871010130-周学铭 实验二 个人项目—D{0-1}问题项目报告
项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验二 软件工程个人项目 我的课程学习目标 掌握软件项目个人开发流程.掌握Github发布软件项目的操作方法. 这个作业在哪些方面帮助我实 ...
- 周爱民带你深入剖析JavaScript核心原理
作为前端工程师必备技能,JavaScript 的重要性不言而喻.虽然易上手,但却有着诸多复杂微妙的机制,想要真正掌握绝非易事. 专栏面向JavaScript语言的实际应用者与深度爱好者,以讲述Java ...
- Python基础之:struct和格式化字符
目录 简介 struct中的方法 格式字符串 字节顺序,大小和对齐方式 格式字符 格式数字 格式字符 格式字符串 填充的影响 复杂应用 简介 文件的存储内容有两种方式,一种是二进制,一种是文本的形式. ...
- 生产环境中的redis是怎么部署的?
redis cluster,10台机器,5台机器部署了redis主实例,另外5台机器部署了redis的从实例,每个主实例挂了一个从实例,5个节点对外提供读写服务,每个节点的读写高峰qps可能可以达到每 ...
- 前端框架之争丨除了Vue、Angular和React还有谁与之争锋
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://www.sitepoint.com/most-popular-frontend-f ...
- java多种文件复制方式以及效率比较
1.背景 java复制文件的方式其实有很多种,可以分为 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,BufferedO ...
- kubernetes-copyFromPod
import com.google.common.io.ByteStreams; import io.kubernetes.client.Copy; import io.kubernetes.clie ...