first commit

This commit is contained in:
momen
2021-10-21 14:57:58 +08:00
parent ba65bf40aa
commit 8184931095
572 changed files with 3165246 additions and 305 deletions

11
content/linux 入门/README.md Executable file
View File

@@ -0,0 +1,11 @@
## Linux 入门
#前沿
本文将介绍一些linux的基本知识。
感谢茹枫的大力支持
加入茹枫官方QQ群 deepin天天用7343311

View File

@@ -0,0 +1,2 @@
# 1.1基本格式命令 选项 参数

View File

@@ -0,0 +1,3 @@
#1.10### 视窗管理
linux的视窗叫X视窗提供了图形界面其中X负责协调各个组件同时设计成客户端/服务器的模式。组件有窗口管理器登录界面桌面等。组件化提供linux更大的灵活性甚至图形界面也不是必须的是建立在字符界面的一层应用这样好处是方便图形出问题的时候在字符界面挽救一下系统。但是有得必有失相对来说linux的图形界面稳定性效率比较低但可以接受

View File

@@ -0,0 +1,20 @@
#1.11#### apt 包:
1. xorg X视窗的一个具体实现。
2. xserver-xorg X服务器套件
3. xbase-clients X客户端
4. X11-common X的基础设施
5. menu debian菜单位于/usrk/share/menu/
6. menu-xdgfreedesktop.org 菜单(标准),位于/usr/share/applications/该包负责将debian专属menu转化为标准菜单
7. xdg-utils xdg是一个桌面标准这是它的工具包
8. task-gnome-desktopgnome桌面环境
9. task-kde-desktopkde桌面环境
10. task-xfce-desktopxfce桌面环境
11. task-lxqt-desktoplxqt桌面环境
12. fluxbox 窗口管理器
13. gdm3gnome显示管理器
14. sddmkde显示管理器
15. xdmX显示管理器
16. wdmwindowmaker显示管理器
17. ldm LTSP显示管理器SSH网络
18. openssh-client `ssh -X` 远程链接X
19. xfonts-utils : X窗口字体工具包

View File

@@ -0,0 +1,8 @@
#1.12
#### X客户端/X服务器
X客户端是相对应用程序的视角出发的定义即程序本身。但是这个程序在用户角度可能是服务器上的一个程序。
X服务器是相对应用程序而言的即提供显示设备和输入设备服务端对用户来说是眼前的设备。
更多时候X客户端和X服务器同时运行在本地电脑。

View File

@@ -0,0 +1,20 @@
#1.13
#### X管理命令
1. `dpkg-reconfigure --priority=low x11-common` 重新配置X服务器
2. `startx` 启动X会话即同时启动X服务器和客户端
1. graphical.target : systemd启动守护进程某个dm显示管理器。
1. /etc/X11/default-display-manager :默认的dm
2. /etc/X11/Xsession
1. /etc/X11/Xsession.options
3. ~/.xsession
4. /usr/bin/x-session-manager
1. `update-alternatives --config x-session-manager` 由debian选择系统指定真实的X会话管理器
5. /usr/bin/x-window-manager
6. /usr/bin/x-terminal-emulator
3. `xset q` 查看配置
4. `fc-match` 字体匹配
5. `fc-list` 字体列表
1. .pcf.gz : 点阵字体
2. .pcf | .afm postscript轮廓字体
3. .ttf truetype 轮廓字体

View File

@@ -0,0 +1,20 @@
#1.14
### 汉化
多语言multilingualizationM17N、国际化internationalizationI18N、本地化localizationL10N的支持linux是比较友好的虽然没有商业化软件那么到位但是基本的框架都有就看实际的应用程序有没有支持了。
有些软件的汉化工作是通过另一个包来实现的比如chromium浏览器通过chromium-l10n包来实现汉化。注意那几个特殊英文的缩写m17n、i18n、l10n查看软件有没有提供类似的包。
1. `gettext` :本地化的工具
2. `sudo dpkg-reconfigure keyboard-configuration` 键盘配置
3. `sudo dpkg-reconfigure console-setup`
4. ibus : 输入法框架
5. im-config输入法框架选择器
6. XMODIFIERS=none :禁用XIM输入法
7. `sudo dpkg-reconfigure locales` 配置本地支持的语言集
8. /etc/environment : 支持PAM插入式验证模块设置的环境变量
9. /etc/default/locale 设置LANG变量
10. convmv :转换文件名编码
11. `sudo dpkg-reconfigure tzdata` 修改时区
1. /etc/timezone
12. iconv :转换字符串编码

