本人学习Linux系统一周,以下是个人的一些总结和心得
一、计算机基础
一个完整的计算机系统由硬件(Hardware)系统和软件(Software)系统两大部分组成。
1.1 计算机硬件
- 冯·诺依曼体系约定计算机应由五大部分组成,分别是运算器、控制器、存储器、输入设备和输出设备。
- 计算机硬件只能识别二进制。
- 计算机按规模划分为 超级计算机、大型计算机、小型计算机、微型计算机。按功能和角色划分服务器和客户机。
- 服务器按外形划分为三种,分别为塔式服务器、刀片式服务器、机架式服务器。
- 服务器的主机和家用电脑主机组成大致相同,但价格昂贵,一般不需要图形输出,因此也不用添加额外的独显。
- 计算机的各个设备部件之间的延时从高到底的排列,依次是机械硬盘、固态硬盘、内存、CPU。而价格排列为从低到高。所以,如何合理运用存储器才是关键。
1.2 计算机操作系统
- 操作系统简称OS,实质上也是一个软件,但是它可以分配硬件资源,相当于用户和硬件之间交互得窗口。
- 服务器三大操作系统:Windows、Linux、Unix。其中以Unix是操作系统的鼻祖,历史最早。Windows作为商业系统不开源.而Linux系统是开源系统,是完整的类UNIX操作系统 Linux内核+ GNU工具=Linux/GNU 如:
CentOS,Ubuntu,Android。同时也因为Linux得开源性,世界上的Linux系统版本众多。
二、Linux系统安装
2.1 Linux的哲学思想
- 一切都是一个文件(包括硬件)
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文本中
2.2 安装Linux CentOS 8 1905
以Linux CentOS 8-1905版本为例,在VMware虚拟机上安装操作系统,以下给出了关键步骤的操作。
- 首先在VMware虚拟机上创建一个2GB内存2个CPU的虚拟机。网络模式选择NAT,硬盘为200G。
- 然后选择存放在硬盘中的ISO安装镜像文件。
- 开启虚拟机。
- 首先选择安装语言,一般选择English。
- 设置磁盘空间分配策略。 硬盘模式改为标准模式。
分区1(100G)—mount— /
分区2 (50G)—mount— /data
分区3 (1G )—mount— /boot
分区4 (2G )—mount— swap - 选择时区—SHANGHAI (CST)
- 选择网络连接。并设置hostname主机名。
- 设置登录用户及密码
- 开始安装。进入操作系统界面。
三、 Linux系统基础入门
3.1 Linux 基础
- 用户类型:
root 用户 一个特殊的管理帐户 也被称为超级用户 root已接近完整的系统控制 对系统损害几乎有
无限的能力 除非必要,不要登录为 root
普通( 非特权 )用户 权限有限 造成损害的能力比较有限 - 终端terminal。
控制台终端: /dev/console
串行终端:/dev/ttyS#
虚拟终端:tty:teletypewriters, /dev/tty#,tty 可有n个,Ctrl+Alt+F#
图形终端:startx, xwindows CentOS 6: Ctrl + Alt + F7 CentOS 7: 在哪个终端启动,即位于哪个虚拟终端
伪终端:pty:pseudo-tty , /dev/pts/# 如:SSH远程连接 - 各种Shell,理解 bash shell
- 设置主机名
[root@centos8 ~]#hostname CentOS 8-1905
注意:主机名不能用下划线。 - 命令提示符。
提示符格式说明:
\e 控制符\033
\u 当前用户
\h 主机名简称
\H 主机名
\w 当前工作目录
\W 当前工作目录基名
\t 24小时时间格式
\T 12小时时间格式
如何修改提示符格式及颜色:
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
PS1=PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\ [\e[1;32m\]]\[\e[0m\]\\$"
- 执行命令
shell中可执行的两类命令:
内部命令:由shell自带的,而且通过某命令形式提供
外部命令:在文件系统路径下有对应的可执行程序文件
对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行
如果设置的别名想永久有效,要定义在配置文件中
如果别名同原命令同名,如果要执行原命令,可使用 - 常见命令
日期和时间
Linux的两种时钟:
系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板
date 显示和设置系统时间date +%s date -d @1509536033
clock,hwclock: 显示硬件时钟 -s, --hctosys 以硬件时钟为准,校正系统时钟 -w, --systohc 以系统
时钟为准,校正硬件时钟
显示日历:cal -h
关机和重启:
-r: reboot -h: halt -c:cancel TIME:无指定,默认相当于+1(CentOS7) now: 立刻,相当于+0 +#:
相对时间表示法,几分钟之后;例如 +3 hh:mm: 绝对时间表示,指明具体时间 - 命令行扩展和被括起来的集合
命令行扩展:$()
echo "This system's name is $(hostname) " This system's name is server1.example.com echo "i am
whoami" i am root
括号扩展:{ }
echo file{1,3,5} 结果为:file1 file3 file5 rm -f file{1,3,5} echo {1..10} echo {a..z} echo {000..20..2}
- tab 键补全
tab键可以实现命令及路径等补全,提高输入效率,避免出错。
双击Tab键得各项功能结果:
command 2Tab 所有子命令或文件补全
string2Tab 以string开头命令
/2Tab 显示所有根目录下一级目录,包括隐藏目录
./2Tab 当前目录下子目录,包括隐藏目录
*2Tab 当前目录下子目录,不包括隐藏目录
~2Tab 所有用户列表
$2Tab 所有变量
@2Tab /etc/hosts记录 (centos7不支持)
=2Tab 相当于ls –A (centos7不支持) - 命令行历史
保存你输入的命令历史。可以用它来重复执行命令 登录shell时,会读取命令历史文件中记录下的命令
~/.bash_history 登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中
命令:history
-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
命令历史相关环境变量:
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T " 显示时间
HISTIGNORE=“str1:str2*:…” 忽略str1命令,str2开头的历史
HISTCONTROL:控制命令历史的记录方式 ignoredups 是默认值,可忽略重复的命令,连续且相
同为“重复” ignorespace 忽略所有以空白开头的命令 ignoreboth 相当于ignoredups, ignorespace
的组合 erasedups 删除重复命令
注意:若同样想持久保存变量,同样需要把变量配置写入文件中 - bash的快捷键
Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕 输出
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + xx 光标在命令行首和光标之间
移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
Ctrl + w
从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Ctrl + d 删除光标处的一个字符
Ctrl + h
删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写
的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改
为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + # 提示输入指
定字符后,重复显示该字符#次
注意:Alt组合快捷键经常和其它软件冲突 - 获得帮助
多层次的帮助,分为:
whatis
command --help
man and info
/usr/share/doc/
Red Hat documentation
其它网站和搜索
有一句前辈们的话,获取帮助的能力决定了技术的能力!
所以,不懂就help,还不懂就call你的小伙伴!