Linux01
内核功能:
1. 进程管理
2. 内存管理
3. 文件系统
4. 网络功能
5. 硬件驱动
6. 安全机制
FreeBSD # 专注于运行在PC机上 苹至今果的操作系统都是FreeBSD的内存
OpenBSD # 专注于安全
NetBSD # 专注于服务
linux内核安装:
linux ip=172.16.x.1 netmask=255.255.0.0 gateway=172.16.0.1 dns=172.16.0.1 ks=http://172.16.0.1/class.cfg
Linux的基本原则:
1. 由目的单一的小程序组成:组合小程序完成复杂任务;
2. 一切皆文件;
3. 尽量避免捕获用户接口;
4. 配置文件保存为纯文本格式;
5.
shell是人机交互的入口,这种接口有两种模式:
GUI接口
CLI接口
命令提示符,prompt,bash(shell)
'#':root # 管理员权限的
'$': 普通用户的
命令格式:
命令+选项(修正命令的执行方式)
选项:
短选项:- # -后面加一个字母
多个选项可以组合: -a -b = -ab
长选项:-- # --后面加一个单词
长选项通常不能组合
参数:命令的作用对象 # ls是默认的,ls /etc etc是指定的参数。
使用凭证:
Linux GUI(图形界面:Graphic User Interface)的3中类型:
Gnome: C 语言开发
KDE: C++开发
XFace: 简洁的适合用在嵌入式平台的轻量级的桌面系统
在最小化安装(不安装图形工具)情况下,如何使用带图形的工具,比如使用图形版的firefox?
xshell:
1.yum -y install firefox libglvnd-glx
2.Xmanager - Passive (在windows系统本地安装Xmanager)
3.export DISPLAY=10.0.0.1:0.0
4.firefox
mobaxterm cnetos
1.yum -y isntall xorg-xll-xauth xorg-xll-fonts-* xorg-xll-font-utils xorg-xll-fonts-Type1 firefox
2. exit
firefox
CLI:(命令行接口:Command Line Interface)
sh(默认shell,其实还是链接到bash)
bash
csh
zsh
ksh
tcsh
'''
当输入一个命令,敲回车的时候,这个命令会被shell送给内核,由内核判断这个程序是否有执行权限,以及能否执行,还包括从什么地方开始执行。
'''
用户切换:
su(switch user)
su [-l] 用户名 # []表示其是可省略的
su -l 用户名 # 完全切换
su 用户名 # 半切换
windows操作系统安装时,会有很多dll(dynamic link library:动态链接库)文件
Linux常用命令:
ls
-l: 长格式
文件类型:
-: 普通文件(f)
d: 目录文件
b: 块设备文件
c: 字符设备文件(character) # ls -l /dev
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket) # ls -l /tmp
文件权限:9位,每3位一组,每一组:rwx(读、写、执行)
文件硬链接的次数:
文件的属主:
文件的属组:
文件的大小(size),单位是字节
时间戳(timestamp):文件最近一次被访问(access)的时间,文件最近一次被修改(modify)的时间(ls -l),文件最近一次被改变(change)的时间
'''
修改指改变了文件的内容,改变指修改了文件的属性(metadata)
'''
-h:做单位转换
-l 显示额外的信息
-ld 目录和符号链接信息
-a:显示以.开头的隐藏文件,-A显示以.开头的隐藏文件,但不包含‘.’和‘..’
.表示当前目录 # ls .
.. 表示父目录 # ls ..
-d:显示目录自身属性
-i:index node简写位inode(我们识别一个文件靠文件名,机器识别文件靠inode)
-r:逆序显示文件 # ls 和 ls -r 做对比
-R:递归显示当前文件夹下所有文件及子目录中的所有文件和文件夹,如果子目录特别多,使用该命令将特别消耗资源。
-S 按文件占用空间从大到小排序
-t 按mtime排序
-u 配合-t选项,显示并按atime从新到旧排序
-U 按目录存放顺序显示
-X 按文件后缀排序
-F 对不同类型文件显示时附加不同的符号*/=>@|
-C 文件多时,以多列的方式显示文件,默认是一列(标准输出)
说明:
ls查看不同后缀文件时的颜色由/etc/DIR_COLORS和@LS_COLORS变量定义
ls -l 看到文件的大小,不一定是实际文件真正占用空间的大小
pwd:printing working directory
cd:change directory
cd ~用户名 # 在root用户下通过这个命令可以直接到这个用户的家目录:cd ~student
cd - # 在当前目录和前一次所在的目录之间来回进行切换
命令类型:
内置命令(shell内置),内部,内建
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
环境变量:命名的内存空间
变量赋值:
NAME=Jerry
PATH:使用冒号分隔的路径
type:显示指定属于那种类型
printenv: 查看所有环境变量
hash: 查看每个命令被使用的次数统计
date: 时间管理
Linux: rtc(real time clock)
硬件时钟:clock/hwclock
系统时钟: date
eg:
date 03041642 # 修改系统时间为03月04日16点42分
hwclock -w # 将系统时间写到硬件中去 以系统时间为准
hwclock -s # 将硬件时间写道系统中去 以硬件时间为准
hwclock -r # 读取时间,-r是默认的,可以不写
在线文档:(info是对man的一个补充)
info COMMAND # 一般描述该命令的历史演进,比如命令由谁创建,有谁接替演进,有没有bug发生。
1.1获得命令的使用帮助
首先使用type命令查看这个命令是内置还是外置命令,内置用--help,外部用help.
内部命令:
help COMMAND
eg: help cd
外部命令:
1.COMMAND --help
eg: ls --help
2.man COMMNAD
man提供命令帮助的文件,手册页存放在/usr/share/man,几乎每个命令都有man的“页面”
中文man需要安装包
man-pages
man-pages-zh-CN
命令手册:manual
man COMMAND
man number COMMAND # man 4 tty 查看tty第4个章节的内容
man页面分组,不同类型的帮助称为不同的“章节”,统称为Linux手册,man 1 man
1:用户命令
2:系统调用
3:库调用
4:特殊文件(设备文件)
5:文件格式(配置文件的语法)
6:游戏
7:杂项(Miscellaneous)
8: 管理命令(/sbin, /ust/sbin, /usr/local/sbin)
whatis COMMAND # 查看一个命令出现在哪个章节当中
man命令的配置文件:
# CentOS 6 之前版 man 的配置文件
/etc/man.config
# CentOS 7 之后版 man 的配置文件
/etc/man_db.conf
# ubuntu man 的配置文件
/etc/manpath.config
格式:
MANPATH /PATH/TO/SOMEWHERE # 指明man文件搜索位置
也可以指定位置下搜索COMMAND命令的手册页并显示
man -M /PATH/TO/SOMEWHERE COMMAND
MAN:
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS:说明每一个选项的意义
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外参照
查看man手册页:
man [OPTION...] [SECTION] PAGE...
翻屏:
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:ENTER
向前翻一行:k
查找:
/KEYWORD:向后
?KEYWORD:向前
n:下一个
N:前一个
<>:必选
[]:可选
...:可以出现多次
|:多选一
{}:分组
常用选项:
man -a keyword #列出所有帮助
man -k keyword # 搜索man手册,列出所有匹配的页面,使用whatis 数据库
man -f keyword # 相当于 whatis
man -w [章节]keyword # 打印man帮助文件的路径
范例:
yum install -y man-pages
man -w 1 passwd
whatis passwd
openssl-passwd(lssl) - compute password hashes
passwd (1) - update user's authentication tokens
man lssl openssl-passwd
man 7 ascii
man 7 utf8
范例:查看passwd相关命令和文件,man帮助文件路径
whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
1.2命令自身提供的官方使用指南
/usr/share/doc
多数安装了的软件包的子目录,包括了这些软件的相关原理说明
常见文档:README INSTALL CHANGES
不适合其他地方的文件的位置
配置文件范例
HTML/PDF/PS 格式的文档
授权书详情
1.3系统及第三方应用官方文档
1.3.1 通过在线文档获取帮助
http://www.github.com
https://www.kernel.org/doc/html/latest
http://httpd.apache.org/http://www/nginx.org
https://mariadb.com/kb/en
https://dev.mysql.com/doc/
http://tomcat.apache.org
https://jenkins.io/zh/doc/
https://kubernetes.io/docs/home/
https://docs.openstack.org/train/
http://www.python.org
http://php.net
1.3.2 Linux官方在线文档和知识库
通过发行版官方的文档光盘或网站可以i获得安装指南、部署指南、虚拟化指南等
http://kbase.redhat.com
http://www/readhat.com/docs
http://access.redhat.com
https://help.ubuntu.com/lts/serverguide/index.html
http://tldp.org
1.3.3 红帽全球技术支持服务
rhn.redhat.com 或者本地卫星服务器/代理服务器
RHN账户为及其注册和基于网络管理的RHN用户
sosreport 收集所有系统上的日志信息的工具,并自动打成压缩包,方便技术支持人员和红帽全球支持提供分析问题依据
dnf install sos
sosreport
Your sosreport has been generated and saved in:
/var/tmp/sosreport-centos8-2-2021-04-09-xllummc.tar.xz
ll /var/tmp/sosreport-centos8-2-2021-04-09-xllummc.tar.xz
-rw------- 1 root root 4409596 Apr 09 18:57 /var/tmp/sosreport-centos8-2-2021-04-09-xllummc.tar.xz
查看指定年份日历
cal(calendar):# 查看指定年份的日历
cal 2021
echo命令
echo # echo后面不跟任何选项,默认打印一个换行符
echo -n # 加一个-n则取消换行符
# 如何将echo显示的文本换行显示?
echo -e "echo is a builtin,\nplease study curiously"
# 退一格,把前面的一个字符给删掉
echo -e "echo is a builtin,\bplease study curiously"
# 加上-n之后输出内容,换行符将被吃了。
echo -n 'The year is 2018'
printf 命令
作用:格式化并显示数据;默认没有换行符,需要加 ‘\n’换行。