linux基础笔记-1

文章目录

  • 1.os基础
  • 2.关于命令
    • eg.时间管理
    • 帮助方式
        • 关于man
  • 3.根文件系统
    • 文件类型
    • 文件的3个时间戳
    • 目录
      • 关于/etc
    • 关于文件种类
    • 关于根目录
    • 目录操作
    • 文件操作

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有关
/usr universal(全局) 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/network IP、掩码、网关、主机名配置
/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可查看。

你可能感兴趣的:(linux)