Notes about Linux

03 内核的几大组成

操作系统内核体系结构图

kernel: 内核管理核心代码,其中包含了进程管理子系统
fs(file system):文件管理子系统
mm(memeroy mange):内存管理子系统,这里更多的是CPU体系结构的内存管理,与具体物理内存管理相关的代码在 arch/(某种架构)/mm
net:网络子系统
drivers:设备子系统,其中存放各种硬件的驱动程序,drivers/block 下存放块设备的驱动程序

References:

  • https://www.kernel.org/
  • https://courses.linuxchix.org/kernel-hacking-2002/08-overview-kernel-source.html

04 几个基本命令

基本命令行

用户与密码

# passwd
Changing password for user root.
New password:
 useradd cliu8
[root@deployer ~]# useradd -h
Usage: useradd [options] LOGIN
       useradd -D
       useradd -D [options]


Options:
  -g, --gid GROUP               name or ID of the primary group of the new account
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
......
cliu8:x:1000:1000::/home/cliu8:/bin/bash
# 用户:密码:用户id:组id:主目录:bash

# cat /etc/group
root:x:0:
......
cliu8:x:1000:
# 
# ls -l
drwxr-xr-x 6 root root    4096 Oct 20  2017 apt
-rw-r--r-- 1 root root     211 Oct 20  2017 hosts
# 文件类型 权限位 硬链接数 所属用户 所属组 修改日期 文件名

安装软件

  • 安装包类型
rpm -i jdk-XXX_linux-x64_bin.rpm
dpkg -i jdk-XXX_linux-x64_bin.deb
# -i install
  • 查看已安装的软件列表
rpm -qa
dpkg -l
# -q query
# a all
# -l list
  • 删除
rpm -e  # -e erase
dpkg -r  # -r remove
  • 包管理器安装
    如搜索jdk

yum search jdk
apt-cache search jdk

安装

yum install java-11-openjdk.x86_64
apt-get install openjdk-9-jdk

卸载

yum erase java-11-openjdk.x86_64
apt-get purge openjdk9-jdk

  • 仓库源

CentOS配置文件/etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

Ubuntu配置文件在/etc/apt/sources.list

deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse

安装完主执行文件一般放在/usr/bin或者/usr/sbin,其他库文件放在/var下面,配置文件在/etc

  • 安装压缩包类型的软件
    根据格式类型用tarubzip解压,导入环境变量,如JDK
export JAVA_HOME=/root/jdk-XXX_linux-x64
export PATH=$JAVA_HOME/bin:$PATH
  • 关闭进程
ps -ef |grep 关键字  |awk '{print $2}'|xargs kill -9

# ps -ef 列出所有正在运行的程序
# grep 通过关键字找到启动的程序
# awk 工具可以很灵活地对文本进行处理,这里的 awk '{print $2}'是指第二列的内容,是运行的程序 ID。
# 可以通过 xargs 传递给 kill -9,也就是发给这个运行的程序一个信号,让它关闭。
# 如果你已经知道运行的程序 ID,可以直接使用 kill 关闭运行的程序。
  • 以服务方式运行的程序

例如MySQL,在Ubuntu中, 通过 apt-get install mysql-server 的方式安装 MySQL,通过命令systemctl start mysql启动,
使用systemctl enable mysql设置开机启动。之所以成为服务并且能够开机启动,是因为在 /lib/systemd/system 目录下会创建一个 XXX.service 的配置文件,里面定义了如何启动、如何关闭。
CentOS里有些特殊,MySQLOracle 收购后,因为担心授权问题,改为使用MariaDB,它是 MySQL 的一个分支。通过命令yum install mariadb-server mariadb安装, 命令systemctl start mariadb启动,systemctl enable mariadb设置开机启动,同理,会在 /usr/lib/systemd/system 目录下,创建一个 XXX.service 的配置文件,从而成为一个服务。

05 几个系统调用

极客时间版权所有: https://time.geekbang.org/column/article/88761
原文摘自专栏
GeekTimeLinux.jpg

添加新评论