linux基础笔记-1

1.os基础

计算机分层:硬件,os/kernel,库/api,应用。

应用可以和库同层,即运行在内核上,也可以在库之上。
也有hacker可以直接在硬件上编程。
一些随系统启动而启动的叫做(后台)服务,手动启动的程序叫做交互程序。
只有内核位于0环。应用位于3环

kernel功能:

  • 进程管理
  • 内存管理
  • 文件系统
  • 硬件驱动
  • 安全机制

内存分配:bios,kernel,app
app部分会产生碎片

库之上的应用包含shell,分为两种:GUI,CLI

linux gui有三种:Gnome©,KDE(c++),XFace
CLI:bash,csh,zsh,ksh,tcsh,bsh(默认)

linux是种内核,库叫做glibc
完整系统名叫做GNU/Linux

一般人无法编译内核,所以有很多第三方(发行商release)将系统编译后打包发行。

学习os:

  • 运行程序
  • 设备管理
  • 软件管理
  • 进程管理
  • 网络管理

linux基本原则:

  1. 有目的单一的小程序组成
  2. 一切皆文件
  3. 尽量避免捕获用户接口(避免交互)
  4. 配置文件保存为纯文本格式

[命令提示符prompt]#:root
$:普通用户

Shebang符号: #!

脚本中第一行开头中写到,它指明了执行这个脚本文件的解释程序

linux可以启动多个界面

虚拟终端(terminal)使用:
ctrl+alt+(F1-F6)
startx & 开启gui

linux的so(shared object)相当于windows dll

linux文件系统为树状结构
根目录/root

文件类型

  • -:普通文件
  • d:目录文件
  • b:块设备文件
  • c:字符设备文件
  • l:符号链接文件
  • p:命令管道文件
  • s:套接字文件

access:访问
modify:改变内容
change:改变元数据metadata

命令类型
内置命令:shell builtin
外部命令

cache is king
慢则加缓存

2.关于命令

eg.时间管理

rtc ntp
1970-1-1 00:00:00 UTC
clock 软件时间
hwclock 硬件时间

date +%Y
date +"this year is %Y. %nToday is %d"
date +%T     #time; same as %H:%M:%S
date +%F    #%Y-%m-%d
date +%Y-%m-%d

帮助方式

有4种:

  1. 内部命令:help CMD
  2. 外部命令:CMD --help
  3. 手册:man CMD
  4. 在线文档:info CMD

显示摘要:whatis CMD

/usr/share/doc包含大多数命令文档

type CMD命令可以显示命令属于内部还是外部。

关于man

man分章节(section)

  • 章节1:用户命令
  • 章节2:系统调用
  • 章节3:库调用
  • 章节4:特殊文件,设备文件
  • 章节5:文件格式,配置文件的语法
  • 章节6:游戏
  • 章节7:杂项mixcellaneous
  • 章节8:管理命令(/sbin,/usr/sbin,/usr/local/sbin)
  • 章节9:内核日常工作

常用:

man 2 read
man 4 tty
man 5 passwd

3.根文件系统

可执行程序,在windows为PE(Portable Executable),Linux中为ELF(Executable and Linkable Format).

FHS:Filesystem Hierarchy Standard(文件系统层次化标准),主要目的是让用户了解已安装软件路径。

文件类型

  • -:普通文件
  • d:目录文件
  • b:块设备文件
  • c:字符设备文件
  • l:符号链接文件
  • p:命令管道文件
  • s:套接字文件

文件的3个时间戳

access:访问
modify:改变内容
change:改变元数据metadata

目录

目录描述
/boot/boot包含系统启动相关的文件,如内核,initrd,grub(bootloader)。重要文件有vmlinuz,initrd.img,System.map。vmlinuz是可引导的、压缩的内核。
/dev包含设备文件。ls显示蓝色的文件为链接文件 设备文件前景为黄色。 特殊文件没有大小 设备号:主次设备号,major,minor;主设备号标识设备类型,次设备号标识同一种类型中的不同设备。
/etc包含配置文件
/home/USERNAME用户家目录,但注意,但root管理员的家目录是/root。
/lib包含库文件。
静态库:.a;动态库:.so。
/lib/modules包含内核模块文件
/media/dev/cdrom设备文件是不能cd访问的,需要关联到一个目录,即挂载。
/mnt挂载点目录,挂载额外的临时文件系统
/opt可选目录
/proc和/sys伪文件系统,即虚拟文件系统,数据都在内存中,不占用硬盘。/proc启动后含内核映射文件;/sys跟硬件设备相关的属性映射文件。伪文件系统关机为空
/tmp临时文件目录(还有/var/tmp),权限777。
/var可变化的文件。/vat/log/wtmp存储登录信息。
系统运行后渐渐占用容量,该目录针对动态文件,如cache,log file,lock file,run file。
/bin包含可执行文件,用户命令
/sbin管理命令,以上两库和/lib,/etc有关
/usruniversal(全局) shared read-only,或者UNIX Software Resource。其数据可分享,不可变动。系统安装后占用容量最多(对比/var)。
内置/bin,/sbin,/lib和启动后的功能有关文件
/usr/local和第三方软件有关

