1 Star 0 Fork 11

coder_lw / wiki

forked from deepinwiki / wiki 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
linux 入门.md 24.75 KB
一键复制 编辑 原始数据 按行查看 历史

linux 入门

前沿

本文将介绍一些linux的基本知识。

一、命令行

进入linux世界,不可避免要接触到命令行的使用。命令行相比图形界面有如下优点:

  1. 占用更少的资源
  2. 更容易批量处理
  3. 更容易整合

比如在服务器领域,经常都是不带界面的,因为用户通过网络来使用服务器,而不需要连接服务器的显示器。如果安装界面,目的就是为了管理系统本身,如果通过命令行,就可以减少服务器的资源浪费,服务更多客户。

批处理是对同一类事物经常的串联处理,这个是命令行的强项,比如文件改名字,用图形界面经常是一个文件一个文件的修改,而命令行可以批量的,根据某些规则进行统一修改。

图形应用程序通常都是为特定业务服务的,它们设计上更加偏向自成体系,因为图形应用程序往往更加复杂。而命令行程序很多都是很简单的业务,设计上更加偏向组合其他命令行来完成更大的任务。因为比较简单,也更容易整合在一起。当然,结论不是一成不变的,只能说总体上如此。

说了那么多,就是为了让大家放下对命令行的偏见,不要认为i图形界面必然比命令行优秀。或者反过来也是不成立的,应该是各有优缺点。

1.1 基本格式

命令 选项 参数

首先是命令,分两种,一种是内置命令,即命令解释器shell内置的可识别名称。一种是外部命令,即调用文件系统里面的可执行程序。

选项和参数的区别:选项是修改命令的执行效果,而参数是命令需要的补充信息。

比如ls -l 中的-l修改了默认的输出格式,这是一个选项。而ls / 列出根目录,/是根目录,是ls的补充信息,是参数。

那么怎么知道某个命令的用法?除了百度,也可以通过 man 命令 来查询内置的文档。不过大部分都是英文的。进入文档状态后可以使用下列按键:

  1. 空格 : 翻页
  2. PgUp :翻页
  3. PgDn :向上翻页
  4. Home :首页
  5. End :尾页
  6. / :搜索
  7. ? :向前搜索
  8. n :跳到下一个命中位置
  9. N :跳到上一个命中位置
  10. q :退出

注意,linux中的大小写往往是敏感的,代表不同的内容,如n 和 N。

1.2 常用命令

  1. echo 回显文字或者变量值。
  2. date 显示或设置时间
  3. reboot 重启系统
  4. poweroff 关机
  5. wget 下载
  6. ps 进程
  7. top 监视系统负载
  8. pidof 查询进程PID
  9. kill 用PID终止进程
  10. ifconfig 网卡配置
  11. uname 系统内核
  12. uptime 负载
  13. free 内存使用量
  14. who 登录的用户终端
  15. last 登录历史
  16. history 历史命令
  17. pwd 当前工作目录
  18. cd 切换目录
  19. ls 列出目录文件
  20. cat 查看文件内容
  21. more 单向分页
  22. less 双向分页
  23. head 头n行
  24. tail 尾n行
  25. tr 替换字符串
  26. wc 统计行数、字数、字节数
  27. stat 文件存储信息
  28. cut 按列分割
  29. diff 比较文件不同
  30. touch 设置读取时间atime、修改时间mtime
  31. mkdir 创建文件夹
  32. cp 复制
  33. mv 移动
  34. rm 删除
  35. dd 复制数据段
  36. file 查看文件类型
  37. tar 打包
  38. grep 搜索文本
  39. find 查找
    1. find 路径 -maxdepth 1 -name "文件名" -type f -mtime -2 -exec ls {} \;: 根据目录深度,文件名,文件类型,修改时间范围来查找文件,然后对每个找到的文件执行"ls 找到的文件;"(结尾必须是空格;)
  40. jobs 查看后台命令
  41. fg 将后台最后一个命令调回前台执行
  42. bg 将后台命令在后台启动
  43. chmod 修改文件权限
  44. chown 修改文件所属用户和用户组
  45. awk 格式化文本
  46. expr 对表达式求值
  47. crontab 计划任务
  48. lsblk 以树状结构列出磁盘信息
  49. su 登录root帐号
  50. info 查看帮助文档
  51. reset 复原命令行
  52. apt 在线安装软件
  53. adduser 添加帐号
  54. sudo 特权提升
    • sudo sh -c "echo hello > /etc/t.txt" 提升重定向符权限
  55. umask 控制新建文件权限的掩码
  56. ln 链接文件
  57. mkfifo 创建管道文件
  58. id 当前帐号
  59. apropos 查找关键字相关的命令
  60. lsof 列出被打开的文件
  61. pager 默认的分页程序
  62. editor 默认的编辑器
  63. exec 用文件描述符打开文件
  64. alias 别名
  65. read 读取一行,并区分域
  66. tr 替换或删除字母
  67. seq 打印数字序列
  68. xargs 将输入作为命令参数执行
  69. sort 排序
  70. uniq 删除重复行
  71. seq 替换字符串
  72. update-alternatives 安装一个应用的多个版本
  73. dpkg-reconfigure 重新配置应用
  74. whatis 显示命令的简短说明
  75. man 显示命令的帮助文档
  76. apropos 用关键字查找对应的命令名称
  77. pinfo 更好的info