View File

@@ -0,0 +1,15 @@
#1.15
### 驱动
1. lspci
2. lsusb
3. xset
4. alsa-utils :“高级linux声音体系”工具包
5. pulseaudio :替代ESD
6. libphonon4 KDE声音引擎
7. 打印机
1. cups 通用uinx打印系统
2. cups-client
3. http://localhost:631/
4. IPP(internet printing protocol)协议
8. udevadm udev管理工具

View File

@@ -0,0 +1,19 @@
#1.16
### 文件系统
1. e2fsprogs : ext文件系统工具
2. dosfstools :fat文件系统工具
3. ntfs-3g ntfs文件系统工具
4. jfsutilsjfs文件系统工具
5. hfsprogshfs文件系统工具
6. mount 挂载
1. /etc/fstab 挂载配置
2. systemd.mount 服务
7. mkfs 格式化
8. fsck 检查
9. tune2fs 调整ext
10. hdparm 测试硬盘
11. mtools dos工具包
12. hfsutils hfs工具包
13. `df -h` 查看文件系统空间
14. `du -hcd1 *` 查看目录空间h人性化、c总计、d1目录深度1

View File

@@ -0,0 +1,11 @@
#1.17
#### 映像
1. `cp /dev/sda sda.img` 制作整盘映像
2. `dd if=/dev/sda of=sda.img bs=512 count=1` 备份启动扇区
3. `mount -t auto -o loop sda.img /mnt/loop0` 挂载映像
4. `losetup -vf sda.img` 加载循环设备
5. `dd bs=1 count=0 if=/dev/zero of=disk.img seek=5G` 制作5GB空盘映像
6. `isoinfo -d -v xp.iso` 查看光盘映像信息
7. `dd if=xp.iso bs=2048 count=307733 conv=notrunc,noerror | md5sum` 计算映像的md5散列和
8. `od -t x1` 查看二进制数据

View File

@@ -0,0 +1,26 @@
#1.18
### 数据管理
1. tar :归档
1. tar -cavf x.tar.xz x1 x2 x3
2. tar -rvf x.tar x1 x2 x3 未压缩前可以追加文件进包-r
3. tar -xavf x.tar.xz -C x 解压缩到x
4. tar -tvf x.tar.xz 查看包内容
2. cpio unix归档
3. paxposix归档
4. gzip .gz压缩
1. gunzi/gzip -d
5. bzip2 .bz2压缩
6. xz-utils : .xz压缩
7. zip/unzip .zip压缩(支持多文件)
1. `zip x.zip x1 x2 x3` 打包压缩x1、x2、x3
2. `upzip x.zip -d x` 解压缩到x目录
8. p7zip .7z压缩
9. cp/scp/rsync: 复制、同步
10. split分段
11. gnupg openpgp加密签名工具包
12. md5sum 计算md5校验和
13. openssl 计算信息摘要
14. git 分布式数据版本管理
15. `iconv -f GBK -t UTF-8`: 字符集转换
16. catdoc 将msword转化为txt
17. rsync 备份

View File