注意,linux是没有注册表的,所有配置都是通过文本来实现。

关于/etc

文件描述
/etc/rc,/etc/rc.d,/etc/rc*.d启动、或改变运行级时运行的scripts或scripts的目录.
/etc/hosts本地域名解析文件
/etc/sysconfig/networkIP、掩码、网关、主机名配置
/etc/fstab开机自动挂载系统,所有分区开机都会自动挂载
/etc/inittab设定系统启动时Init进程将把系统设置成什么样的runlevel及加载相关的启动文件配置
/etc/init.d这个目录来存放系统启动脚本
/etc/mtab当前安装的文件系统列表.由scripts初始化,并由mount 命令自动更新.需要一个当前安装的文件系统的列表时使用,例如df 命令
/etc/{passwd,group,shadow}用户数据库
/etc/sudoers可以sudo命令的配置文件
/etc/shells列出可信任的shell
/etc/xinetd.d如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录下。

关于文件种类

  • 普通文件[-],纯文本文件,二进制文件,数据格式文件(如wtmp,不能cat)
  • 目录[d],连接文件[l]
  • 设备文件。
    • 块设备[b]:随机访问,按数据块访问;
    • 字符设备[c]:线性访问,按字符为单位;鼠标,显示器都是线性的
  • 套接字,管道

关于根目录

所有目录由根目录衍生,根目录与开机、还原及系统修复有关。根目录不应放在很大的分区,因为越大,数据就越多,越容易出错。并且,安装软件不要与根同区。

开机时仅有根被挂载,与开机有关的目录不能与根放到不同的分区:

  • /etc:配置文件
  • /bin:重要执行文件
  • /dev:所需的设备文件
  • /lib:执行文件所需的库以及内核模块
  • /sbin:重要的系统执行文件

目录操作

tree DIR:查看目录树

mkdir /mnt/test/x/m /mnt/test/x/m
mkdir /mnt/test/{x/m,y}
花括号用来展开

a_c,a_d,b_c,b_d
{a,b}_{c,d}

常用:

mkdir [-pv]
rmdir [-p]

文件操作

touch:本用于修改时间戳,stat可查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
B站上的韩顺平老师的《Linux学习笔记》系列课程非常值得推荐。通过这个课程,我学到了很多关于Linux操作系统的知识和技能。 首先,韩老师在课程中详细介绍了Linux的基本概念和特点。我清楚地了解到Linux是一个开源的操作系统,具有稳定性、安全性和可定制性强的特点。这让我对Linux有了更深入的理解,也更有信心去学习和使用它。 其次,韩老师从基础开始,逐步讲解了Linux的安装和配置。他用简单明了的语言和实际操作的示范,帮助我了解了如何在虚拟机上安装Linux系统,并设置网络、用户账户、文件系统等。这为我后续的学习和实践打下了坚实的基础。 此外,韩老师还讲解了Linux的常用命令和工具。他详细介绍了常用的文件和目录操作命令,比如cd、ls、mkdir、cp等。同时,他还讲解了grep、sed、awk等强大的文本处理工具的使用方法。这些内容帮助我更加高效地进行文件管理和数据处理。 最后,韩老师还介绍了Linux的网络管理和安全防护。他讲解了如何配置网络连接、使用ssh远程登录以及设置防火墙等内容。这些知识对我了解网络和保护系统安全非常有帮助。 总的来说,韩顺平老师的《Linux学习笔记》课程非常实用,对于初学者来说是入门学习Linux的好选择。他通过深入浅出的讲解和丰富的实操示范,让我可以轻松地学习到Linux的基本知识和操作技巧。我相信通过学习这个课程,我会在Linux领域有更进一步的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值