Linux基础学习笔记

Linux基本原则
1.由目的单一的小程序组成:组合小程序组成负责任务:
2.一切皆文件。
3.尽量避免捕获用户接口;
4.配置文件保存为纯文本格式。

GUI接口:
Gnome :c(哥no)
KDE:c++
XFce:嵌入式
CLI接口:(bashshell)
命令提示符:prompt 表示可以立即输入命令

  #:管理员的命令
  $:普通用户

命令:shell --》内核,任何程序被执行必须有一个执行入口。
Linux 命令格式通常由三部分组成:
命令 选项 参数
1.命令本身(脚步或路径的名字) 2.选项(一定要有空格)(主要是修正命令的执行方式)
--长选项--(单词),(长选项通常不能组合)
短选项之分-(字母)(选项可以同时有多个)
3.参数:指定命令的作用对象
使用凭证:
虚拟终端:


startx& 可以开启图形界面
root,student,vistor
su (switch user )
#su -l 用户名 exit 表示退回原用户(完全切换)如果省l(半切换)
#passwd 修改当前用户密码,连输两次即可

GUI:Graphic User Interface
windows
X-window
Gnome
KDE
Xface
CLI:Command Line Interface
系统调用:Application Program Interface
interface GUI:
CLI:

       shell
     library:API
       dll:Dynamic link library
       so:shared object 
     Kernel:内核
     cpu,硬盘,内存 

Login :
用户名:用户ID
认证机制:Authentication
授权:Authorization
审计:Audition(日志)
命令:
magic number:魔数 (用来标记程序的执行过程)
例如在写脚本的时候:
shebang

!/bin/bash

list:ls
列表,列出
文件夹(实际上是目录,目录是一种路径映射)
路径主要是为了实现层次化管理(层次化结构可以很快的找到目标)
文件系统:file system
linux一般是倒树状结构
目录:working directory,currnet directory
FHS(文件系统层级目录标准)文件名,文件数据都放到哪里?
pwd:print working directory(显示当前目录)

ls 
 -l,长格式(显示有属性)(10个位,1个表示文件类型,)
 b:块设备文件(block)
 c:字符设备文件(character)
 l:符号链接文件(symbolic link file)  
 p:命令管道(pipe)
 S:套接字文件(socket)
 文件权限:9位,每3位一组,每一组:rwx
 文件硬链接的次数
 文件的属主(owner)
 文件的属组(group)
 文件的大小(size),单位是字节  
 文件时间戳(timestamp),最后一次被修改的时间
    访问:access
    修改:modify(指修改文件内容)
    改变:change,metadata,元数据
    
  -h :人类可以识别的,做单位换算 
  -a:显示以.开头的隐藏文件
    .当前目录
    ..表示父目录
  ——A表示当前目录    
  -d:显示目录自身属性
  ls -ld /root
  -i:显示文件的索引节点号码
  index node,inode
  -r:逆序显示
  -R:递归(recursive)显示  
cd:change directory
  家目录,主目录,home directory cd(不带任何属性就回到家目录)
  cd ~student(只有管理员才有这个权限)
  cd - 在当前目录和前一次所在的目录之间来回切换

命令类型:
内置命令(shell内置)内部,内建
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
type:显示指定属于哪个类型
环境变量:变量是命名的内存空间
变量赋值,给里面存数据
Name=Jerry
path linux是使用:隔开
hash 表示缓存命令


date :时间管理(晶体振荡器)
Linux:rtc
ntp 网络时间协议,linux开机有两个时钟:
硬件时钟:hwclock
系统时钟:date

如何获得命令的使用帮助:
内部命令:
help Command
外部命令:
Command --help
命令手册:manual
man Command
man命令输入q退出
whatis Command
查找在哪个章节
分章节:
1.用户命令章节一共有8个
2.系统调用

man 2 read 
字符集不匹配用 # export LANG=en
3.库调用
4.特殊文件(设备文件都是特殊文件)
5.文件格式(配置文件的语法)
6.游戏相关()
7.杂项:Miscellaneous
8.管理命令(/sbin,/usr/sbin,/usr/local/sbin)
<>必须给出的内容,非可选的
... 可以出现多次
|:多选一