@@ -0,0 +1,42 @@
#1.19
### 编译
预先安装以下apt包build-essential、libncurses5-dev、fakeroot、libqt4-devmake xconfig需要、libglalde2-dev和libgtk2.0-dev(make gconfig需要)、flex、bison、bc、libelf-dev、libssl-dev
或者:
```bash
sudo apt install build-essential fakeroot
sudo apt build-dep linux
sudo apt install devscripts #简单修补
```
1. /boot/config-version 当前内核配置文件
1. `cp /boot/configxxx .config` 拷贝当前配置到内核目录
2. `make olddefconfig` 转换为缺省应答
3. `make oldnoconfig` 转换为相反应答
4. `make oldconfig` 人工应答
5. `make clean` 清除当前编译内容
6. `make distclean `清除编译内容和配置
7. `make defconfig` 自定义配置
8. `make localmodconfig` 基于当前加载模块生成配置
9. `scripts/config --disable MODULE_SIG` 禁用模块签名
10. `scripts/config --disable DEBUG_INFO` 禁用调试信息
2. linux-source 内核源文件
1. <https://www.kernel.org/>
3. make menuconfig 文本模式libncurses5-dev
1. make xconfig 图形qt(libqt4-dev)
2. make gconfig 图形GTK+(libglade2-dev/libgtk2.0-dev)
4. arch/arch/configs/*_defconfig 默认配置
5. `sudo make deb-pkg -j4` 编译成deb包j4表示4线程
1. linux-image-version
2. linux-headers-version
3. linux-firmware-image-version
4. linux-image-version-dbg
5. linux-libc-dev
6. `sudo dkms status` 查询动态模块
1. /var/lib/dkms 自动管理的模块
2. 状态流程add -> build -> install <- uninstall
1. `sudo dkms add -m xxx/1.1 -k linux5.1.1`
2. `sudo dkms build -m xxx/1.1`
3. `sudo dkms install -m xxx/1.1`
4. `sudo dkms uninstall -m xxx/1.1`

View File

@@ -0,0 +1,2 @@
# 1.2 常用命令

View File

@@ -0,0 +1,14 @@
#1.20
## 应用案例
删除 i386架构因为我安装了winehq他要求i386架构但是后来我用虚拟机解决和windows兼容的问题了所以就想着删除。但是如果没有把相应的i386库删除完毕是无法删除架构的。光删除wine是无法彻底删除i386库。
```bash
dpkg --print-foreign-architectures #这条命令可以查看是否安装了i386架构
sudo dpkg --remove-architecture i386 #删除i386架构但前提是你没有安装任何i386库。
dpkg -l | grep i386 |awk '{print $2}' #这条命令会列出系统内安装的i386库
dpkg -l | grep i386 |awk '{cmd="echo y|sudo apt autoremove "$2;system(cmd)}'
#这条命令根据上一条命令稍微改装了一下自动化调用apt删除相关库
```

View File

@@ -0,0 +1,9 @@
#1.21
## 参考
1. 让linux console支持中文显示和fcitx输入法: <http://www.voidcn.com/article/p-wrcgydjy-er.html>
2. Ubuntu中在tty终端显示和输入汉字: <https://blog.csdn.net/xiajian2010/article/details/9625131>
3. 编码GBK CP936、GB2312 CP20936、GB18030 CP54936、ASCII ISO-8859-1 CP850、BIG5 CP950、UTF-32 UCS-4、UTF-16 UCS-2、UTF-8。
4. 一张图让你学会LVM: <https://www.cnblogs.com/linuxprobe/p/5381538.html>
5. 在Ubuntu 18.04系统中下载并手动编译Linux 5内核的方法: <https://ywnz.com/linux/4699.html>
6. debian 管理员手册:<https://www.debian.org/doc/manuals/debian-handbook/sect.kernel-compilation.zh-cn.html>
7. sudo配置文件/etc/sudoers详解及实战用法: <https://blog.csdn.net/heli200482128/article/details/77833881>

View File

@@ -0,0 +1,2 @@
# 1.3 命令行技巧

View File

@@ -0,0 +1,2 @@
# 1.4 管理linux 安装debian linux

View File

@@ -0,0 +1,2 @@
# 1.5 apt 程序包管理

View File

@@ -0,0 +1,44 @@
#1.6### systemd 服务管理
1. dmesg 显示内核启动日志
2. systemd-analyze 启动时间
3. systemctl 服务管理
1. systemctl poweroff 关机
2. systemctl reboot 重启
3. systemctl suspend 挂起
4. systemctl hibernate 休眠
5. /lib/systemd/system
6. /etc/systemd/system
7. 服务文件
8. 目标文件
4. journalctl 查看日志
5. systemd-cgls 跟踪启动过程
6. lsmod 列出内核模块
7. modinfo 模块信息
8. 常见端口:
1. 80www
2. 25smtp
3. 20ftp-data
4. 21ftp
5. 23telnet
6. 143 imap2
7. 110pop3
8. 389ldap
9. 443https
10. 465ssmtp
11. 989ftps-data
12. 990ftps
13. 992telnets
14. 993imaps
15. 995pop3s
16. 636ldaps
11. rsyslog 日志后台守护进程
12. crontab 计划任务
1. /etc/cron.daily/
2. /var/spool/cron/crontabs/user
3. /etc/cron.allow
4. @daily @yearly @monthly @ weekly @hourly @reboot
5. 分 时 日 月 星期 账号 命令
1. a-b 区间
2. a-b/c 间隔
3. `*` 任意

View File

@@ -0,0 +1,39 @@
#1.7### 用户管理
1. /etc/passwd 用户
1. `sudo vipw` 编辑
2. /etc/shadow 加密后的密码
1. `sudo vipw -s` 编辑
3. /etc/group 组
4. getent 浏览帐号文件信息
5. passwd 设置帐号密码
1. passwd -g 设置用户组密码
6. /etc/sudoers 可用sudo提升权限的账户
1. visudo 编辑
7. gpasswd 用户组设置
8. chsh 变更登录shell
1. /etc/shells :支持的shell列表
2. /etc/bash.bashrc 初始脚本
3. /etc/profile 登录脚本
9. chfn 变更账户个人信息
10. newgrp/sg 变更主用户组
11. groups 列出当前帐号所属的用户组列表
12. id 显示当前帐号相关情况
13. addgroup 创建用户组
14. delgroup 删除用户组
15. groupmod 修改用户组
16. adduser 添加或修改账户
1. /etc/adduser.conf
2. /etc/skel 模板
3. `sudo adduser user group` 添加用户到组linux对这个加入用户组的概念实现得非常反人类
17. 权限
1. u所有者user、g用户组group、o其他other
2. 文件r读read、w写write、x执行exectute、u+s授权所有者uid执行二进制程序g+s 所有者组gid执行二进制程序
1. `chmod u+s`设置u为s授权使用所有者权限执行
2. `chmod g+s`设置g为s授权使用用户组权限执行
3. `chmod o+t` 无效
3. 目录r列出文件、w添加删除文件、x进入文件夹、g+s新建文件继承组gid、
o+t其他人不能删除
1. `chmod u+s` 无效
2. `chmod g+s`设置g为s目录内继承目录用户组
3. `chmod o+t`设置o为t目录下的文件仅文件所有者目录所有者和root可以删除其他人无法删除不递归

View File

@@ -0,0 +1,33 @@
#1.8### 网络管理
1. /etc/systemd/network/ 网络配置目录
2. ip addr 地址
3. ip route 路由
4. ip neigh : arp或ndisc缓存
5. ip maddr : 多播地址
6. ip tunnel ip 隧道
7. ifrename : mac地址接口名
8. ethtool 以太网设备设置
9. traceroute : 跟踪路由
10. netstat: 监听端口状态
11. ping -c 1 -s $((1500-28)) -M do baidu.com : 测试最大MTU。
12. tracepath : 跟踪网络
13. ntp 时间服务器
1. ntpdate :简易客户端包
2. ntpdate-debian
1. /etc/default/ntpdate
14. ssh
15. vnc
16. natdnat改变封包地址可用于端口转发
1. /etc/sysctl.conf
17. vpn :以信道方式提供虚拟专用网
1. ssl :安全套接层
2. tls 传输层安全标准化的ssl
3. x.509: 授权认证CA标准
1. easy-rsa
4. ipsec-toos 提供ipsec服务
18. qosquality of service流量分级管控。
1. tc 设置qos参数
2. wondershaper
19. bind9 : dns包
1. host : 查询dns

View File

@@ -0,0 +1,10 @@
#1.9### 网络应用
1. chromium chrome 的社区版
1. chromium-browser-l10n :中文包
2. firefox :火狐浏览器
3. firefox-esr 长期支持版火狐
4. epiphany-browser GNOME版浏览器
5. konqueror KDE版浏览器
6. dillo FLTK版浏览器
7. w3m、lynx、elinks、links、links2 :其他

View File

@@ -0,0 +1,15 @@
## 一、命令行
进入linux世界不可避免要接触到命令行的使用。命令行相比图形界面有如下优点
1. 占用更少的资源
2. 更容易批量处理
3. 更容易整合
比如在服务器领域,经常都是不带界面的,因为用户通过网络来使用服务器,而不需要连接服务器的显示器。如果安装界面,目的就是为了管理系统本身,如果通过命令行,就可以减少服务器的资源浪费,服务更多客户。
批处理是对同一类事物经常的串联处理,这个是命令行的强项,比如文件改名字,用图形界面经常是一个文件一个文件的修改,而命令行可以批量的,根据某些规则进行统一修改。
图形应用程序通常都是为特定业务服务的,它们设计上更加偏向自成体系,因为图形应用程序往往更加复杂。而命令行程序很多都是很简单的业务,设计上更加偏向组合其他命令行来完成更大的任务。因为比较简单,也更容易整合在一起。当然,结论不是一成不变的,只能说总体上如此。
说了那么多就是为了让大家放下对命令行的偏见不要认为i图形界面必然比命令行优秀。或者反过来也是不成立的应该是各有优缺点。