计算机的基础简介及Linux的基本概念
史前, --- 算筹:木条类。
公元八世纪 --- 算盘(十进制):存储数据并计算。
二战, --- 手摇计算机:破译密码
1946年, --- 第一台计算机诞生,每秒5000次运算,电信号(二进制)
- 硬件:
- 处理器(CPU)
- ARM, AMD
- A11(33亿个晶体管,7纳米几乎无法再降)(频率3.3GHZ,几乎无法上升详细可以了解量子力学)
- A12/麒麟980(69亿个晶体管,7纳米)
- A13(85亿个晶体管,7纳米)
- 麒麟990(103亿晶体管)
- A14(150亿个晶体管,5纳米)
- X86, Intel
- I3、I5、I7
- ARM, AMD
- 运行内存RAM(存储数据)(容量,字节为单位)
- 主板(总线设备)
- 外部存储设备 (硬盘,U盘,TF卡等)
- 输入输出设备(显示屏,键盘,鼠标等)
- 处理器(CPU)
- 软件:
- 操作系统
- 应用软件(用户级)
1 byte = 8 bit
(1 字节 = 8 位)
- 每 1 bit(位) 由二进制 0 或 1 组成
- 每 1 byte(字节) 有 2^8 = 256 种组合
- 256种组合刚好对应的是16进制的所有数(00~FF),此为字节最基本的表述方式
说明:
- 二进制 0~1
- 十进制 0~9
- 八进制 0~7
- 十六进制 0
9,AF
(…, 9>9, 10>A, 11>B, 12>C, 13>D, 14>E, 15>F)
注意:所有的数都从0开始
特别注意:十六进制数
F代表十进制数为15,属于从0到F数的第16位。
进制的互相转换
进制转换问题,可以拆解为一个根本问题:某一个数包含了几个这样的进制单位数
使用公式表示如下:
二进制数1100100
N: 1 1 0 0 1 0 0
n: 6 5 4 3 2 1 0
说明:
N--对应位置的数字,a--进制数, n--具有几个单位量级
二 --> 十: ∑ ( N * a^n ) 上标:n=0 下标:n
二 --> 八: 以二进制每三位为节点
二 --> 十六: 以二进制每四位为节点
十 --> 二: 取余法,以预转换的进制数为除数,除到结果为0为止(证明过程:提取法)
示例:
简单理解方式,每一位数包含了几个进制数,从个位算起。
十进制 <--> 二进制:
(100)10 = (1100100)2 = 0*2^0 + 0*2^1 + 1*2^2 + 0*2^3 + 0*2^4 + 1*2^5 + 1*2^6
十进制 <--> 八进制:
(100)10 = (144)8 = 4*8^0 + 4*8^1 + 1*8^2
十进制 <--> 十六进制:
(100)10 = (64)16 = 4*16^0 + 6*16^1
示例2:
十进制 --> 二进制
例:13转换为二进制?
13/2 = 6…1
6/2 = 3…0
3/2 = 1…1
1/2 = 0…1
所以二进制是1101
十进制 --> 十六进制
例:18转换为十六进制?
方法1:
18/16 = 1…2
1/16 = 0…1
十六进制表示12方法2:
18转二进制:
18/2 = 9…0
9/2 = 4…1
4/2 = 2…0
2/2 = 1…0
1/2 = 0…1
所以二进制是10010,即00010010
转换为十六进制:
0010…2
0001…1
十六进制表示12
十六进制 --> 十进制
FF的十进制数是多少?
= 15*16^0 + 15*16^1 = 255
三个主流系统:
- Windows、(图形用户界面GUI最早)
- Win3.1、win3.2、win95、win98、win me、win2000、Win_xp、win 7、win 10
- Linux、
- 安卓(Android)
- Ubuntu(当前学习的操作系统)
- CentOs
- Redhat
- Unix(最优秀的操作系统,大型企业、政府等使用,安全稳定高效)
- 公司:AIX(IBM)由开源闭源、Solaris(SUN)
- IOS(Apple 移动端)
- Mac OS X(Apple PC)
( 换言之,程序如何调用到最终的硬件?)
包括以下:
- 应用程序
- 标准库
- Linux操作系统内核
- 硬件
Linux中:一切皆文件!!
Linux下文件系统:
- /bin/ 常用目录 bin是Binary的缩写, 这个目录存放着最经常使用的命令
- /boot/grub
- /etc/
- /home/ 用户主目录,是用户权限下管理分配的不同目录
- /lib/
- ...
扩展阅读:
http://www.cnblogs.com/happyframework/p/4480228.html http://www.pathname.com/fhs/pub/fhs-2.3.html 搜索引擎关键字:linux目录结构 和 linux文件系统
Linux操作系统优势:
- 运行速度快。
- 无多余的图形处理界面
- 比如有时企业处理事件,Windows5秒,Linux3秒。
- 本地终端打开会话:
- Ubuntu桌面版打开会话连接方法:
- 搜索应用程序:终端、gnome-terminal 图标
Ctrl + Alt + T
- Ubuntu桌面版打开会话连接方法:
- ssh远程连接会话
- 任意命令终端中使用ssh
- 终端会话退出:
- 输入exit
Ctrl + D
- 其他第三方终端工具:
- ...
一些快捷键:
Tab- 自动补齐。补全路径,命名↑↓- 翻出上/下条命令Ctrl + L- 清屏,也可用命令clearCtrl + D- 退出当前交互命令窗口
[chenjun@ge60centos ~]$
------- ---------- - -------------
| | | |
用户名 主机名 所在文件夹 待输入的操作命令
设置样式的代码环境:
PS1="\[\e[1;32m\][\u@\h:\[\e[1;36m\] \t \[\e[31m\]\"\w/\"]\n\[\e[32m\]$ \[\e[m\]"
PS1=`echo ${PS1}|sed 's#"\\\\w/"#"$PWD/"#'` # "~/" --> "/home/user/"操作命令格式: 命令名 [选项] [参数]
注:
[]的内容代表可选选项或可选参数(可有可无,具体看命令功能或要求)
示例:
find /var -maxdepth 2 -type d命令解析:
/var:输入路径。代表去/var路径下面去找所有文件或目录-maxdepth 2:输入最大寻找到几级目录。我们填写的2,代表最大搜索二级目录-type d:输入搜索类型是什么。我们填写的d,代表只搜索文件类型为目录的。
-
隐藏文件
如
ls –a查看到的以.开头的文件$ ls file folder $ ls -a . .. .file .hide_file file folder -
文件类型
如
ls -l查看到的第一位字符文件类型 解释 b块设备文件 c字符设备文件 d目录 -普通文件 l链接 s套接字 p管道 $ ls -l total 0 -rw-r--r-- 1 chenjun staff 0 1 27 21:40 file drwxr-xr-x 2 chenjun staff 64 1 27 21:38 folder
-
路径
是用来记录一个文件或文件夹的字符串。
- 绝对路径:
以“/”字符开头的路径称为绝对路径。(任何时候,一个文件的绝对路径是唯一的)。 如:/根目录,/rootroot的home目录 - 相对路径:
如:./*/当前目录下的所有目录 - 特殊符号:
如~代表当前登录会话用户的home目录(每次打开会话,默认进入的目录)
- 绝对路径:
| 标识符 | 说明 |
|---|---|
() |
单小括号。新开运行环境,shell命令替换 |
(()) |
整数扩展。计算数值 |
[] |
单中括号。 |
[[]] |
双中括号 |
{} |
花括号。 变量名规定,语句块,以逗号分割的文件列表进行拓展 |
## 1) 单小括号()
a=1; (a=2); echo $a
# 1
a=1; sh -c "a=2"; echo $a
# 1
a=1; a=2; echo $a # 对比
# 2
ec$(echo ho) 123
# 123
echo 123
# 123
## 2) 双小括号()
a=100
echo $((a++))
echo $a
echo $((++a))
echo $a
((a=a+100))
echo $a
## 5) 花括号
a=100
echo ${a}
{ echo 123; echo 456;}
touch {a,b}.txt # 结果为a.txt b.txt。拓展阅读:
* —— 匹配0个,1个或多个字符
? —— 匹配1个任意字符
示例:
touch a aa ab abc
ls a* 匹配a开头的文件,以此类推
ls a?
ls *a* 含有a的字符,不一定是a在中间
ls *c
ls ?c
...引号常用于表示一段字符串。
""双引号内部可以嵌入变量等特殊字符''单引号则将内部的所有符号都认为是字符串
示例:
var=3 # 定义一个变量
echo "这是$var"
echo '这是$var'| 符号 | 说明 |
|---|---|
> / >> |
“标准输出”重定向到文件,等价于 1> / 1>> |
2> / 2>> |
“标准错误输出”重定向到文件 |
&> / &>> |
”标准输出“和“标准错误输出”都重定向到文件,等价于 1>2 2>somefile |
< |
将文件作为标准输入 |
<() |
作为临时文件 |
示例:
seq 3 # 创建并打印一个1到3的数字
seq 3 >testfile # 标准输出重定向到文件
cat testfile | sed 2d # 去除第二行的输出,只打印 1 3
sed 2d < testfile # 使用标准输入方式来操作
cat <(seq 3) # 打印一个临时生成的文件,打印 1 2 3
ls -l <(seq 3) # 看看这个临时文件的信息。/dev/fd/63
find /etc -name "passwd" >log.o 2>log.e # 输出的信息分流到文件
find /etc -name "passwd" >log.o 2>/dev/null # 报错信息重新向于无任何打印
find /etc -name "passwd" 1>/dev/null # 只看错误信息
find /etc -name "passwd" 2>/dev/null # 只看正常信息
find /etc -name "passwd" 1>log.o 2>&1 # 标准和错误的所有输出都重定向到文件log.o
find /etc -name "passwd" &>log.o # 同上,需注意的是,该种写法在某些系统中不适用,如ubuntuPS:
几个特殊的设备文件
/dev/stdout: 标准输出。一般用于命令程序正常执行的信息打印/dev/stderr: 标准错误输出。一般用于命令程序执行时有错误或警告的信息打印/dev/stdin: 标准输入/dev/null: 丢弃一切写入其中的数据
方法:
man 命令名—— 查看命令帮助,翻页↑↓,退出q键命令名 --help—— 查看命令帮助,翻页↑↓,退出q键
man ascii # Linux下查看ASCⅡ编码表
man ls
man rm
ls --help拓展: ASCⅡ编码(由美国国家标准委员会制定)中的常用编码:
字符 十进制 十六进制
'0' 48 30
'A' 65 41
'a' 97 61