Linux
0.目次
記事のディレクトリ
1.Linuxの紹介
1.1Linuxとは
-
Linuxは、フリーでオープンソースのUNIXライクなオペレーティングシステムです。1991年にLinner Stowazによって作成され、主にMinixとUNIXのアイデアに触発されました。
-
LinuxはGNUGeneral Public License(GPL)に準拠しており、誰でも自由にソースコードを使用したり、自由に変更して再配布したりできます。
-
Linuxは、POSIXおよびUNIXに基づくマルチユーザー、マルチタスク、マルチスレッド、およびマルチCPUのオペレーティングシステムです。
-
Linuxは、主要なUNIXツールソフトウェア、アプリケーション、およびネットワークプロトコルを実行でき、ネットワークをコアとしてUNIXの設計アイデアを継承します。
1.2 Linuxディストリビューション?
LInuxリリースは、Linuxカーネルとアプリケーションソフトウェアをカプセル化するためのものです。
市場に出回っている主流のディストリビューションは、Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOSなどです。
1.3 LInuxアプリケーションフィールド?
組み込み機器からスーパーコンピューター、そしてサーバーフィールドまで、ステータスが決定されます。通常、サーバーはLAMP(Linux + Apache + MySQL + PHP)とLNMP(Linux + Nginx + MySQL + PHP)の組み合わせを使用します。
現在、Linuxは家庭だけでなく、全国レベルの企業でも使用されています。
1.4 LinuxとWindows?
比較する | ウィンドウズ | Linux |
---|---|---|
インターフェース | インターフェイスが統一され、シェルプログラムが修正され、すべてのWindowsプログラムのメニューがほぼ同じになり、ショートカットキーがほぼ同じになります。 | グラフィカルインターフェイスのスタイルはリリースバージョンによって異なり、相互に互換性がない場合があります。GNU / Linux端末はUNIXから継承されており、基本的なコマンドと操作方法はほとんど同じです。 |
運転者 | ドライバプログラムは豊富で、バージョンは頻繁に更新されます。デフォルトのインストールプログラムには、通常、バージョンがリリースされたときに一般的なハードウェアドライバーが含まれており、その後にリリースされる新しいハードウェアドライバーは、ハードウェアの製造元によって異なります。一部の古いハードウェアでは、元のドライバーがないとサポートが難しい場合があります。さらに、ハードウェアの製造元がWindowsで必要なバージョンのドライバーを提供していない場合があり、これは頭痛の種になる可能性があります。 | ボランティアによって開発され、Linuxコア開発チームによってリリースされました。多くのハードウェアメーカーは、著作権を考慮してドライバーを提供していません。ほとんどのハードウェアメーカーは手動でインストールする必要はありませんが、インストールは比較的複雑で、新しいユーザーはドライバーの問題に直面します(それらが存在し、メソッドをインストールするかどうか)は何もできなくなります。しかし、オープンソース開発モデルでは、Windowsでのサポートが難しい場合でも、多くの古いハードウェアはドライバーを簡単に見つけることができます。HP、Intel、AMDなどのハードウェアベンダーは、さまざまな程度でオープンソースドライバーを徐々にサポートしており、問題は軽減されています。 |
使用する | 使い方は比較的簡単で、始めるのも簡単です。グラフィカルインターフェイスは、コンピュータの背景知識がないユーザーにとって非常に有益です。 | グラフィカルインターフェイスは使いやすく、使い始めるのも簡単です。テキストインターフェイスは、習得することを学ぶ必要があります。 |
学ぶ | システム構造は複雑で、頻繁に変更され、知識とスキルがすぐに失われるため、詳細な調査が困難になります。 | システム構造はシンプルで安定しており、知識やスキルの継承も良好で、比較的深く学ぶことができます。 |
ソフトウェア | 特定の機能ごとに商用ソフトウェアのサポートが必要になる場合があり、対応する認証を購入する必要があります。 | ほとんどのソフトウェアは無料で入手でき、同じ機能を持つソフトウェアの選択肢は少なくなっています。 |
2.Linuxのインストール
VMware仮想マシン:www.vmware.com
VMwareの機能:
- パーティション分割と再起動を行わない、同じPC上の2つのオペレーティングシステム
- ローカルマシンと仮想マシンはネットワーク経由で通信できます
- 仮想マシンの構成はいつでも変更できます
インストール手順:
- 少し
2.1システムパーティション
- パーティションテーブル
- MBRパーティションテーブル
- 最大2.1TB、4パーティション
- プライマリパーティション(最大4つ)
- 拡張パーティション(1、データは書き込めません)
- 論理パーティション
- GPTパーティションテーブル
- 最大9.4ZB、パーティション数に制限なし(理論上)
- MBRパーティションテーブル
- フォーマット
- 論理フォーマットとも呼ばれ、ユーザーが選択したファイルシステムを指します(タイプ:ext4)
- マウント
2.2注意が必要な事項
-
Linuxでは大文字と小文字が厳密に区別されます
-
Linuxすべてがファイルである
-
Linuxは拡張子によってファイルタイプを区別しません
-
Linuxのすべてのストレージデバイスは、使用する前にマウントすることはできません。
-
WindowsプログラムをLinuxで直接使用することはできません
3.共通のディレクトリ構造
目次 | 効果 |
---|---|
/置き場 | システムコマンドを保存するディレクトリ |
/ sbin | システムコマンドを保存するディレクトリ |
/ブート | システム起動ディレクトリ |
/ dev | デバイスファイルディレクトリ |
/等 | 構成ファイルディレクトリ |
/ home | 通常のユーザーのホームディレクトリ |
/ lib | システムコールライブラリ |
/ mnt | マウントディレクトリ |
/ opt | ソフトウェアインストールディレクトリ |
/ proc | 仮想ファイルディレクトリ(カーネル、プロセス、外部デバイスのステータス、ネットワークのステータス) |
/ sys | 仮想ファイルディレクトリ(カーネル関連) |
/ルート | ルートホームディレクトリ |
/ tmp | 一時ディレクトリ |
/ usr | システムソフトウェアリソースディレクトリ |
/どこ | 動的データストレージディレクトリ(キャッシュ、ログ、ソフトウェア実行ファイル) |
4.一般的に使用されるコマンド
コマンド | 効果 | |
---|---|---|
ディレクトリ操作 | ls | ファイルを確認してください |
cd | ディレクトリを切り替える | |
pwd | 現在のディレクトリを表示 | |
mkdir | ディレクトリを作成する | |
rmdir | ディレクトリを削除する | |
ファイル操作 | 接する | 空のファイルを作成し、メタデータを変更します |
統計 | 詳細情報を確認してください | |
ネコ | ファイルの内容を表示する | |
もっと | 分割画面でファイルの内容を表示する | |
もっと少なく | ブランチ内のファイルコンテンツを表示する | |
頭 | ファイルヘッダーを表示する | |
尾 | ファイルの終わりを表示する | |
ln | ソフト接続 | |
すべてのカタログファイルは操作可能です | rm | 削除 |
cp | コピー | |
mv | 移動または名前の変更 | |
アクセス制御 | chmod | 権限を変更する |
chown | 修改文件所有者和所属组 | |
chgrp | 修改文件所属组 | |
帮助命令 | man | 显示联机帮助手册 |
info | 完整的帮助信息 | |
help | 查看内置命令信息 | |
搜索命令 | whereis | 搜索系统命令(帮助文档位置) |
which | 搜索系统命令 | |
locate | 搜索普通文件 | |
find | 在目录中搜索文件 | |
grep | 显示匹配的行 | |
|管道 | 管道 | |
文本操作 | awk | 匹配截取 |
grep | 匹配 | |
cut | 截取 | |
sed | 截取 | |
压缩、解压命令 | zip | 压缩 |
unzip | 解压.zip | |
gzip | 压缩 | |
gunzip | 解压.gz | |
bzip2 | 压缩 | |
bunzip2 | 解压.bz2 | |
tar -c | 压缩 | |
tar -x | 解压.tar | |
tar -z | .tar.gz | |
tar -j | .tar.bz2 | |
关机重启 | sync | 刷新文件系统缓冲区(数据同步) |
shutdown | 关机-h或重启-r | |
reboot | 重启 | |
halt | 关机(不安全) | |
poweroff | 关机(不安全) | |
init | 关机或重启(不安全) | |
网络命令 | ifconfig | 配置网络接口 |
ping | 通过ICMP网络探测 | |
netstat | 查看网络状态、查看端口 | |
write | 向指定用户发信息 | |
wall | 向所有用户发信息(包括自己) | |
给其他用户发邮件 | ||
系统痕迹命令 | w | 显示正在登陆的用户信息 |
who | 显示正在登陆的用户信息(简单) | |
last | 查看所有登陆过的用户信息 | |
lastlog | 查看最后登陆过的用户信息 | |
lastb | 查看登陆错误信息 | |
挂载命令 | mount | 挂载 |
umount | 卸载 |
5.VI编辑器
vi 、vim 打开文件,进入编辑模式
三种模式:编辑模式、输入模式、末行模式(有不同叫法)
5.1 编辑模式
5.1.1 模式切换
: 进入末行模式
i、a、o 进入输入模式(前、后、下行)
I、A、O进入输入模式(行首、行尾、上行)
5.1.2 移动光标
- 字符间
h: 左;j: 下;k: 上;l: 右 - 单词
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首 - 行内
0: 绝对行首
^: 行首的第一个非空白字符
$: 绝对行尾 - 行间
G:文章末尾
3G:第3行
gg:文章开头 - 翻屏
ctrl:f,b
5.1.3 编辑
- 删除&替换单个字符
x:删除光标位置字符
3x:删除光标开始3个字符
r:替换光标位置字符 - 删除命令 : d
dw,dd - 复制粘贴&剪切
yw,yy
p
P - 撤销&重做
u 撤销
ctrl+r 重做 撤销的操作
. 重复上一步的操作
5.1.4 退出
-
直接退出
ZZ:没修改退出
-
进入末行模式退出
wq:保存并退出
q!:不保存退出
5.2 输入模式
-
标准输入
-
模式切换
Esc进入编辑模式
5.3 末行模式
-
模式切换
Esc Esc 进入编辑模式
-
退出
:q 退出 没有动过文件
:wq 保存并退出 动过了,不后悔
:q! 不保存并退出 动过了,后悔了
:w 保存
:w! 强行保存
:wq --> :x -
高级操作
:set 设置 set nu 设置行数
/ 查找
s/// 查找并替换
6.软件安装
软件包分为源码包和二进制包
6.1 二进制包安装
6.1.1 RPM包安装
-
命令
安装命令:rpm -ivh 包全名
服务启动:service 服务名 start
升级命令:rpm -Uvh 包全名
卸载命令:rpm -e 包名
-
默认安装位置
/etc/ 配置文件
/usr/bin/ 可执行文件
/usr/lib/ 函数库
/usr/share/doc/ 使用手册
/usr/share/man/ 帮助文件
6.1.2 yum安装
- 安装yum
- 安装软件:yum -y install 软件名
6.2 源码包安装
安装步骤
-
下载软件包
-
解压缩
-
进入解压目录
-
编译前准备
./configure
-
编译
make
-
编译安装
make install
卸载:删除文件目录即可
7.用户管理
7.1 用户相关文件
目录 | 作用 | 说明 |
---|---|---|
/etc/passwd | 用户信息文件 | 用户名:密码:用户ID:组ID:用户说明:用户家目录:用户命令行 |
/etc/shadow | 影子文件 | 用户名:加密密码:更改时间:更改间隔:有效期:到期前警告天数:过期后宽限天数:失效时间:保留 |
/etc/group | 组信息文件 | 组名:组密码位:组内其他用户(组) |
/etc/gshadow | 组影子文件 | 保存组密码 |
/home/用户名、/root | 用户家目录 | |
/var/spool/mail/用户名 | 邮箱目录 | |
/etc/skel | 用户模版目录 |
7.2 用户管理命令
命令 | 作用 |
---|---|
useradd | 添加用户 |
passwd | 设置密码 |
usermod | 修改用户 |
userdel | 删除用户 |
su | 切换用户 |
7.3 组管理命令
命令 | 作用 |
---|---|
groupadd | 添加用户组 |
groupdel | 删除用户组 |
gpasswd | 添加删除组成员 |
newgrp | 改变有效组 |
8.权限管理(缺)
9.文件系统管理
9.1 硬盘(缺)
9.2 文件系统
9.2.1 linux文件系统特性
super block(超级块):记录date block、inode的情况
date block(数据块):数据实际存储
inode(i节点):类似元数据
9.2.2 常见文件系统
常见文件系统 | 简介 |
---|---|
ext | linux早期文件系统 |
ext2 | 升级版(更大分区和文件) |
ext3 | 升级版(日志功能和可靠性) |
ext4 | CentOS6.x默认文件系统(颠覆性) |
xfs | CentOS7.x默认文件系统(XFS+LVM) |
swap | 交换分区文件系统(暂时代替内存) |
nfs | 网络文件系统 |
iso9660 | 光盘标准文件系统 |
fat | Windows的fat16 |
vfat | Windows的fat32 |
NTFS | Windows的NTFS |
ufs | SunOS和Solaris |
proc | 基于内存的虚拟文件系统 |
sysfs | 基于内存的虚拟文件系统 |
tmpfs | 基于内存的虚拟文件系统 |
9.3 命令
命令 | 作用 |
---|---|
df | 统计空间大小 |
du | 统计文件大小 |
fsck | 文件系统修复命令 |
dumpe2fs | 显示磁盘状态 |
stat | 显示文件状态 |
file | 判断文件类型 |
fdisk | 分区命令 |
parted | 分区命令 |
parkporbe | 强制重读分区文件、重新挂载所有分区(几乎不用) |
mkfs | 格式化(创建文件系统) |
free | 查看内存 |
swapon | 增加swap分区容量 |
9.4 手动创建分区
9.4.1 MBR分区
fdisk /dev/sdb #进入分区交互界面
n #创建分区
p #查看分区
m #帮助
l #显示文件系统类型
w #保存退出
mkfs -t ext4 /dev/sdb1 #格式化
mkdir /disk1 #创建挂点
mount /dev/sdb1 /disk1 #挂载
vi /etc/fstab #自动挂载
#查看
mount
fdisk -l
df
#修复权限
mount -o remount,rw /
9.4.2 GPT分区
parted /dev/sdb #进入分区交互界面
mklabel gpt #修改类型
mkpart #创建分区
mkfs #创建文件系统
resize #修改分区大小
re #删除分区
print #查看分区
#挂载……
9.4.3 swap分区
fdisk /dev/sdb #进入分区交互界面
mkswap /dev/sdb1 #创建swap分区
swapon name #增加分区
9.5 磁盘配额
9.5.1 依赖
- 内核支持磁盘配额
- grep CONFIG_QUOTA /boot/config-2.6.32-279.e16.i686
- 已安装quota
- rpm -qa |grep quota
9.5.2 概念
- 用户配额和组配额
- 磁盘容量限制和文件个数限制
- 软限制和硬限制
- 宽限时间
9.5.3 配额步骤
-
将分区挂载到目录上
-
用户、用户组、目录(条件)
-
开启磁盘配额功能
mount -o remount,usrquota /disk
vi /etc/fstab
-
defaults,usrquota
-
-
建立配额文件(需关闭SELinux)
quotacheck -avug quotacheck -avugm(跟目录)
-
设置配额
edquota -u username(进入命令行) edquota -p user1 -u user2(配额复制)
-
启动关闭配额
quotaon -avug /disk/ quotaoff -avug /disk/
-
测试
dd if=/dev/zero of=/disk/testfile bs=1M count=60
-
非交互式配额
setquota -u 用户 容量软限制 容量硬限制
9.6 LVM逻辑卷
9.6.1 步骤
-
将物理硬盘分区(也可以整体分区)
fdisk
-
将分区建立物理卷(PV)
pvcreate /dev/sdb pvscan pvdisplay pvremove
-
将物理卷整合为卷组(VG)
vgcreate 选项 卷组名 物理卷名 vgscan
-
把卷组划分为逻辑卷(LV)
lvcreate 选项 卷组名
10.启动引导与修复
10.1 系统运行级别
查看:runlevel
改变级别:init 级别
级别:
- 0:关机
- 1:单用户模式
- 2:不完全的命令行模式(无NFS)
- 3:标准命令行模式
- 4:系统保留
- 5:图形模式
- 6:重启动
永久默认启动级别设置:/etc/inittab
10.1.1 开机执行文件
文件:/etc/rc.d/rc.local
- /var/lock/subsys/local 开机触摸
10.2 启动引导程序
10.2.1 grub引导程序
优点:更多的文件系统、查找内核文件、启动时修改启动选项、动态配置grub配置文件
10.2.2 /boot/grub目录
作用:
- 加载系统内核
- 选择系统的菜单
- 调用其他引导程序,实现多系统引导
10.2.3 grub配置文件
前四行:
- 默认启动系统:0
- 等待选择时间:5
- 背景文件:
- 隐藏按钮
后每四行:可用系统
- 标题
- 启动目录:
- 内核:
- 虚拟文件系统:
10.2.4 grub加密
- grub-md5-crypt
- 将秘钥放在grub配置文件背景文件后
- 不能加lock
10.3 系统修复模式
10.3.1 单用户模式
修改密码:
- 启动时按e,选中grub配置文件内核,按e
- 在grub配置文件内核加空格1,进入系统
- passwd root修改密码
修改启动级别:
- 修改/etc/inittab
10.3.2 光盘修复模式
- 光盘启动
- chroot /mnt/sysimage
- 修复
11.服务管理
11.1 服务分类
- RPM包安装服务
- 独立服务
- 基于xinetd服务
- 源码包安装服务
11.2 管理
11.2.1 RPM包独立服务
-
启动
-
使用/etc/init.d目录下启动脚本启动
/etc/init.d/httpd start
-
使用service命令启动
service 独立服务名 start|stop|restart
-
-
自启动
-
chkconfig命令设置
chkconfig --level 级别 服务名 on|off
-
/etc/rc.d/rc.local文件配置
vi /etc/rc.d/rc.local
-
ntsysv命令设置
ntsysv --level 级别
-
11.2.2 基于xinetd服务
-
启动
- 配置/etc/xinetd.d/telnet
service 独立服务名 start|stop|restart
-
自启动
-
chkconfig命令设置
chkconfig 服务名 on|off
-
11.2.3 源码包服务
-
启动
-
使用/usr/local/服务/bin/…启动脚本启动
/usr/local/服务/bin/... start
-
-
自启动
-
/etc/rc.d/rc.local文件配置
vi /etc/rc.d/rc.local
-
-
配置命令识别
-
service命令识别:软连接启动脚本到/etc/init.d目录下
-
chkconfig命令识别:启动脚本前加入
#chkconfig: 运行级别 启动顺序 关闭 #description:说明
chkconfig --add 服务名
-
12.系统管理
12.1 进程管理
ps 静态查看进程
top 动态查看进程
pstree 查看进程树
kill 杀死进程
killall 杀死进程
pkill 杀死进程
12.2 工作管理
转入后台:
- &
- ctrl+z
后台命令:
- jobs -l 查看
- fg %工作号 恢复到前台
- bg %工作号 后台暂停>后台执行
12.3 资源查看
vmstat 监控系统资源
dmesg 开机时内核检查
free 内存使用情况
/proc/cpuinfo cpu信息
w 已经登陆用户信息
who 已经登陆用户信息
uptime 系统启动时间和平均负载
uname 查看系统与内核信息
12.4 定时任务
at 一次性定时任务
crontab 循环定时任务
anacron 关机情况定时任务
13.日志管理(缺)
常见日志文件目录:/var/log/
13.1 rsyslogd服务
配置文件:/etc/rsyslog.conf
13.2 日志轮替
@笔记分享