{}表示用来分组,没有特殊意义
  SYNOPSIS:用法说明,包括可用的选项
  DESCRIPTION:命令功能的详尽说明,包括每一个选项的意义
   OPTIONS:说明每一个选项的意义
FIFLES:此命令相关的配置文件

SEE ALSO:另外参照
修改时间 date 0226101913.30

翻屏
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:ENTER
向前翻一行:k
找寻实例:
查找功能:
/KEYWORD:自前向后
?KEYWORD:自后向前
n 下一个
N: 前一个
退出使用q
date +%D 显示月日年 02/08/13
命令使用:
hwclock -s(读取硬件时间到系统)
hwclock -w(读取系统时间到硬件)

    
info 变成在线手册
练习: 使用date单独获取系统当前的年份、月份、日、小时、分钟、秒

cal :日历
1.echo是内部命令还是外部命令tupe echo(内部命令)
2.作用?
3、如何换行显示?
4、

file 命令以及用法:
windows:PE
Linux:ELF
文件系统:
rootfs:根文件系统
FHS:Linux
/boot:系统启动相关的文件,如内核。initred,以及grub(bootloader)
/dev 设备文件
块设备文件(block):随机访问,数据块
字符设备文件(character):线性访问,按字符为单位。
设备号:主设备号(major) 和设备号(minor)
/etc :配置文件
/home:用户的家目录,每一个用户的家目录默认为/home/USERNAME
/root:管理员的家目录
/lib :库文件
/lib/modules:内核模块文件
静态库 .a ,相当于一个链接文件,运行的是一个文件,直接编译过去
静态库, .dll,so(shared object),内存中只有一份
/media :挂载点目录,必须关联到当前系统的某一目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序安装目录
/proc :没有任何内容,系统启动时是不空的,伪文件系统,内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件
/var:可变化的文件
/bin:binary,可执行文件,用户命令
/sbin 管理命令
/usr :shared,read-only,全局共享只读文件
/usr/bin
/usr/sbin
/usr/lib
/usr/local:一般是第三方的软件
命名规则:
1.长度不能超过255个字符
2.不能使用/当文件名
3.严格区分大小写
绝对路径:由根开始
相对路径:相对于当前结点

文件管理
文件的创建和删除
touch 没有任何参数是创建文件
$ touch -at 01081010 hs_err_pid2874.log
touch a(主要是更新文件的时间戳的)
touch m(修改修改时间)
touch -m -t 201212121212 a
文件和目录是同名

#start
创建文件也可以使用文本编辑器去创建

目录管理
ls
cd
pwd
mkdir:创建空目录
-P:如果不存在,就创建父目录
mkdir -p /x/y/z
-v:表示会显示创建时的详细信息
mkdir -pv /mnt/test/{x/m,y}
{}表示命令行展开
命令行创建:
(a+d)(b+c)=ab+ac+bd+cd
mkdir -pv /mnt/test2/{a,d}{b.c}

tree:查看目录树
刪除空空目录:
 rmdir /mnt/test2/
 unicode
 rm -i 提示删除
    -f 强制删除
    rm -rf 递归删除目录不用提示

 nano 简单自由编辑器,可以填写一部分内容。
 复制和移动文件
 cp:copy
 cp SRC DEST
  一个文件到一个文件
  多个文件到一个目录
  目标如果是一个目录放到一个目录下,就是原文件
  如果源是多文件就必须是个目录
  mv:mvoe
  移动文件
  mv SRC DEST
  注意不能用目录去覆盖一个非目录,例如:mv /tmp/hello/ /var/tmp/adbc
  mv abc mn(如果路径一致,命名不同就是重命名)
  mv -t DEST SRC
  install 也可以用来创建目录例如
  install -d /tmp/{install.1,install.2}
  install -t DIRECTORY SRC ...
 cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/
 (这个是花括号展开命令) 

运行程序
设备管理
软件管理
进程管理
网络管理

Gentoo 手动安装编译
LFS(Linux From Scratch)

目录管理:
ls、cd、pwd、mkdir、rmdir、tree
文件管理:
touch、stat、file、rm、cp、mv、nano
日期时间
date、clock、hwclock、cal

查看文本:
cat、tac、more、less、head、tail

cat:连接并显示
cat -n /etc/issue (自动显示行号)
cat ——E /etc/issue (显示末尾)

实现有效翻页:
shift+PgUp(往前翻一页)
shift+PgDn+(往后翻一页)

