Gnu/Linux 系统简介

Gnu/Linux

简介

计算机的能力是由软件决定的。
有一种软件设计的哲学叫 UNIX 哲学,提倡的是设计软件要注重 KISS (keep it simple, stupid)原则 。
Gnu/LinuxUNIX 的免费实现,开启了开源时代。

基本概念

文件: 保持不同数据的独立。
进程: 计算机功能的独立形式,确保各功能能切换运行。
设备 : 计算机各个部件。
基本输入输出 : 基本输入就是 键盘, 基本输出是 显示屏 ,特指这俩设备。

登录

登录是对设备的一种权限保护。

登录 su
登出 logout
建用户 useradd
设置密码 passwd
设置用户属性 usermod

机器软硬信息

1
2
3
4
5
6
7
8
9
10
11
12
13
cat /etc/lsb-release # 查看软件( 系统 )信息
uname -a # 查看内核/操作系统/CPU 信息
cat /proc/cpuinfo # 查看 CPU 信息
nproc #打印可用处理器的数量
hostname # 查看计算机名
lspci -tv # 列出所有 PCI 设备
lsusb -tv # 列出所有 USB 设备
lsmod # 列出加载的内核模块
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh # 查看指定目录的大小
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载

进程管理和调度

进程就是计算机做某项功能

ps 显示进程列表
kill 通过 PID 给进程发信号
kill -l 显示 信号 列表
pgrep 通过 进程名 查找进程
pkill 通过 进程名 给进程发信号

进程属性

UID 用户 ID
PID 进程 ID
PPID 父进程 ID
C CPU 占用率
STIME 开始时间
TTY 开始此进程的 TTY-—终端设备
TIME 此进程运行的总时间
CMD 命令名
%CPU 进程占用 CPU 百分比
%MEM 进程占用内存百分比
VSZ 虚拟内存占用大小 单位:kb(killobytes)
RSS 实际内存占用大小 单位:kb(killobytes)
STAT 进程状态
START 进程启动时刻

进程状态

R (TASK_RUNNING),可执行状态。
S (TASK_INTERRUPTIBLE),可中断的睡眠状态
D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态

进程间通信和同步

程序间发消息的方式

  • 信号 [signals,SIGxxxx]
  • pipes
  • sockets
  • file locking
  • message queues
  • semaphores
  • shared memory

内存管理

进程要用到内存,资源也要用到内存,如何处理?硬件提供了分段分页的支持。

磁盘和分区

1
2
3
4
df #显示分区信息 
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区

文件系统

创建文件系统 mkfs -V -t msdos -c /dev/hda5
更新分区表信息 partprobe
加载分区 mount
加载 smb sudo mount -t smbfs -o username=user,password='' //10.0.1.1/windowsshare /mnt 浏览 windows 共享文件夹
自动加载配置文件 fstab
卸载分区 umount
列出文件 ls
编辑文件 vim

交换分区文件系统

创建 Linux 交换分区 mkswap
启用交换分区: # swapon -s
禁用交换分区: # swapoff /dev/sda7
用新 UUID 重新创建交换分区: # mkswap -U random /dev/sda7
激活交换分区: # swapon /dev/sda7

模块

rmmod 从运行的内核中移除指定的内核模块
insmod 将给定的模块加载到内核中
lsmod 显示已载入系统的模块

设备

计算机使用的设备大体归于三类 : 块设备,字符设备 ,网络设备 ,还有一些目录设备,链接
块设备和字符设备因为其区别,操作应该是不一样的,操作系统抽象成同样的使用方法了 open()、close()、read()、write()
网络设备面向数据包的接收和发送而设计,它并不对应于文件系统的节点,内核与网络设备的通信和内核与字符设备、块设备的通行方式完全不同

字符设备

/dev/zero
/dev/random 随机数,慢,精确
/dev/urandom 系统随机,块,随机少

块设备

网络设备

网络管理

路由,相当于你对外联络的快递公司,有些公司不到某个地方的

rounte -n 查看本机路由表
netstat -lntp 查看所有监听端口
netstat -antp 查看所有已建立的连接
ifconfig 查看所有网络接口的属性
iptables -L 查看 iptables 防火墙

系统调用

数据同步

任务

这是 shell 里的概念,因为前端一次只能操作一个程序

任务放在前、后台 fg bg jobs

周期任务 crontab

* * * * * # 每隔一分钟执行一次任务
0 * * * * # 每小时的 0 点执行一次任务,比如 6:00,10:00
6,10 * 2 * * # 每个月 2 号,每小时的 6 分和 10 分执行一次任务
0 * * * * # 每小时的 0 点执行一次任务,比如 6:00,10:00
6,10 * 2 * * # 每个月 2 号,每小时的 6 分和 10 分执行一次任务

帮助文档

有些东西不会可以查看文档,如果还不会可以上网查。

man [manual] 简单文档
info 详细文档

pdf

合并 pdf

pdfunite *.pdf all.pdf

发行版

软件包管理工具

两类,一类 redhat 系 ,一类 debian

  • deb 包
    • 数据包,包含实际安装的程序数据,文件名为 data.tar.XXX;
    • 安装信息及控制脚本包,包含 deb 的安装说明,标识,脚本等,文件名为 control.tar.gz;
    • 最后一个是 deb 文件的一些二进制数据,包括文件头等信息,一般看不到

字体

安装

1
2
3
4
5
6
sudo mv Monaco.ttf /usr/share/fonts/custom
sudo chmod 744 /usr/share/fonts/custom/Monaco.ttf

sudo mkfontscale #生成核心字体信息
sudo mkfontdir
sudo fc-cache -fv

显示已安装的字体

fc-list

用户目录配置

~/.config/user-dirs.dirs

压缩解压

unar

解压缩,中文不会乱码

启动过程

引导程序载入内核

引导扇区的 Grub 读入 /boot 目录下的内核文件

init process (初始化)

调用配置: /etc/inittab, /etc/init/*.conf

系统初始化

etc/rc.d/init.d

建立终端

1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2

用户登录系统

(1)命令行登录
(2)ssh 登录
(3)图形界面登录

图形模式与文字模式切换

Ctrl + Alt + F1 ~ F6

关机

正确的关机流程为:sync > shutdown > reboot > halt 关机指令为:shutdown -h +10 10 分钟后

图形工具

Xcompmgr

Xcompmgr 是一个简单的混合窗口管理器,可以实现阴影、原生窗口透明(配合 transset 工具)等特效

mate-power-manager

MATE 桌面的电源管理工具

Redshift

根据您周围的环境调整屏幕的色温。如果您晚上在屏幕前工作,这可能会帮助您减少眼睛受伤

0%