计算机基础
一、计算机系统组成
计算机系统由硬件(Hardware)和系统软件(Software)系统两大部分组成
二、冯·诺依曼体系
三、服务器存储类型
DAS:直接连接存储,存储直接与服务器相连,类似于在服务器上直接加个存储,用IDE、SATA线等线缆进行连接.
NAS:网络连接存储,通过局域网,在多个服务器直接实现了文件共享,类似于NFS、windows共享的模式.
SAN:存储区域网络,有SAN的服务端和SAN的客户端,客户端通过网络连接到存储上,效果类似在本地加上一块磁盘,通过光纤或者网线相连.
四、ABI和API:
ABI:应用程序二进制接口,在应用程序和操作系统之间.
API:应用程序调用接口,在底层和操作系统之间.
五、文件系统:
ntfs、fat、iso9660
ext2、3、4、CentOS6.X系统默认的文件系统
xfs、btrfs CentOS7默认的是xfs文件系统
六、分区方案:
MBR:
主分区:一个磁盘主分区的数量<=4,系统要装在主分区上,如果服务器上有两块磁盘,那么其中一块磁盘可以没有主分区;
扩展分区:一个磁盘只能有一个扩展分区,扩展分区数量+主分区数量<=4,扩展分区不能存储数据,只能又来划分逻辑分区;
逻辑分区:逻辑分区分区号从5开始编号,sda5;
主分区和扩展分区的编号可以认为指定,但是扩展分区里面的逻辑分区的编号是系统自动指定的;
分区后需要挂载后才能使用;
swap分区在以前内存小的情况下,通常是实际内存的两倍,但目前服务器内存比较大,一般测试环境给2G就够了,生产环境中8G以上的内存,可以分10G左右就够了.
七、Linux哲学思想:
1.一切皆文件;
2.小型、单一用途的程序;
3、链接程序,共同完成复杂的任务;
4、避免令人困惑的用户界面;
5、配置数据存储在文本中.
八、shell类型
shell:功能可以理解为将命令翻译成计算机能够识别的0101(二进制) 代码,翻译器.
shell的种类:sh、csh、tcsh、ksh、bash、zsh
/etc/shell配置文件中保存了当前系统支持的shell类型
九、用到的一些命令
lscpu 可以查看cpu的信息
md5sum /dev/sr0 可以计算出来指定文件的md5值
whoami 可以显示当前是哪个用户登录
tty 可以显示当前登录的是哪个终端
chvt 1-6 表示利用终端切换界面
hostname 可显示完整的主机名
lsb_release -a 查看当前操作系统的版本信息
uname -r 查看内核版本
id -u 可以查看当前登录用户的UID
id -u USERNAME 可以查看指定用户的UID
echo $SHELL 可查看默认的shell类型
getent passwd ftp 可以查看ftp用户的/etc/passwd中的条目
type COMMAND 可以查看指定的命令是外部命令还是内部命令
hash 可以将外部命令的路径结果缓存下来
十、相关命令详解
cd 改变工作目录
语法: cd /PATH/TO/SOMEDIR 切换到指定目录
cd 切换回家目录
cd ~ 切换回自己的家目录
cd ~USERNAME 切换到指定用户的家目录(只有管理员才有权限切换到其他用户的家目录)
cd – 在上一次所在目录与当前目录之间来回切换
PWD 用来记录当前工作目录的环境变量
OLDPWD 用来记录上一次工作目录的环境变量
ls:列出指定目录下的内容
语法:ls [OPTION]…[FILE]…
常用选项:
-a 显示所有文件,包括隐藏文件
-A 显示除.和..之外的所有文件
-l 长格式列表,表示显示文件的详细属性信息
显示出来的信息为
-rw-r-x— 1 root root 8827 10月15 20:34 testa.log
-rw-r-x—该文件的文件类型和相应的权限
最前面一个-表示文件的类型,后面9位表示相应的权限
文件类型:
-:表示是普通文件,
d:表示是目录
b:表示是块设备文件,支持以“block”为单位进行随机访问
c:表示是字符设备文件,支持以“character”为单位进行线性访问
l:表示是符号链接(软链接)文件
p:表示是管道文件,有名字的管道文件
s:表示是套接字文件
1 表示文件被硬链接的次数
root 表示文件的属主
root 表示文件的属组
8827 表示文件的大小
但是如果对ll /dev 该处显示的是两个数字,类似brw-rw—-. 1 root cdrom 11, 0 7月13 00:34 sr0
这里的数字前一个表示主设备号,后一个表示次设备号,一个标识设备类型,后一个标识同一类不同设备
10月15 20:34 表示文件最后一次被修改的时间
-h 表示对文件大小做单位换算,换算后的结果可能为非精确值(1000和1024的区别)
-d 表示仅显示目录自身,而不是目录下面每个文件的属性,要与-l一起使用,显示目录自身的属性信息
-r ,–reverse 表示显示时以逆序的方式进行显示,默认是升序显示
-R ,–recursive 表示递归显示
cat:显示文本文件的文件内容
语法:cat [OPTION]…[FILE]…
选项:
-n 给显示的文本行编号
-E 显示行结束符,Linux行结束符为$
FILE可以有多个,显示的时候将多个文件全部列出来
echo:回显命令
语法:echo [OPTION]…[STRING]…
选项:
-n 显示完成后不自动进行换行
-e 让转意符生效,而不是显示出来
转意符:\n 表示换行
1. \b 表示退格2. \t 表示制表符3. \0nnn插入nnn(八进制)代表的ASCII编码
利用上述的可以改颜色,颜色配置文件在/etc/DIR_COLORS
echo -e “\033[背景颜色;字体颜色m字符串\033[0m” 背景颜色可省略
echo -e “\033[43;31m nihao \033[0m”
43;31表示前景色和背景色
字体颜色:30-37分别表示:黑、红、绿、黄、蓝、紫、天蓝、白色
背景颜色:40-47分别表示:黑、红、绿、黄、蓝、紫、天蓝、白色
\033[0m是控制选项,0m表示无属性,1m表示高亮度,4m表示下划线,5m表示闪烁,7m表示反显,8m表示隐藏显示
echo -e “\033[5m\033[44;32m*\033[0m” 显示为*号闪烁,如果写到最后面\033[0m这里,则会变成显示完成后换行后的命令提示符闪烁
STRING:可以使用引号,单引号和双引号均可使用
单引号:强引用,变量引用不执行替换;
双引号:弱引用,变量引用执行替换;
如:echo “SHELL’
显示出来的信息为 USER结果为echo root
echo ‘echo USER
echo “echo $USER”结果为 echo root
echo echo $USER
结果为root
注意:变量引用中的正规引用表示法为 ${SHELL},只是很多时候{}可以被省略
shutdown: 关机或重启命令
语法:shutdown [OPTIONS…][TIME][WARNING…]
选项:
-h:表示关机
-r:表示重启
-c:表示取消之前定义的关机或重启操作
TIME:
now:表立即
hh:mm 表示指定的时间点
+m 表示在当前时刻的多少分钟之后
WARNING:表示提示信息
例如:shutdown -r +10 “system is going to reboot after 10 minutes”
日期相关的命令:date、clock、hwclock、cal
Linux有两套时间,一套是硬件时钟,一套是系统时钟,系统启动时,从硬件读取日期和时间信息;读取完成以后,就不在与硬件相关
date:显示或设置系统时间(显示和设定系统时钟)
语法:date [OPTION]… [+FORMAT] 用来显示时间日期
date [MMDDhhmm[[CC]YY][.ss]] 用来设置时间日期
date -d “STRING” :显示指定字符串的日期
例如:date -d yesterday
date -d “10 days ago” 显示10天以前的日期
date -d “1 month 10 days ago” 显示1个月10天之前的日期
date -d “20 days” 显示20天之后的日期
date –set 20160725 可以将日期设置为2016年7月25日
date –set “20160726 17:25:26”可以设定日期和时间
+FORMAT:表示显示为指定格式的日期,+为固定格式
FORMAT支持的常用格式有:
%F:显示为例如2016-07-20的日期格式
%T:显示为例如08:58:15这样的时间显示格式
%Y:显示年
%m:显示月
%d:显示日
%H:显示几点
%M:显示几分
%S:显示几秒
%j:显示当前数一年中的第多少天,值为1-356
%D:显示为07/22/16这样月/日/年格式
%s:显示时间戳,也就是从1970年1月1号0点0分0秒到当前时间所经历的秒数
多个格式之间用空格分隔,可以将整个格式用双引号引起来
例如:date +“%F %T”
例如:date +“%Y%m%d %H%M%S”
date +“YEAR:%Y Month:%m”
设定时间的例子:
date 072008522016.25 表示修改时间为07月20日08点52分钟2016年 25秒
clock,hwclock:查询和设定硬件时钟(硬件时钟,可理解为BIOS时钟)
clock和hwclock为同一套命令,clock是hwclock的硬链接
clock不跟任何信息,表示显示硬件时钟
-s,–hctosys 表示将系统时间设置为跟硬件时间一样的时间
-w,–systohc 表示将硬件时间设置为跟系统时间一样的时间
cal:显示日历
cal 表示显示当前这个月的日历
cal 2016 表示显示指定年的全年的日历
cal 07 2016 表示显示指定年的指定月的日历
type:显示命令的类型,是内建命令还是外部命令
例如:type ls
如果原始命令被隐藏,要想使用原始命令,可以使用\ls
whatis COMMAND可以显示命令的大致功能说明
which:用来显示命令的完整路径
语法:which [OPTION]…COMMAND
例如:which ls
选项:
–skip-alias 忽略命令别名,而直接显示命令本身
whereis:显示命令的路径以及相关帮助文件的路径信息
语法:whereis [OPTIONS] NAME
例如:whereis ls
选项:
-b仅显示二进制文件程序的路径
-m仅显示帮助文件的程序的路径
who:显示当天系统的有哪些登录用户
语法:who [OPTIONS]…
who 显示当前系统的所有登录用户的信息
who 显示当前系统的所有登录用户的信息
who -b 显示系统启动的时间
who -r 显示系统启动的时间,以及当前的系统运行级别
who -d 显示系统死亡进程的信息
who -u 显示各个登录用户的信息,包括显示登录持续时常和登录的进程号
w:增强版的who命令,用于显示当前所有登录的用户,及其在操作的动作等详细信息
命令别名:
alias 可以显示当前系统上的命令别名信息
定义命令别名:
alias NAME=’COMMAND’ 只对当前shell有效,立即生效,重启后失效
例如 alias cds=‘cd /etc/sysconfig/network-scripts/’
撤销别名:
umalias NAME
例如 unalias cds
hash命令:可以对命令的路径缓存至内存中
hash 可以查看缓存的列表
hash -d COMMAND 可以将hash缓存中包含COMMAND的条目删除
hash -r 可以清空hash路径缓存的缓存表
screen命令:字符界面实现远程协助(前提是:连到同一台机器,使用同一个账号)需要安装该screen软件,yum install screen
打开新共享桌面:screen -S 共享会话的名称
显示共享桌面会话列表:screen -ls
对方连到建立的共享会话上:screen -x 会话名称
退出会话ctrl+a,d
退出后再次连接上 screen -r 会话的进程号
退出并完全关闭会话exit
在远程登录的时候,运行一个执行过程比较长的程序(例如备份),为了防止断网后,
程序断开,无法知道程序运行的状态,可以单独开个screen来运行该程序
命令执行的优先级:命令别名>内部>外部命令缓存(hash)>外部命令
十一、课后作业
1、 用echo显示闪烁的,带颜色的倒三角
echo -e “\033[背景颜色;字体颜色m字符串\033[0m” 背景颜色可省略
echo -e “\033[43;31m nihao \033[0m”
43;31表示前景色和背景色
字体颜色:30-37分别表示:黑、红、绿、黄、蓝、紫、天蓝、白色
背景颜色:40-47分别表示:黑、红、绿、黄、蓝、紫、天蓝、白色
\033[0m是控制选项,0m表示无属性,1m表示高亮度,4m表示下划线,5m表示闪烁,7m表示反显,8m表示隐藏显示
echo -e “\033[5m\033[44;32m*\033[0m” 显示为*号闪烁,如果写到最后面\033[0m这里,则会变成显示完成后换行后的命令提示符闪烁,故可以:
1.[[email protected] ~]# echo -e "\033[5m\033[31m*******\n ***** \n * \033[0m" #显示为一个红色,闪烁的倒三角
2、date显示前十天前的日期,后20天的日期信息
date -d “10 days ago” +%F 显示10天前的日期
date -d “20 days” +%F 显示20天后的日期
3、screen命令:字符界面实现远程协助(前提是:连到同一台机器,使用同一个账号)需要安装该screen软件,yum install screen
打开新共享桌面:screen -S 共享会话的名称
显示共享桌面会话列表:screen -ls
对方连到建立的共享会话上:screen -x 会话名称
退出会话ctrl+a,d
退出后再次连接上 screen -r 会话的进程号
退出并完全关闭会话exit
在远程登录的时候,运行一个执行过程比较长的程序(例如备份),为了防止断网后,
程序断开,无法知道程序运行的状态,可以单独开个screen来运行该程序