分屏显示命令:
more、less
more 向后翻
more+space 向后翻一页
more+B 向前翻一页

Enter 显示下一行

less 与more一样,k建向前翻一行
是不会退出的,如果退出按Q键

head:命令查看文件的前n行
tail:命令查看文件的后n行
   -n 默认是10,可以指定显示多少行
   
例如:cp /etc/inittab /tmp
      tail 查看文件尾部并不退出,显示追加内容
      -f /tmp/inittab

Linux 以$表示结束
如果敲命令的时候,想起来需要执行其他命令,需要执行Ctrl+C,可以退出当前命令
文本处理:
cut、join、aed、awk
database:数据库
关系型数据库:
可以没有行,但不能没有列
cut -d (delimit 分隔符不指定的默认是空格):(表示以冒号作为分隔符)
-f 指定要显示的字段
-f 1,3 显示1和3的字段
-f 1-3 显示1到3的字段

文本排序命令:sort 默认以升序进行,不是按数值大小排序
-n 按数值大小排序
-r reverse,按着倒序排序
-t 字段分隔符
sort -t: -k3 /etc/passwd
-k 以哪个字段为关键字进行排序
-u unique (表示唯一独特的)(只要两个行不相邻,就不认为它是重复的,相邻并且内容完全重复的才是重复的行)
-f 表示排序时忽略字符大小写
unique -d sort.txt(只显示重复的行)
-D 显示重复的行有哪几个
-c 重复的行都显示出来,并显示重复了几次
文本统计类命令:wc word count
例如:wc /etc/fstab
-l 多少个行
-m 多少个字符
-w 多少个单词
-L 最长的一行包含多少个字符
tr 字符处理命令
tr 'ab' 'AB'
等待输入内容然后将ab 转成AB
一般情况下用输入重定向:
tr 'ab' 'AB' < /etc/passwd (表示将文件中的ab替换成AB)
tr -d 'ab' 删除a和b ,删除字符中的所有该字符

bash及其特性:
shell:外壳
GUI:Gome,KDE,XFce
CLI:sh,csh,ksh,bash
程序:进程,可以理解为程序的副本
允许可以一个用户登录多次,每个进程是不同的,在每个进程看来,当前主机上只存在内核和当前进程
进程是程序的副本,进程是程序执行实例
shell自身是外部命令,pwd是shell的自有命令
shell有子shell概念
pstree csh (打印shell关系)

bash:
1.命令历史
2.管道、重定向
3、命令别名
4.命令行编辑
5.命令行展开
6.文件名通配
7.支持使用变量
8.编程
命令行编辑:
命令光标跳转:Ctrl+A :命令行行首
Ctrl+E:命令行行尾
Ctrl+U:删除光标到命令行首的内容
Ctrl+K:删除光标到命令行尾的内容
Ctrl+左右箭头:前后删除个单词(终端不支持)
Ctrl+L:表示清屏

命令历史
过去曾经执行过的命令:
history
—c:清空命令历史
-d:删除第n行
history -d 500 3 (表示从500行往后3行删除)
-w :保存命令历史至历史文件中

环境变量:
Path:命令搜索路径
HISTORY:命令历史大小(默认1000)

命令历史的使用技巧:
!n (执行命令历史中的第n条命令)
!-n:执行命令历史 中的倒数第n条命令
!!执行上一条命令
!String 执行命令历史中最近一个以指定字符串开头的命令
!$ 引用上个命令的最后一个参数
按ESC松开,再按.
命令补全:按住tab,必须唯一,在命令搜索路径下查找
按两下,可以选择
路径补全,搜索我们给出的起始路径下的每个文件名,并试图补全。

命令别名:
alias CMDALTAS=COMMAND [options] arguments
alias cls=clear
如果想做到永久有效,需要设置到bashell的配置文件里面
unalias CMDALTAS
命令替换$(command),反引号command
把命令中某个子命令替换为其执行结果的过程
例如:echo “The current directory is $(pwd).”
用touch命令创建一个文件,这个文件以年月日命名,
file-2013-02-28-14-53-31.txt
touch ./file-$(date +%F-%H-%M-%S).txt
echo “Dir is pwd
bash支持的引号:
``:命令替换
“”:弱引用,可以实现变量替换
'':强引用,不完成变量替换
文件名通配:globbing
:任意长度的任意字符
?:匹配任意单个字符 ls ?y

