对linux来说通用的公共的系统库由glibc提供 程序编译方式: 根据编译时是否把对应所依赖的库,直接复制一份副本并编译自己的程序内部,分为: 动态链接:不把需要的库编译进程序中,而是在需要时去调用它 静态编译:直接把程序所需要的库复制一份副本编译到自己的程序中 进程的类型: 终端:是一组硬件设备,关联一个用户接口 通过启动的进程是否与终端相关分为; 与终端相关的;通过终端启动 与终端不相关的:操作引导启动过程当中自动启动 操作系统的组成; 静态:kernel(内核),application(应用程序)
文件系统:
组织成层级系统方便去查找文件 只要用户在操作系统中时,无论什么时候一定处于一个文件之中。 文件和目录被组织成一个单根倒置树结构 文件系统从 根目录 下开始,用“/” 表示 根文件系统(rootfs) :root filesystemlinux文件名称是大小写敏感 以. 开头的文件为隐藏文件的路径分隔的 / 文件有两类数据: 元数据:metadata 数据:data文件系统分层结构: LSB Linux Standard BaseFHS: (Filesystem Hierarchy Standard)文件系统的层级结构标准,叫FHS
文件系统结构
/bin:所有用户可用的基本的命令程序文件; /sbin:供系统管理员使用的工具程序; /boot:引导加载器必须用到的各种静态文件:kernel,initramfs(initrd),grub等; /dev:存储特殊文件或设备文件; 设备有两种类型: 字符设备:(字符设备是线性设备)键盘是最典型的字符设备 块设备:(是随机设备) /etc:系统程序的配置文件,只能为静态不能为二进制程序(etc自己也有一个层级目录) /home:普通用户的家目录的集中位置,一般每个普通用户的家目录默认为与用户名同名的子目录, /home/USERNAME/root:管理员的家目录:可选 /lib:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块 libc.so.*:动态链接的c库 ld*:运行时链接器/加载器 modules:用于存储内核模块的目录 /lib64:64位系统特有的存放64位共享库的路径 /media:便携式设备挂载点,一般有cdrom,floppy等; /mnt:其他文件系统的临时挂载点 /opt:附加应用程序(第三方应用程序)的安装位置:可选路径 /srv:当前主机为服务提供的数据(主机特有) /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录:可供所有用户执行写入操作:有特殊权限。 /usr:universal shared,read-only data bin:保证系统拥有完整功能而提供的应用程序 sbin: lib:32 位使用 lib64:只存在64 位系统 include:C程序的头文件(header files) share:结构化独立的数据,例如doc, man等 等 local:第三方应用程序的安装位置 bin, sbin, lib, lib64, etc, share include:c程序的头文件 share:命令手册页,命令自带文档等架构特有的文件的存储位置 local:另一个层级目录X11R6:x-Window程序的安装位置 src:程序源码问价你的存储位置 /usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序; /var:/var Hierarchy:存储常发生变化的数据的目录 cache:应用程序缓存数据目录 lib:应用程序状态信息数据 local专用于为/usr/local下的应用程序存储可变数据; lock:锁文件 log:日志目录及文件 opt:专用于为/opt下的应用程序存储可变数据; run:运行中的进程相关数据;通常用于存储进程pid文件 spool:应用程序数据池 tmp:保存系统两次重启之间产生的临时数据 /proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息的:它大多为内核参数, 例如:net.ipv4.ip_forward,虚拟为net/ipv4/ip_forward存储于/proc/sys/. 因此其完整路径为/proc/sys/net/ipv4/ip_forward /sys :sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径其主要作用在于为管理linux设备 提供一种统一模型的接口 /selinux: security enhanced Linux ,selinux 相关的安全策略等信息的存储位置
linux上应用后程序的组成部分:
二进制程序:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin 库文件:/lib, /lib64, /usr/lib, /usr/lib64,/usr/local/lib, /usr/local/lib64 配置文件:/etc, /etc/DIRECTORY, /usr/local/etc 帮助文件:/usr/share/man, /usr/share/doc,/usr/local/share/man, /usr/local/share/doc
linux系统文件类型
-:常规文件,即f d:directory,目录文件 b:block device ,块设备文件,支持以“block”为单位进行随机访问 c:character device,字符设备文件,支持以”character“为单位进行线性访问 major number: 主设备号,用来标识设备类型,进而确定要加载的驱动程序 minor number: 次设备号,用于标识统一类型中的不同的设备 l:symbolic link,符号链接文件(软链接文件) p:pipe ,管道文件 s:socket,套接字文件
linux不同颜色文件
白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:表示链接文件 红色闪烁:表示链接的文件有问题 ×××:表示设备文件 灰色:表示其他文件 浅×××:表示管道文件 粉红色:套接字文件
文件管理中常用的命令
pwd :显示当前shell和系统进程的工作目录 绝对路径:以正斜杠开始完整的文件的位置路径,可以用于任何想指定一个文件名的时候 相对路径:不以斜线开始,指定相对于当前工作目录或某目录的位置,可以作为一个简短的形式指定一个 文件名 cd:改变目录 cd 后跟绝对路径或相对路径: cd /root/Music/ 在root目录下 cd Music 到上一级目录:cd .. 回到用户主目录:cd 到以前的工作目录 cd - 相关的环境变量: PWD:保存了当前的目录路径 OLDPWD:上一次所在的目录路径 [root@localhost ~]# echo $PWD /root [root@localhost ~]# echo $OLDPWD /root/Music
> ls命令:
ls命令用来显示目录列表,列出当前目录的内容或指定目录。ls命令式linux里得常用命令, 在显示的列表中用不同的颜色区分不同的文件类型。
语法
ls [选项] [参数] [root@localhost testfile]# ls f1 f2 f3 f4 ls -a:显示所有的目录(包括隐藏文件) [root@localhost testfile]# ls -a . .. f1 f2 f3 f4 .lei ls -A:显示所有的目录(包括隐藏文件,除了"." 和".."文件) [root@localhost testfile]# ls -A f1 f2 f3 f4 .lei ls -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、 硬连接数、所有者、组、文件大小和文件的最后修改时间等; [root@localhost testfile]# ls -l total 16 drwxr-xr-x 2 root root 4096 Jul 27 11:17 f1 drwxr-xr-x 2 root root 4096 Jul 27 11:17 f2 drwxr-xr-x 2 root root 4096 Jul 27 11:17 f3 drwxr-xr-x 2 root root 4096 Jul 27 11:17 f4 ls -F:在每个输出项后追加文件的类型标识符, 具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接, “|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符 [root@localhost testfile]# ls -F f1/ f2/ f3/ f4/ ls -r:以文件名反序排列并输出目录内容列表 [root@localhost testfile]# ls -r f4 f3 f2 f1 ls -s:显示文件和目录的大小,以区块为单位 [root@localhost testfile]# ls -s total 16 4 f1 4 f2 4 f3 4 f4 ls –S:按从大到小排序 [root@localhost testfile]# ls -Sl total 20 drwxr-xr-x 3 root root 4096 Jul 27 13:47 f1 drwxr-xr-x 3 root root 4096 Jul 27 14:42 f2 drwxr-xr-x 2 root root 4096 Jul 27 11:17 f3 drwxr-xr-x 2 root root 4096 Jul 27 11:17 f4 -rw-r--r-- 1 root root 38 Jul 27 14:41 f7 ls -R:目录递归通过,将指定目录下的所有文件及子目录一并处理 (列出目录以及子目录里的文件或者目录) [root@localhost testfile]# ls -R .: f1 f2 f3 f4 ./f1: ./f2: ./f3: ./f4: ls –u :配合-t 选项,显示并按atime从新到旧顺序排列(动态发生改变) [root@localhost testfile]# ls -tu f2 f1 f3 f4 ls –U 不排序按目录存放顺序显示 [root@localhost testfile]# ls -U f2 f4 f3 f1 ls -d .* 只显示某目录下的隐藏文件 [root@localhost ~]# ls -d .* . .bash_history .bash_profile .cache .cshrc .ssh .. .bash_logout .bashrc .config .lesshst .tcshrc 问题: 一:字符终端登录时,显示当前登录终端号,主机名和当前时间 二:系统定时自动关机 三:只显示某目录下的隐藏文件 四:只显示某目录下的目录 1: \S Kernel \r on an \m The tty is \l The hostname is \n The time is \t Mage Education Learning Services
2:设定时间关机: shutdown –h 9:30 The system will halt at 9:30. 3:[root@localhost ~]# ls -d .* . .bash_history .bash_profile .cache .cshrc .ssh .. .bash_logout .bashrc .config .lesshst .tcshrc 4: [root@localhost dev]# ls -dl */ drwxr-xr-x 2 root root 180 Jul 28 2016 block/ drwxr-xr-x 2 root root 80 Jul 28 2016 bsg/ drwxr-xr-x 2 root root 2700 Jul 27 16:27 char/ drwxr-xr-x 6 root root 140 Jul 28 2016 cpu/ drwxr-xr-x 6 root root 120 Jul 27 16:27 disk/ drwxr-xr-x 2 root root 100 Jul 28 2016 dri/ dr-x------ 2 root root 0 Jul 27 19:32 fd/ drwxr-xr-x 2 root root 0 Jul 27 16:27 hugepages/ drwxr-xr-x 3 root root 180 Jul 27 16:27 input/ drwxr-xr-x 2 root root 60 Jul 28 2016 mapper/ drwxrwxrwt 2 root root 40 Jul 28 2016 mqueue/ drwxr-xr-x 2 root root 60 Jul 27 16:27 net/ drwxr-xr-x 2 root root 0 Jul 28 2016 pts/ drwxr-xr-x 2 root root 60 Jul 28 2016 raw/ drwxrwxrwt 2 root root 40 Jul 28 2016 shm/ drwxr-xr-x 2 root root 80 Jul 27 16:27 snd/ drwxr-xr-x 2 root root 60 Jul 27 16:27 vfio/