一、磁盘结构 1.1设备文件 一切皆文件:open(),read(),write(),close() 设备文件:关联至少一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号:major number,标识设备类型 次设备号:minor number,标识同一类型下的不同设备 #实例: [01:22:56 root@localhost ~]#ll /dev/null crw-rw-rw-. 1 root root 1, 3 Nov 22 01:12 /dev/null # 1,3 1是主设备号 3是次设备号 #范例:创建一个跟/dev/zero一样的文件 [01:23:04 root@localhost ~]#mknod /root/zero c 1 5 [01:27:23 root@localhost ~]#ll total 8 -rw-------. 1 root root 1301 Nov 21 23:55 anaconda-ks.cfg -rwxr-xr-x. 1 root root 1596 Nov 21 23:57 reset.sh crw-r--r....
7-软件管理
一、软件相关概念 1.1 软件相关概念 1.1.1 ABI ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux:WINE Windows:Cygwin 1.1.2 API 系统级开发 汇编语言 C C++ 应用级开发 java Python go php perl ruby bash 1.2 C语言程序的实现过程 C程序源代码——预处理——编译——汇编——链接 C语言的程序编译主要经过四个过程: 预处理:(Pre-Processing) 将所有的#define删除,并且展开所有的宏定义 处理所有的条件预编译指令,比如#if #ifdef #elif等 处理#include预编译指令,将被包含的文件插入到该预编译指令的位置 删除所有注释 添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号 保留所有的#pragma编译器指令,因为编译器需要使用他们 编....
SSH认证脚本
#要认证的主机IP IP=" 192.168.10.182 " #centos开启 #rpm -q sshpass &>/dev/null || yum -y install sshpass #ubuntu开启 dpkg -L sshpass &>/dev/null || apt -y install sshpass [ -f /root/.ssh/id_rsa ] || ssh-keygen -f /root/.ssh/id_rsa -P '' #登录密码 export SSHPASS=123456 for HOST in $IP;do sshpass -e ssh-copy-id -o StrictHostKeyChecking=no $HOST done
6-文件查找和打包压缩
一、文件查找 在文件系统上查找符合条件的文件 文件查找: 非实时查找(数据库查找):locate 实时查找:find 1.1 locate locate查询系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db 索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库 索引构建过程需要遍历整个根文件系统,很消耗资源 locate和updatedb命令来自于mlocate包 工作特点: 查找快速 模糊查找 非实时查找 搜索的是文件的全路径,不仅仅是文件名 可能只搜索用户具备读取和执行权限的目录 格式: locate [OPTION]... [PATTERN]... 常用选项 -i 不区分大小写的搜索 -n N只列举前N个匹配项目 -r 使用基本正则表达式 范例: #搜索名称或路径中包含conf的文件 [10:15:54 root@centos8 ~]#locate conf 使用regex来搜索以“.conf”结尾的文件 [10:16:57 root@centos8 ~]#locate -r "\.conf$" 范....
5-Shell脚本编程
一、编程基础 Linus:Talk is cheap,show me the code 1.1 程序组成 程序:算法+数据结构 数据:是程序的核心 数据结构:数据在计算机中的类型和组织方式 算法:处理数据的方式 1.2 程序编程风格 面向过程语言 做一件事,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现情况B,做什么处理 问题规模小,可以步骤化,按部就班处理 以指令为中心,数据服务于指令 C,shell 面向对象语言 一种认识世界、分析世界的方法论。将万事万物抽象为各种对象 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合 对象是类的具象,是一个实体 问题规模大,复杂系统 以数据为中心,指令服务于数据 java,C#,python,golang等 1.3 编程语言 计算机:运行二进制指令 编程语言:人与计算机之间交互的语言。分为俩种:低级语言和高级语言 低级编程语言: 机器:二进制的0和1的序列,称为机器指令。与自然语言差异太大,难懂、难写 汇编:用一些助记符号替代机器指令,称为汇编语言 高级编程语言: 编译:高级语言——....
4-Linux文本处理工具和正则表达式
一、文本编辑工具之VIM 1.1 vi 和 vim简介 在Linux中我们经常编辑修改文本文件,即由ASCII,Unicode或其他编码的纯文字的文件。 文本编辑种类: 全屏编辑器:vi,vim...... 行编辑器:sed vi visual editor,文本编辑器,是Linux必备工具之一,功能强大,学习曲线较陡峭,学习难度大。 vim Visual editor iMproved,和vi使用方法一致,但功能更为强大,最小化安装时不是必安装软件,需要自行安装 官网:https://www.vim.org/ 1.2 使用 vim 初步 1.2.1 vim 命令格式 vim [option]... FILE... 常用选项: +# #打开文件后,让光标处于第#行的行首,+默认行尾 +/PATTERN #让光标处于第一个被PATTERN匹配到的行行首 -b file #二进制方式打开文件 -d file1 file2... #比较多个文件,相当于vimdiff -m file #只读打开文件 -e file #直接进入ex模式,相当于执行ex file -y file #直接可以....
3-Linux用户组和权限管理
一、Linux安全模型 资源分派: Authentication:认证,验证用户身份 Authorization:授权,不同的用户设置不同权限 Accouting|Audition:审计 当用户登录成功时,系统会自动分配令牌token,包括:用户标识和组成员等信息 1.1 用户 Linux 中每个用户是通过User id (UID)来唯一标识的 管理员:root,0 普通用户:1-60000 自动分配 系统用户:1-499(centos6以前),1-999(centos7以后) 对守护进程获取资源进行权限分配 登录用户:500+(centos6以前),1000+(centos7之后) 给用户进行交互式登录使用 1.2 用户组 Linux 中可以将一个或多个用户加入用户组中,用户组是通过Group ID(GUID)来唯一标识的。 管理员组:root,0 普通组: 系统组:1-499(centos6以前),1-999(centos7以后),对守护进程获取资源进行权限分配 普通组:500+(centos6以前),1000+(centos7以后),给用户使用 1.....
2-Linux文件管理和IO重定向
一、文件系统目录结构 1.1 文件系统的目录结构 文件和目录被组织成一个单根倒置树结构 文件系统从根目录下开始,用“/”表示 跟文件系统(rootfs):root filesystem 标准Linux文件系统(如:ext4),文件名称大小写敏感,例如:MAIL,Mail 以 . 开头的文件为隐藏文件 路径分割的 / 文件名最长255个字节 包括路径在内的文件名称最长4095个字节 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件 除了斜杆和NULL,所有字符都有效,但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用 每个文件都有俩类相关数据:元数据:metadata,即属性,数据:data,即文件内容 Linux的文件系统分层结构:FHS Filesystem Hierarchy Standard 参考文档:https://www.pathname.com/fhs/ 1.2常见的文件系统目录功能 /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,....
1-Linux基础
一、Linux 基础 1.1 用户类型 root用户 一个特殊的管理员账户 也被称为超级用户 root已接近完整的系统控制,对系统损害几乎有无限的能力 普通(非特权)用户 除非必要,不要登录为root 权限有限 造成损害的能力比较有限 是什么用户是由用户uid来决定 ,查看方法 id -u 1.2 终端 terminal 1.2.1 终端类型 控制台终端:/dev/console 串行终端:/dev/ttys# 虚拟终端:tty: /dev/tty# 图形终端:startx,xwindows 伪终端:tpy:/dev/pts/# 如:ssh远程连接 1.2.2 查看当前终端设备:tty 范例: [20:00:11 root@localhost ~]#tty /dev/pts/0 1.2.3 查看所有的登录终端:who | w [20:14:12 root@localhost ~]#who root pts/0 2020-11-25 08:37 (192.168.10.1) root pts/1 2020-11-25 20:14 (192.168.10.1) w命令也能看到其....
Centos与Ubuntu初始化shell脚本
#!/bin/bash # #******************************************************************** #Author:zhangzhuo #QQ: 1191400158 #Date: 2020-12-18 #FileName:reset_Linux_OS_v4.sh #URL: https://www.zhangzhuo.ltd #Description:The test script #Copyright (C): 2020 All rights reserved #******************************************************************** Centos(){ centos_Version(){ Version=`grep -Eo "[0-9].[0-9]" /etc/redhat-release | tr '.' '%' | tr '\n' % |cut -d% -f 1` #Version=`sed -nr 's/.* ([0-9])\..*/\1/p'....