[]:匹配任意范围内的单个字符[abc],[a-m]
[^]:匹配指定范围外的 任意字符
例如以字母开头,中间任意字符,以数字结尾,[a-zA-Z][0-9]
例如ls a
(以a开头的任意文件)
以a开头以3结尾的文件 ls a3
文件名之间能不能使用空格,能,touch 'a b'
表示所有空白字符[[:space:]]
所有标点符号[:punct:]
小写字符集合 [:lower:]
大写字母[:upper:]
大小写字母[:alpha:]
数字[:digit:]
数字和大小写字母[:alnum:]
#man glob 7 可以获取列表
以字母开头,字母结尾,中间有空格
[[:alpha:]]
[[:space:]][[:alpha:]]
以字母开头,非字母结尾,中间有空格
[[:alpha:]]
[[:space:]]*[^[:alpha:]]

练习:
显示以a或m开头的文件
ls [am]*
显示所有文件中包含了数字的文件
ls [0-9]
ls [[:digit:]]
显示文件名中包含了非字母或数字的特殊字符的文件
ls [^[:alnum:]]*

++++++++++++++++++++++++++++++++++++
定义了用户或资源的访问能力叫权限
方便地向一类用户赋予权限,用户组就是一个权限的容器(方便地指派权限)
其他用户的访问权限,用户是获取资源的凭证
用户:标识符
用户组:标识符

文件:某个标识符所有
进程也是有属组,谁发起的就由谁操作
安全上下文(security context)
每个linux都有3位权限
权限:
r,w,x
文件:
r:可读,可以使用类似cat命令查看文件内容:
w:可写,可以编辑或删除此文件
x:可执行,excutable,可以在命令提示符下当作命令提交给内核运行

目录:
r:可以对此目录执行ls以列出内部的所有文件。
w:可以在此目录中创建文件。
X:可以使用cd切换到此目录。也可以使用ls-l内部文件的详细信息

一般不让文件有执行权限,目录一般有执行权限。
r--:只读 100
r-x:读和执行 101
---:无权限 000

0 000 ---:无权限
1 001 --x:执行
2 010 -w-:写
3 011 -wx:写和执行
4 100 r--:只读
5 101 r-x:读和执行
6 110 rw-:读和写
7 111 rwx:读写执行

用户:UID,/etc/passwd
组:GID,/etc/group
 
影子口令:
用户:/etc/shadow
组:/etc/gshadow

解析:名称解析

用户类别:
管理员:Id永远为0
普通用户:1-65535
   系统用户1-499
   一般用户 500-60000
用户组:
管理员组:
普通组:
   系统组:
   一般组: 
   
用户组类别:
    每一个用户都有它默认的组,这个组叫做基本组,如果默认组设置成其他的组,默认组不一定是私有组
 创建用户没有属组的话,就会创建一个仅包含该用户的同名的属组,这个组叫做私有组
 附加组,额外组 
 一个命令一定是一个可执行文件,因此任何文件都有它的访问身份(运行之前文件的访问身份),执行完后就是一个进程
 这样它的访问权限就取决于该发起者的身份,这个就是安全上下文
 man 5 passwd (就可以看到对密码文件的说明信息)
 /etc/passwd
 account:登录名
 password:密码
 UID:
 GID:基本组id  
 comment:用户的注释信息  
 HOME DIR:家目录
 SHELL:用户默认shell
 
 /etc/shadow
 account:登录名
 encryted password:加密的密码
 
 加密方法:
    对称加密:加密解密使用同一个密码
    公钥加密:每个密码都成对出现,一个私钥(securet key),一个公钥(public key),一般用于密钥交换
    单向加密:也叫散列加密,可以用明文变成密文,主要用于提取数据特征码,单向加密
    也叫指纹加密,一般用于数据校验
      1.雪崩效应,只做一点的修改,就会导致与之前有很大的不同
      2.定长输出:无论数据是多大,它得到的数据长度都是一样的
         MD5:Message Digest:128位定长输出
         SHA1:Secure Hash Algorithm 160位定长输出
      3、
    查看某个命令 which useradd
    /usr/sbin/useradd
    ls -l /usr/sbin/useradd==ls -l $(which useradd)

