这是一个专栏,将持续更新自己温故而之新,从新学习Linux基础的一个过程笔记。
如果你也是一个跟我一样每天都在不断学习,不断进步的。可以持续关注这个专栏哦!我们一起学习,一起进步。
Linux基础
CPU架构:
x86
x64 (amd64)
m68000, m68k
arm
ultrasparc solaris
power aix
powerpc, ppc
MIPS
alpha hp-ux
...
POS: POSIX
API: Application Program Interface
ABI:Application Binary Interface
Linux, BSD, AIX, ...: Unix-like
Unix类的系统:
API
ABI
Stallman: GNU
闭源:
开源:提供源代码;
开源协定:
GPL:General Public License
copyright, copyleft
LGPL:Lesser GPL
GPLv2, GPLv3
FSF:Free
BSD:
Apache:
ASF:Apache Software Foundation
双线授权:
Community:遵循开源协定;
Enterprise:
程序管理:
程序的组成部分:
二进制程序;
配置文件;
库文件;
帮助文件;
X, Y, Z
程序包管理器:
X:
程序的组成文件打包成一个或有限几个文件;
安装:
卸载;
查询;
Debian:deb, apt-get
RedHat:rpm, yum --> dnf
S.u.S.E: rpm, zypper
ArchLinux:port
Gentoo:
LFS: Linux From Scratch
kali:
安装Linux:
虚拟机:Linux
计算机:CPU, 内存, IO
虚拟化软件程序:
vmware workstation
virtualbox
CentOS的镜像站点:
http://mirrors.aliyun.com
http://mirrors.163.com
http://mirrors.sohu.com
ISO镜像:
硬盘分区:留出一些空间;实在不成,可安装完成以后,新增一块虚拟硬盘;
终端:terminal
用户界面:
GUI:
GNome
KDE
CLI:
bash, zsh, sh, csh, tcsh, ksh
查看所用的shell的类型:
~]# echo $SHELL
远程连接:
ssh协议:secure shell;
~]# ss -tnl
查看系统是否监听于tcp协议的22号端口;
~]# ip addr list
或
~]# ifconfig
查看IP地址;
确保防火墙处于关闭状态:
~]# iptables -L -n
CentOS 7:
~]# systemctl disable firewalld.service
~]# systemctl stop firewalld.service
CentOS 6:
~]# service iptables stop
~]# chkconfig iptables off
终端设备:terminal
多任务、多用户
物理终端,控制台:console
虚拟终端:6个,tty
Ctrl+Alt+F[1-6]
图形终端:
CentOS 6:
Ctrl+Alt+F7
CentOS 7:
在哪个虚拟终端启动,即位于哪个虚拟终端;
串行终端:ttyS
伪终端:pty
Linux的哲学思想之一:一切皆文件;
表现之一:硬件设备也通过文件表示;
物理终端:/dev/console
虚拟终端:/dev/tty# [1,6]
串行终端:/dev/ttyS#
伪终端:/dev/pts/#
注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互;
查看终端设备:
~]# tty
查看接口程序:
~]# echo $SHELL
启动GUI:
在某一虚拟终端接口运行命令:startx &
CLI接口:
命令行接口:
[root@node1 ~]# COMMAND
prompt:
root: 当登录的用户
node1: 当前主机的主机名,非完整格式;此处的完整格式为:node1.magedu.com
~:用户当前所在的目录(current directory),也称为工作目录(working directory);相对路径;
#:命令提示符;
#:管理员账号,为root; 拥有最高权限,能执行所有操作;
$:普通用户,非root用户;不具有管理权限,不能执行系统管理类操作;
注意:建议使用非管理员账号登录;
执行管理操作临时切换至管理员,操作完成即退回;
几个基础命令:
tty:查看当前的终端设备;
ifconfig或ip addr list:查看活动接口的ip地址;
echo:回显
ping:探测网络的目标主机与当前主机之间的连通性;
Ctrl+c:终止命令执行;
关机命令:
CentOS 7:
~]# systemctl poweroff
~]# systemctl reboot
*:
~]# poweroff
~]# halt
~]# reboot
Stallman:
自由含义:自由学习和修改;自由使用;自由分发;自由创建衍生版;
Linux的哲学思想:
1、一切皆文件:
把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;
open(), read(), write(), close(), delete(), create()
2、 由众多功能单一的程序组成;一个程序只做一件事,并且做好;
组合小程序完成复杂任务;
3、尽量避免跟用户交互;
目标:易于以编程的方式实现自动化任务;
4、使用文本文件保存配置信息;
思考:文件是什么?众多文件如何有效组织起来?
目录:路径映射;
文件:存储空间存储的一段流式数据,对数据可以做到按名存取;
文件系统:层级结构;有索引;
/: 原初起点;
倒置树状结构;
/dev/pts/2:
最左侧/: 表示根目录
其它的/: 表示路径分隔符
Linux的路径分隔符是/
Windows的是\
文件的路径表示:
绝对路径:从根开始表示出的路径
相对路径:从当前位置开始表示出的路径
文件名使用法则:
严格区分字符大小写:file1, File1, FILE1
目录也是文件,在同一路径下,两个文件不能同名;
支持使用除/以外的任意字符;
最长不能超过255个字符;
用户有家目录:home,
用户的起始目录;普通用户管理文件的位置;
工作目录:
/etc/sysconfig/network-scripts/ifcfg-eno16777736
basename:最右侧的文件或目录名;
dirname:basename左侧的路径;
命令:
~]# basename /PATH/TO/SOMEFILE
SOMEFILE
~]# dirname /PATH/TO/SOMEFILE
/PATH/TO