1.3 命令行技巧

  1. tab键可以补全内容
  2. home 键可以回到一行开始
  3. 上下箭头键可以访问历史记录的命令
    1. ctrl + l 清屏
  4. 标准输入stdin,用/dev/stdin获取
  5. 标准输出stdout,用/dev/stdout输出
  6. 标准错误stderr,用/dev/stderr输出
  7. 重定向标准输入 <
  8. 重定向标准输出 >
  9. 重定向标准错误 2>
  10. 重定向标准输入分界符版本 <<遇到指定分界符停止
  11. 重定向标准输出和标准错误 &>
  12. 追加内容到末尾>>2>>
  13. 管道 |,如a | b即 a的输出作为b的输入
  14. 通配符
    1. * 任意个字符
    2. ? 一个字符
    3. [0-9] 零到九的任意一个字符
    4. [abc] 任意一个指定范围的字符
    5. [^abc] 除指定范围字符外的任意字符
    6. {a,b} 参数字符串展开a b
    7. {a..z..2} 参数字符串展开 a c e....
  15. 转义字符:\ 反斜杠,'单引号, "双引号, `反引号(1键左一)。一般而言:转义字符跟着或包裹着特殊字符,去除其特殊意义,变为普通字符。
    1. \ 跟着的字符变为普通字符
    2. ' 包裹的字符串变为普通字符串
    3. " 包裹的字符串除变量外变为普通字符串
    4. ` 包裹的字符串是一条命令,执行并取得结果
  16. 美元符号$, 取变量的值
    1. $() 执行括号内命令
  17. 变量设置,变量名=值 局部变量,export 变量名 提升为全局变量
  18. 默认的环境变量
    1. HOME 用户主目录
    2. SHELL 命令行解释器的名称
    3. HISTSIZE 命令历史记录条数
    4. HISTFILESIZE 存储的命令历史记录条数
    5. MAIL 邮件地址
    6. LANG 语言
    7. RANDOM 随机数
    8. PS1 命令行提示符
    9. PATH 命令搜索路径
    10. EDITOR 默认文件编辑器
  19. 文件终结符EOF,按ctrl + d,在输入时可以通过按这个组合键告知命令输入完结。
  20. 挂起命令,按ctrl + z,把当前执行的命令挂起在后台,并暂停。
  21. 终止命令,按ctrl + c
  22. & 用在命令最后,表示命令在后台执行
  23. 脚本程序:
    1. #!/bin/bash 位于第一行,指定脚本程序的解释器
    2. $0 命令名称
    3. $1 第一个参数
    4. $# 参数个数
    5. $* 所有参数值
    6. [ -d X ] X是否为目录,注意中括号内侧必须留空格,而且表达式都需要用中括号扩起来
    7. -e 文件是否存在
    8. -f 是否为一般文件
    9. -r 是否可读
    10. -w 是否可写
    11. -x 是否可执行
    12. -eq 等于、-ne 不等、-gt 大于、-lt 小于、-ge 大于等于、-le 小于等于;-nt 较新、-ot 较旧、-ef 同文件。
    13. -z 字符串是否为空、-n 非空、=相等、!= 不相等、< 排前、>排后。
    14. if 测试; then 命令序列; else 命令序列; fi
    15. for 变量 in 列表; do 命令序列; done
    16. while 测试; do 命令序列; done
    17. case 值 in 模式) 命令序列; ;; 模式2) 命令序列; ;; *) 默认命令序列; esac
    18. $? 退出状态码
    19. $$ PID
    20. $! 后台PID
    21. ${var:-string}- var没有被设置,返回string; + 被设置返回string; = 没设置判断是否相等; ? 没设置报错。: 存在且非空。
    22. $var | ${var} var是变量,返回值。
    23. $(command) | `command` command是命令,返回命令结果。
  24. /dev/zero 可无限读取空字符的特殊文件
  25. /dev/null 可无限写入的特殊文件
  26. shell命令完全格式:LANG=en_US.UTF-8 ls -l | more && echo yes
    1. 设置变量 :LANG=en_US.UTF-8
    2. 命令名 : ls
    3. 选项、参数 : -l
    4. 重定向 : |
    5. 控制操作 : &&
  27. 正则表达式:
    1. 元字符:\ . [ ] ^ $ *
    2. 元字符扩展:+ ? ( ) { } |
    3. 非元字符: c
    4. 字面意义字符: \c
    5. . :任意一个字符
    6. ^:字符串首部
    7. $:字符串尾部
    8. \<:单词首部
    9. />:单词尾部
    10. [abc]: abc中任意一个字符
    11. [^abc]:除abc中的任意一个字符
    12. r*:0到n个r字符
    13. r+:1到n个r字符
    14. r?:0或1个r字符
    15. a|b:a或b
    16. (a):a组成子正则表达式

管理linux

安装debian linux

  1. netinst.iso 基本光盘映像
  2. mini.iso 最小光盘映像
  3. bootp/dhcp/tftp 网络引导安装
  4. win32-loader.exe : windows环境下安装
  5. 分区:/根、/home/用户目录、/usr/应用程序目录、/var/软件数据、/tmp/临时文件;swap内存交换分区。
  6. LVM逻辑卷磁盘格式
    1. 物理卷pv - 传统分区(LVM磁盘格式)
      1. 物理块pe - 最小格式单位
    2. 逻辑卷lv - 虚拟分区
      1. 逻辑块le
    3. 卷组vg - 虚拟硬盘 lvm架构
  7. MBR :磁盘头512byte为启动扇区
  8. udev : 动态侦测设备/dev/disk/
  9. 引导过程
    1. bios
    2. bootloader
    3. linux kernel
      1. init=/bin/sh 内核参数,获取超级用户权限
    4. initramfs
    5. systemd
      1. systemd-journal
      2. sddm
      3. getty
      4. sshd

apt 程序包管理

  1. checkinstall :查看程序安装内容
  2. dpkg : 安装下载到本地的.deb软件包
    1. -L :列出安装的文件
    2. -l :显示安装的包
    3. -S :列出指定文件属于哪个包
  3. apt :连接到网络仓库安装软件包
    1. Packages.gz 仓库列表
    2. apt install xxx: 安装
    3. apt remove xxx:卸载
    4. apt install --reinstall xxx:重装
    5. apt install xxx:i386/unstable :安装unstable分支的xxx包的i386架构版本
    6. apt upgarade 更新已安装的包
    7. apt full-upgrade 升级系统到最新版本
    8. apt autoclean 清除下载缓存
    9. apt policy xxx 优先级
      1. /etc/apt/preferences 配置优先级
      2. 已安装:100
      3. 默认未安装:500
      4. 强制安装:>1000
      5. 禁止安装:<0
    10. apt autoremove 清楚没有依赖的自动安装包
    11. apt-mark showmanual 列出手动安装包
    12. apt-key fingerprint 列出安装包密钥
    13. apt search 搜索词 搜索说明匹配的包
    14. apt show xxx 包的简要信息
  4. /etc/debian_version :debian版本
  5. /etc/apt/sources.list 和 /etc/apt/sources.list.d/ :软件包源地址
  6. /etc/ 通常配置文件存放目录; 其他位置:/usr/local/ 或者/opt/。
  7. ar : .deb解包,内容如下:
    1. debian-binary 版本文本
    2. control.tar.gz 元数据
      1. Depends 段落“依赖”
      2. Suggests: 建议安装
      3. Conflicts/Replaces:冲突
      4. Breaks: 中断
      5. /var/lib/dpkg/info/脚本安装目录
    3. data.tar.xz 安装文件
  8. tar : .tar解包
  9. 脚本执行过程
    1. 安装
      1. preinst
      2. postinst
    2. 卸载
      1. prerm
      2. postrm | postrm purge
    3. 更新
      1. old-prerm
      2. new-preinst
      3. old-postrm
      4. new-postinst
  10. alien : 转换rpm为deb包

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. 80:www
    2. 25:smtp
    3. 20:ftp-data
    4. 21:ftp
    5. 23:telnet
    6. 143: imap2
    7. 110:pop3
    8. 389:ldap
    9. 443:https
    10. 465:ssmtp
    11. 989:ftps-data
    12. 990:ftps
    13. 992:telnets
    14. 993:imaps
    15. 995:pop3s
    16. 636:ldaps
  9. rsyslog 日志后台守护进程
  10. 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. * 任意

用户管理

  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可以删除,其他人无法删除(不递归)

网络管理

  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. nat(dnat):改变封包地址(可用于端口转发)
    1. /etc/sysctl.conf
  17. vpn :以信道方式提供虚拟专用网
    1. ssl :安全套接层
    2. tls: 传输层安全,标准化的ssl
    3. x.509: 授权认证CA标准
      1. easy-rsa
    4. ipsec-toos :提供ipsec服务
  18. qos:quality of service,流量分级管控。
    1. tc : 设置qos参数
    2. wondershaper
  19. bind9 : dns包
    1. host : 查询dns

网络应用

  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 :其他

视窗管理

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

apt 包

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

X客户端/X服务器

X客户端是相对应用程序的视角出发的定义,即程序本身。但是这个程序在用户角度可能是服务器上的一个程序。

X服务器是相对应用程序而言的,即提供显示设备和输入设备服务端,对用户来说是眼前的设备。

更多时候,X客户端和X服务器同时运行在本地电脑。

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 轮廓字体

汉化

多语言multilingualization(M17N)、国际化internationalization(I18N)、本地化localization(L10N)的支持,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 :转换字符串编码

驱动

  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管理工具

文件系统

  1. e2fsprogs : ext文件系统工具
  2. dosfstools :fat文件系统工具
  3. ntfs-3g :ntfs文件系统工具
  4. jfsutils:jfs文件系统工具
  5. hfsprogs:hfs文件系统工具
  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

映像

  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 查看二进制数据

数据管理

  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. pax:posix归档
  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 : 备份

编译

预先安装以下apt包:build-essential、libncurses5-dev、fakeroot、libqt4-dev(make xconfig需要)、libglalde2-dev和libgtk2.0-dev(make gconfig需要)、flex、bison、bc、libelf-dev、libssl-dev

或者:

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 或 qtbase5-dev)
    2. make gconfig 图形GTK+(libglade2-dev/libgtk2.0-dev)
    3. make nconfig 新的文本模式
  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

应用案例

删除 i386架构,因为我安装了winehq,他要求i386架构,但是后来我用虚拟机解决和windows兼容的问题了,所以就想着删除。但是如果没有把相应的i386库删除完毕,是无法删除架构的。光删除wine是无法彻底删除i386库。

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删除相关库

参考

  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
1
https://gitee.com/coder_lw/wiki.git
git@gitee.com:coder_lw/wiki.git
coder_lw
wiki
wiki
master

搜索帮助