useradd USERNAME(它会添加默认属性)
查看用户是否添加 tail -1(数字1) /etc/password
file useradd (用于查看文件类型)
用户管理:
useradd,userdel,usermod,passwd,chsh,chfn,finger,id,change,metadata,元数据
组管理:
groupadd,groupdel,groupmod,gpasswd
权限管理:
chown,chgrp,chmod,umask

useradd
  -u UID 用户尚未使用的id号必须大于等于500
  -g GID (基本组)
  useradd -g mygroup user2
  user2:x:1001:504(组id号)::/home/user2:/bin/bash
  -G GID,...(指定其附加组,附加组可以由多个用逗号隔开)
  useradd -G mygroup user3
  -c "COMMENT" 指定注释信息
  -d /path/ to/somedirectory useradd -c "Tony Blare" -d /home/blare user4
  -s 
  
  /etc/shells,指定了当前系统可用的安全shell
  
  指定shell
  用cat /etc/shells
  
  -m -k (一些shell的配置文件),一般强行给该用户创建一个家目录

环境变量:
PATH:
HISTORY:
SHELL
查看当前shell echo $SHELL

  -M 不给用户创建家目录
/etc/login.defs
  
删除用户
 userdel:删除用户是不会删除家目录的,如果想删除家目录,
   用 userdel -r user2
 userdel [option] USERNAME
 id:查看用户的账户信息
    参数不添加,就是显示当前用户的信息
id user1
   查看用户user1的信息
 -u
 -g
 -G
 -n一起使用显示组名
finger :查看用户账户信息
显示用户的完整信息,登录名,家目录
finger USERNAME

修改用户 的账户属性
  usermod
    -u 2002 UID
    -g 改的基本组GID
    ——G 改的附加组GID,它会覆盖原有的附加组
  -a G,就会在原来的基础上添加个附加组  
  -c 注释信息
 -d -m,(就会将原来的信息用到新的家目录里面)指定家目录,主意如果原来它的家目录下有信息,指定新的家目录,那么原来的用户家目录下的信息就没有了  
 -s 改用户的shell
  -l 修改用户登录名
  -e 修改用户的过期时间
  ——L:锁定用户信息
  -U:解锁用户信息
chsh:修改用户的默认shell
cdfn:修改用戶的注释信息 
密码管理:
passwd [USERNAME]
   --stdin
 echo "redhat" | passwd -- stdin user3(表示从管道接收redhat给user3作为密码)
    -l 锁定用户账户
    -u 解锁用户账户
    -d 删除用户密码
pwck 检查用户账户的完整性
组管理:groupadd
   -g 指定GID
   -r 添加为系统组
      useradd -r apache(注意系统用户是不会给家目录的)
       groupadd -r ngix  
       tail -1 /etc/group
       为服务器安装服务软件时会创建系统组
groupmod
   -g GID
   -n GRPNAME 修改组名
 groupdel 
 gpasswd 给组加密码 gpasswd mygroup
 用户创建文件会属于他们的基本属组
 本身如果属于这个组,就不需要密码
  不属于这个组,后来又需要添加到这个组,就需要密码
newgrp 是登录属性 使用exit是可以退出的

练习:
1.创建一个用户mandriva,其ID为2002,基本组为distro(组ID为3003),附加组为linux;
#groupadd -g 3003 distro
#groupadd linux
#useradd -u 2002 mandriva -g distro -G linux  mandriva

2.创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh;
#useradd -c "Fedora Community" -s /bin/tcsh fedora

3.修改mandriva的ID为4004,基本组为linux,附加组为distro和fedora;
#usermod -u 4004 -g linux -G distro,feora  mandriva

4.给fedora加密码,并设置密码最短有效期为2天,最长为50天。
#passwd -n 2 -x 50 fedora

5.将mandriva的默认shell改为/bin/bash;
#usermod -s /bin/bash mandriva

6.添加系统用户hbase,且不允许登录系统。
#useradd -r -s /sbin/nologin hbase

change
  -d 最近一次修改时间
  -E 过期时间
  -I 非活动时间
  -m 最短使用期限
  -M 最长使用期限
  -w 警告时间

