Linux 使用知识点记录

linux命令

  1. adduser 新增一个用户后 发现命令失效 ll ls tab 甚至BackSpace按键都不认识了

    因为添加用户时默认使用/bin/sh 需要切换为/bin/bash :切换为root 用户,vim /etc/passwd 编辑就OK了
    1.查看当前使用的是什么shell,linux命令:echo $SHELL
    2.查看当前可以使用的所有shell,linux命令:cat /etc/shells

  2. sudo : super user do

  3. apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器

  4. lsb_release -a (Linux standard base)查看linux发行版本信息

  5. uname -a (unix name) 查看系统信息

  6. ln 软硬链接 ln file1 file2 (默认硬链接) ln -s file1 file3 (软连接)
    cnblogs.com/itech/archive/2009/04/10/1433052.html

  7. 查找文件内容中是否包含关键字: cat fileName.txt | grep keyWord
    or : grep keyWord fileName.txt

  8. 统计文件内容中的单次个数:wc fileName.txt -w

  9. 查看路径内文件个数:ls | wc -w

  10. > 覆盖写入 >>追加写入
    方法1: echo content >> outfile 方法2:cat >> outfile

  11. | 管道命令,将上一命令的输出作为下一命令的输入

  12. PIPESTATUS 各步通道命令执行结果

linux 相关知识

  1. glibc和libc

都是linux下的C函数库 libc是Linux下的ANSI C函数库, glibc是Linux下的GNU C函数库
提供系统调用和基本的C库,比如open,malloc,printf等。glibc相较libc实现的功能更丰富。

  1. glib
    https://docs.gtk.org/glib/
    glib提供了多种高级的数据结构,如内存块、双向和单向链表、哈希表、动态字符串以及字符串工具(例如词法分析器,字符串切分等)、动态数组,平衡二叉树、n-叉树、键值存储、关系和元组,还有带有缓存的内存管理。Glib还实现了线程相关的函数、多线程编程以及相关的工具,例如原始变量访问,互斥锁,异步队列,安全内存池,消息传递和日志,钩子函数和计时器,同时消息传递还包含了字节序转换和IO channel。
    包含5个底层库:GObject、Glib、GModule、GThread、GIO

  2. pkg-config
    freedesktop.org/wiki/Software/pkg-config/
    pkg-config是用于编译程序或链接库时的工具,便于在命令行中添加指定的编译选项如:
    #> gcc -o test test.c pkg-config --libs --cflags glib-2.0
    不用硬编码来寻找链接库,是代码不感知的。

  3. BusyBox
    linux.cn/article-13840-1.html
    是一个GPL项目,集成了常用shell命令(可定制、已裁剪)的可执行文件。因为很小,常用于嵌入式等对存储要求高的场景。

  4. Linux内核镜像格式
    vmlinux:内核编译出来的原始内核文件,未压缩。elf格式,包含2进制信息 和 符号表等信息
    Image:vmlinx排除符号表、重定位信息后,剩下的二进制数据
    zImage:ARM Linux常用压缩镜像,vmlinux + 解压代码 经gzip压缩而成
    bzImage:vmlinux + 解压代码(压缩率更高) 经gzip压缩而成
    uImage:uboot专用镜像。zImage + 0x40长度的头信息。多用在NAND Flash
    xipImage:多用在NorFlash

  5. POSIX 可移植操作系统接口
    POSIX是一种标准,通过指定统一的操作系统对外接口,保证应用程序的可移植性。
    这种标准屏蔽了各种操作系统的实现细节。

  6. MBR master boot record 主引导记录/主引导扇区
    含义1:特指计算机开机后读取硬盘的首个扇区
    含义2:读取的首个扇区包括(446 Byte的MBR + 64Byte分区表 + 2Byte标志位)
    作用:计算机BIOS启动后,扫描各种启动设备,当某一启动设备的MBR校验通过后,会加载MBR存储的程序(作用为加载启动设备中的引导程序:如GRUB)。之后 引导程序会加载内核。

  7. linux 文件系统
    cnblogs.com/linguoguo/p/15807293.html

  8. Linux 分组、权限
    Linux的文件/路径 归属分为 持有者、归属群组 和 other
    Linux的文件/路径属性分为 可读r 可写w 可执行x
    路径的可读属性说明可以查询该路径下的文件/路径的名称
    路径的可执行属性说明可进入该目录 (就算该路径下有无操作权限的文件,因为对该路径有可执行权限,也可以直接将该文件删除)

  9. /usr 路径不是用户的含义 而是类似windows 『C:\Windows\ + C:\Program files\』这两个目录的综合体
    usr是Unix Software Resource的缩写, 也就是『Unix操作系统软件资源』所放置的目录,软件安装者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。系统默认的软件(distribution发布者提供的软件)都会放置到/usr底下

  10. /usr/local/
    系统管理员在本机安装下载的软件(非distribution默认提供者),建议安装到此目录, 会便于管理。举例,你的distribution提供的软件较旧,你想安装较新的软件但又不想移除旧版, 此时你可以将新版软件安装于/usr/local/目录下,可与原先的旧版软件有区分。

  11. /var
    程序运行过程中,放置各类临时文件

  12. 初始虚拟磁盘 包括initrd(ram disk) initramfs
    http://c.biancheng.net/view/1016.html
    在内存上虚拟出来的文件系统。
    产生背景:
    Linux 会把不重要的功能编译成内核模块,在需要时再调用,保证内核不会过大。这些模块保存在 /lib/modules 目录中。常见的 USB、SATA 和 SCSI 等硬盘设备的驱动,还有一些特殊的文件系统(如 LVM、RAID 等)的驱动,都是以模块的方式来保存的。如果 Linux 安装在 IDE 硬盘之上,并且采用 ext3/4 文件系统,那么内核启动后加载根分区和模块后,系统会顺利启动。但如果 Linux 使用 SCSI 硬盘,采用的是 LVM 文件系统,那么内核(内核载入内存是启动引导程序 GRUB 调用的,并不存在硬盘驱动不识别的问题)在加载根目录之前是需要加载 SCSI 硬盘或 LVM 文件系统的驱动的。两者的驱动都放在硬盘的 /lib/modules 目录中,既然内核没有办法识别 SCSI 硬盘或 LVM 文件系统,那怎么可能读取 /lib/modules 目录中的驱动呢?Linux 给出的解决办法是使用 initramfs 这个虚拟文件系统。
    工作方式:
    initramfs通过启动引导程序加载到内存中,然后会解压缩并在内存中仿真成一个根目录,并且这个仿真的文件系统能够提供一个可执行程序,通过该程序来加载启动过程中所需的内核模块,比如 USB、SATA. SCSI 硬盘的驱动和 LVM、RAID 文件系统的驱动。通过 initramfs 虚拟文件系统在内存中模拟出一个根目录,然后在这个模拟根目录中加载 SCSI 等硬件的驱动,就可以加载真正的根目录了,之后才能调用 Linux 的第一个进程 /sbin/init。
    总结:initramfs 是为了在内核中建立一个模拟根目录,这个模拟根目录是为了可以调用 USB、SATA、SCSI、LVM、RAID 等硬盘接口或文件系统的驱动模块,加载了驱动模块后才可以加载真正的系统根目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值