Unix和Linux历史文化
1、显示工作目录pwd print working directory print name of current/working directory
2、显示自己终端名称tty print the file name of the terminal connected to standard input
3、Teletype 终端,键盘是有最重要键:<Esc>,<Ctrl>, <Shift>, <Tab>, <Return>/<Enter>回车换行键.
<Ctrl-C>发送intr(interrupt,中断)信号
修饰键:<Ctrl>键(Control)+ 大写字母A-Z <Shift>键有两种用途:键入大写字母及键入双字符键中的顶部字符
<Delete>键删除光标所在字符,向后删除
按下<Backspace>键发送erase信号,删除最后一个键入的字符。Ctrl+H也能达到同样效果 <Backspace>键等同于^H
werase信号对应的键是Ctrl+W,让Unix删除刚刚键入的最后一个单词。也可以重复按<Backspace>键,但^W要快许多。
kill信号告诉Unix删除整行,映射到kill信号的键是^U <Ctrl>+U. 键入一条命令,按^C取消命令,kill是删除命令行上的所有字符,两者有相同效果
文件结束信号eof Ctrl+D 等同 logout, 退出shell
命令行编辑 <Left> <Right>在命令行中移动光标 <Up> <Down>在命令历史列表中向后或向前移动查看命令
按下^M将发送返回字符,按下^J将发送换行字符
在Unix系统中Ctrl+M、Ctrl+J都可以替代回车Enter键,
在文本文件中,UNIX使用^J字符标记每行结束,Microsoft Windows使用^M^J标记每行结束,所以在Windows上编辑文本文件要设为Unix格式
4、xterm终端map名称存在/usr/share/terminfo/x/xterm,Unix如果知道所使用的终端类型,终端类型有几种VT100、xterm、Linux(VT220), Unix使用了环境变量
[hubo@test15169x /]$ echo $TERM
xterm
[hubo@test15169x ~]$ printenv print environment VARIABLE
HOSTNAME=test15169x.ops.corp.qihoo.net
TERM=xterm变量是一个用来存储数据的实体
SHELL=/bin/bash
5、Unix shell中有两种变量shell变量和环境变量,变量是一个用来存储数据的实体。
每个变量都有一个名称和一个值。其中变量名是用来引用变量的标识符,值是存储在变量中数据。
Bourne shell 家族中shell变量和环境变量都采用大写字母的名称,创建的新变量自动设置为shell变量,如果希望某个变量同时成为环境变量,必须使用export命令将shell变量修改为“shell+环境”变量,这称将变量导出(export)到环境中。
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
export PATH="$PATH:/ opt/au1200_rm/build_tools/bin"
source /etc/profile
创建变量:NAME=value eg. PAGER=less WEEDLY="a cool cat"
查看变量的值:echo $PATH; echo $TERM; echo "HHH ${TERM}ing."; //使用花括号划请界限
echo "The terminal type is <$TERM>."; <和>是元字符(重定向) 当使用echo显示标点符号时,使用双引号告诉shell不要将标点符号解释为元字符
修改变量的值:变量存在,HARLEY=smart
销毁变量:unset NAME
6、shell中元字符 :使用shell时,许多字符有特殊的含义
分号; 将命令分隔开
<Space> <Tab> <Return> 空格和制表符分割命令不同部分的空白符,新行字符用作一行结束标记
$是一个元字符,需要引用变量的值时要使用$TERM
shell中使用的元字符列表
有时希望按字面上的含义使用元字符,而不使用其特殊的含义,告诉shell按字面意思解释字符,称为引用字符。
字符的引用方法有3种:
1)使用反斜线\ (引用:下一个字符转义)引用单个字符 echo Hell world\; Pelase continue
当使用反斜线引用单个字符时,我们称反斜线为“转义字符(escape character)”
程序由一种模式转义到另一种模式,当通过按下特定键修改模式时,称该特定键为转义字符
当对shell键入命令时,反斜线就是一个转义字符,因为它告诉shell从一种模式(注意元字符)改变到另一种字符模式(不用注意元字符)。记住转义字符的思想
当使用vi编辑器时,按下<Esc>键就可以从插入模式转义到命令模式 <Esc>键即是<Escape>键,设计它是为了方便程序从一种模式转义到另一种模式
2)使用一对单引号引用一串字符 将单引号之间所有内容引用。 echo 'It is warm (and sunny); come over & visit'
3) 使用双引号引用一串字符,但是保留$(美元) `(反引号) \(反斜线) 的特殊含义
单引号是强引用,双引号是弱引用,反斜线更强可以引用单引号、新行字符
hubo@hubo-Rev-1-0:~$ echo Don\'t le me go
hubo@hubo-Rev-1-0:~$ echo This is \
> very, \
> very long line.
This is very, very long line.
7、shell分内置命令(在自己的进程内运行该命令)和外部命令(搜索合适的命令,以一个单独进程运行该命令),
内置命令:echo cd
http://bbs.chinaunix.net/thread-61830-1-1.html
提示:外部命令的查找路径由环境变量PATH定义。
修改外部命令搜索路径 export PATH=“$PATH:$HOME/bin”
8、命令替换,允许在一条命令中嵌入另一条命令,shell首先执行嵌入的命令,并且用输出替换该命令。然后shell再执行整个命令
hubo@hubo-Rev-1-0:/$ echo "The time and date are `date`."
hubo@hubo-Rev-1-0:/$ echo "`basename ${SHELL}`$ "
9、键入命令并进行修改(历史列表、命令行编辑、自动补全、别名)
<Return>键可以在命令行的任意位置按下,不必仅限于命令行末尾
<Backspace>键删除左边的一个字符,使用<Delete>键删除右边的一个字符
<Up> <Down> history | less
用history列出历史命令事件编号后,!24 重新执行该命令,还可以重新执行命令前对命令小修改
!number:s/pattern/replacement/
25 vi tempfile
!25:s/tempfile/data/ 这次希望打开叫data的文件
重新执行上一条命令!!
hubo@hubo-Rev-1-0:/$ cp materxada backup
^x^d
按Ctrl+R 并键入一种模式
自动补全 补全单词<Tab> 显示所以可能<Tab><Tab>
删除之前先列出匹配该模式的文件
ls temp* extra?
rm temp* extra?
创建空文件最简单方法
hubo@hubo-Rev-1-0:~$ touch xaax xabx xacx xccx
命令行编辑set -o emacs set -o vi
别名 alias name=command
unalias name
8、使用shell 初始化文件
登录文件(在登录时运行).bash_profile、.profile 、.bash_login 环境文件(在新shell启动时运行).bashrc 注销文件.bash_logout
rc文件,许多Unix程序使用名称为以rc结尾的配置文件 “run commands 运行命令”,特定程序每次启动时运行的文件
环境自动被所有子进程(新shell)所继承,环境变量(PATH)只需要在登录文件中设置一次,在环境文件中设置没有意义,在新shell启动时被复位
10、如果你是程序员,无论何时,当用户运行程序过程中发现输出内容太多时,需要将程序的输出发送给more
每个程序应该是一个工具,它只完成一件事情,但一定要完成好这件事情,模式搜索程序,排序程序
3个屏幕显示程序more、pg、less、less功能最强大,more使用比较简单
ed(editor)、ex(extended editor)、vi(visual editor)、vim、emacs
11、stdin stdout stderr
sort > names 重定向标准输出 不要替换已存在的文件
sort >> names 追加方式 追加数据时不要创建新文件
sort < rawdata > report
Unix为每个进程提供3个预定义的文件描述符,0代表标准输入, 1代表标准输出,2代表标准错误
sort 0< rawdata 1> results 2> errors
sort < rawdata > results 2> errors
标准错误的文件描述符2不能省略
组合标准输出和标准错误:sort > output 2>&1
sort >> output 2>&1
抛弃输出 ,只需重定向标准输出,将它发送给一个特殊的文件 /dev/null
update > /dev/null
update 2> /dev/null 重定向标准错误
update > /dev/null 2>&1 抛弃所有输出
11、管道 | 有3个大文件,这3个文件中包含全国所有聪明人信息,每人一行,包括人名,查找有多少人叫 lailai
cat file1 file2 file3 | grep lailai | wc -l
12、管道分流 tee command | tee file tee命令作用从标准输入读取数据,并向标准输出和一个文件各发送一份数据
13、条件执行 command1 && command2 grep lailai people > /dev/null && sort people > contacts
command1 || command2
组合文件cat
划分文件split
从数据开头或末尾选择数据行:head、tail
抽取数据列, 记录字段和定界符,抽取数据字段cut
统计行、单词和字符数量:wc
选取包含特定模式的行:grep
排序数据:sort
查找重复行:uniq
转换字符:tr
非交互式文本编辑:sed
Unix和Linux历史文化的更多相关文章
- Linux(一)—— Unix&Linux 历史
Linux(一)-- Unix&Linux 历史 Unix =Unix内核+Unix实用工具 Unix Unix 的诞生 Unix的历史可以追溯到20世纪60年代中期,当时麻省理工学院,AT& ...
- 【历史】- 一段关于 Unix、Linux 和 Windows 的暗黑史
“SCO在言语上变得越来越好斗,而且还拒绝展示有关诉讼的任何证据,一切都似乎在表明,SCO只不过是在那里拉虎皮做大旗地狂言乱语.但是,微软决不会轻易放弃这么可以一个利用这些狂言乱语的好机会.”2003 ...
- Linux历史
1.Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX标准和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支 ...
- 一段关于 Unix、Linux 和 Windows 的暗黑史
“SCO 在言语上变得越来越好斗,而且还拒绝展示有关诉讼的任何证据,一切都似乎在表明,SCO只不过是在那里拉虎皮做大旗地狂言乱语.但是,微软 决不会轻易放弃这么可以一个利用这些狂言乱语的好机会.”20 ...
- 朴素UNIX之-打开历史
它可以毫不夸张地说,,UNIX模型是现代操作系统的原型.无论是真实的UNIX让我们大系列AIX,Solaris,HP-UX,FreeBSD,NetBSD,...或类别UNIX实例Linux...或基于 ...
- [转帖]一段关于Unix与 Linux的暗黑史
一段关于Unix与 Linux的暗黑史 https://blog.csdn.net/a343315623/article/details/51436715 微软曾经开发过 MS-DOS Xenix O ...
- 一段关于Unix、Linux和Windows的暗黑史
"SCO在言语上变得越来越好斗,而且还拒绝展示有关诉讼的任何证据,一切都似乎在表明,SCO只不过是在那里拉虎皮做大旗地狂言乱语.但是,微软 决不会轻易放弃这么可以一个利用这些狂言乱语的好机会 ...
- 快照、克隆,xshell优化,Linux历史
目录 一.虚拟拍照功能 二.虚拟机克隆功能 三.Xshell的优化 四.介绍Linux历史 一.虚拟拍照功能 1.拍摄快照 关机状态拍照 关机命令:shutdown -h now 或者 init 0 ...
- Linux历史,安装,分区,版本
Linux 历史 1970年是 UNIX元年,这一年 Kenneth Lane Thompson 和 Dennis Ritchie 合作编写了UNIX系统. Stallman 发起了GNU 计划,他本 ...
随机推荐
- navicat链接lunix平台上的数据库
xsell 4.navicat软件 想在链接数据库的得常规设置里设置: 链接名称.主机名(链接lunix平台后才干ping 通的ip地址) port.username.password 然后选择ssh ...
- mysql 远程登陆不上
当使用 TCP/IP 连接 mysql 时, 出现 : Can't connect to MySQL server on 'xxx.xxx.xxx.xxx.'(111) 这个错误. 经过重复折腾: 确 ...
- AutoCAD如何将dwf转成dwg格式
dwf转成dwg怎么转, 悬赏分:30 - 解决时间:2009-11-22 10:19 重金:dwf转成dwg怎么转, 我是用在出图上的. 最佳答案 Design Web Format (DWF) 文 ...
- Direct-X学习笔记--纹理映射
一.介绍 之前学习了如何绘制物体,还画了个DX自带的茶壶,然而这个东东并不怎么好看....离我们现实的物体简直相隔千里. 仅仅能说像美术他们用来写生的模型...那么要怎么样才干让我们的东西看起来更像真 ...
- C语言数据类型的转换
C语言的类型转换,一个是强制类型进行转换,而在这里要介绍的是自动的数据类型的转换,自动的数据类型转换很多时候是发生在多种数据类型混合使用的时候就会进行类型的转换,这样就会带来不能控制的结果,所以必须进 ...
- 1BIT,1BYTE,1KB,1MB,1GB,1TB等计量单位换算
http://iask.sina.com.cn/b/8961090.html知识 在数字世界里没有电影.没有杂志.没有一首首的乐曲,只有一个个的数字“1”和“0”.以前人们对于数字世界中的这两个数 ...
- 性能测试框架Multi-Mechanize安装与使用
python模块介绍- multi-mechanize 通用的性能测试工具 简介 Multi-Mechanize 是一个开源的性能和负载测试框架,它并发运行多个 Python 脚本对网站或者服务生成负 ...
- jquery元素分组插件,用于把一连串元素分成多组,如把多个a标签分成多组放入<li>元素中,可以用于简化多图滚动为一个元素滚动,兼容ie6
三个参数 <script type="text/javascript"> /* *sclass:设置包裹元素的类 * packages:设置包裹的元素 * row:设置 ...
- JavaWeb学习笔记:Servlet
Servlet JavaWeb 概念 Java Web应用由一组Servlet.HTML页面.类.以及其他能够被绑定的资源构成. 他能够在各种供应商提供的实现Servlet规范的Servlet容器中执 ...
- Bootstrap学习速查表(四) 栅格系统
Bootstrap框架的网格系统工作原理如下: 1.数据行(.row)必须包含在容器(.container)中,以便为其赋予合适的对齐方式和内距(padding).如: 2.在行(.row)中可以添加 ...