权限管理:
r--:只读
w-:写
x:读和执行
三类用户:
U:属主
G:属组
O:其他用户
文件查找
特殊权限
chown:改变文件属主(只有管理员才有这个权限)
chown hadoop /tmp/abc
--reference=/path/to/somefile ,...改成与这个目录属组一样
chown --reference=/tmp/abc /tmp/tmp 是属组属主一块修改
#chgrp GRPNAME file,...切换属组
-R 递归修改
--reference=/path/to/somefile

#chmod 修改权限
  修改三类用户的权限:
  

  位数不够就补0
  chmod 750 /tmp/abc
  chmod 75 /tmp/abc
  -R
  --reference=/path/to/somefile file,...
  
 修改某类用户和某些类用户的权限: 
   chomd u=rwx /tmp/abc
   chmod g=rw /tmp/abc
   chmod o=rx /tmp/abc
   给出的就是有这个权限,没有给出的就是没有—— 
   也可以组合指定两类用户的权限:
   chmod g=r,o=r /tmp/abc
   chmod g=rx,o= /tmp/abc
  
   修改某类的用户某位权限 
   u,g,o,a
   chmod 用户类别+|-MODE file,...
   chomd u+x,g-x /tmp/abc
   chomd a+x /tmp/
   
 练习:
 1.新建一个没有家目录的用户openstack:
 #useradd -M openstack
 2.复制/etc/skel为/home/openstack
 #cp -r /etc/skel/ /home/openstack
 3.改变/home/openstack及其内部的属主属组均为openstack
 #chown -R openstack:openstack /home/openstack
 4./home/openstack及其内部的文件,属组和其它用户没有任何访问权限
 #chmod -R go=(这样属组和其它用户没有权限)  /home/openstack
  
  ls -l "which passwd"
  -rws(属主权限是s)r-xr--x
  
  练习:
  手动添加用户hive,基本组hive(ID号都是5000),附加组为mygroup
  1.nano /etc/group
  到最后一行
  hive:x:5000: 
  然后在mygroup这一行加入hive
  mygroup:x:504:user3,hive 
  2.nano /etc/passwd
  到最后一行
  hive:x:5000:5000:Hive:/home/hive:bin/bash
  3.nano /etc/shadow
  到最后一行
  hive:!!:15765:0:99999:7:::
  每天秒数86400
  使用bc作为计算器
  4,提供家目录 cp -r /etc/skel/ /home/hive
  5.chown -R(及其子文件) hive.hive /home/hive
  6.让go没有任何权限
  chmod -R go=/home/hive
  
  这样su过去,但是不能登录
  可以用算法生成个密码,openssl passwd -l salt '12345678'
  nano /etc/shadow 
    hive:!!(把!!去除然后粘进去生成的密码):15765:0:99999:7:::
 
umask:遮罩码
创建目录:
777-umask
创建文件:
666-umask:文件不能有执行权限,如果有加1

站在用户登录的角度来说,SHELL的类型: 
登录式shell:
   正常通常某终端登录:
   su -USERNAME
   su -l USERNAME
   非登录式SHELL:
     su -USERNAME
     图形终端下打开命令窗口:
     自动执行的shell脚步 
bash的配置文件:
全局配置
    /etc/profile ,/etc/profile.d/*.sh,/etc/bashrc
个人配置
   ~/.bash_profile,~/.bashrc

profile类的文件:
设定环境变量
运行命令或脚步

bashrc类的文件:
设定本地变量
定义命令别名
登录式shell如何读取配置文件:
/etc/profile -->/etc/profile.d/.sh -->/.bash_profile-->/.bashrc-->/etc/bashrc
非登录式shell 如何读取配置文件:
~/.bashrc-->/etc/bashrc -->/etc/profile.d/
.sh

定义别名bashrc
nano .bashrc 最后加一行:alias cls='clear'

nano .bash_profile
PATH=$PATH:$HOME/bin
export PATH
echo "Hello,hive.Welcome to our system,it is'date'"

bash:脚步解释器
计算机的五大构件:
运算器,控制器:cpu
存储器:RAM
输入设备/输出设备

程序:指令和数据

运算器: 整个过程是由运算器完成的
控制器:指令
存储器:

地址总线:内存寻址
数据总线:传输数据
控制总线:控制指令

寄存器:cpu 暂时存储器
I/o:硬盘
程序

INPUT设备:
OUTPUT设备:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容