以前学习过Linux的知识,但感觉学的杂,不系统,基本上是用到什么知识点看什么,比较乱。现在利用休息时间在来整理下unix和linux的知识体系。就从基础开始吧!

Unix系统的组件介绍:

1 内核

最底层的东西。它提供了系统的核心功能并允许进程以一种有序的方式访问硬件。

内核支持系统以多用户,多任务模式运行。

内核是为特定的硬件构建的。

内核最重要的功能之一是简化了进程的创建和管理。

内核还管理内存,它是任何系统的核心元素。它必须为所有进程提供足够的内存,并且有些进程还会需要大量的内存。有时候一个进程需要的内存会超出可以使用的内存大小,这时就要用到虚拟内存。

当没有足够的物理内存时,系统通过把进程的一部分转移到硬盘上已设法容纳进程。当再次需要进程中被转移到硬盘上的那一部分时,在将其返回物理内存中。这个过程叫做Paging(页面调度)。它使得系统即使在有限的物理内存的条件下也能具备多任务处理的能力。

swap:交换,内核凭借这中机制识别出最不繁忙的进程或是那些不需要立刻执行的进程。然后内核将整个进程移出RAM,放入硬盘,直到下次在需要这个进程的时候。swap space空间耗尽将引起严重的问题。

2 shell

是一种命令行解释器,它使得用户能够和OS进行交互。可以直接使用它来管理和运行系统。

大多数系统中有三种shell:Bourne(sh),C shell(csh),Korn shell(ksh)。shell通过命令行以几乎独占的方式使用。

1 init进程是系统开始的第一个工作,它是所有进程的父进程。为了让系统运行,它必须一直处于运行状态。init进程调用初始化脚本并完成系统相关的管理任务。

2 init进程查看初始化说明文件,通常将文件称为:/etc/inittab。这个文件说明init进程应该如何解释不同的运行级别以及在每个运行级别中应该启动哪些脚本和进程。运行级别(run level)是一组进程或守护进程。

3 远程登陆

ssh     交互式的登陆一个shell以便执行多个功能如运行命令。该方法使用了加密技术来保护会话。

telnet  没有加密技术。

sftp    登陆以便在两个不同OS之间传送文件。使用了加密技术。

ftp         没有加密技术。

1 Unix系统上主要有三种类型的账户:根账户,系统账户,普通账户。

根账户能够完全的,不受约束的控制系统,以至于可以运行命令来完成破坏系统。

系统账户是对系统特定组件进行操作所需要的那类账户。

/etc/passwd文件中可以找到系统授权的账户名信息。

Unix权限作用于文件和目录上,并分别控制三类用户的权限。

组的一个强大之处在于基于访问需求,一个账户可以属于多个组。

2 系统上有三个主要的用户管理文件:

/etc/passwd   为系统识别已经授权的账户

/etc/shadow   保存相应账户加密后的口令

/etc/group    存放组账户的信息

3 cat /etc/passwd

每一行都由冒号分成了七个独立的部分

分别为login id, encrypted password or x, uid, default gid, comment, home directory, login shell

4 /etc/shells 文件中标识出可以识别的有效的shell

5 useradd -r 用于删除账户的主目录和邮件池。如果想保留他的主目录就不要用参数-r

6 groupadd -g group_id group_name

groupmod -n new old

groupdel group_name

7 su username    继续使用自己的环境变量和配置文件

su - username   使用新用户的环境文件

1 文件系统是Unix的一个组件,它能够让用户查看,组织以及保护存储设备上的文件和目录并与其进行交互。

2 面向磁盘的,面向网络的,专用或虚拟的文件系统

3 文件系统是多个文件的逻辑集合,它位于分区或磁盘上,一个分区通常只包含一个文件系统,这些分区对用户是不可见的。

在Unix中,任何软硬件都被视为文件,包括物理驱动器。通过文件系统,Unix能够在处理资源时保持一致,并且用户在与系统进行交互时也能够采用一致的方式。

4 Unix使用分层结构来组织文件,提供了一种自顶向下的方法来查找信息,该方法以一种有组织的方式逐层向下搜索以定位所需的内容。

5 目录介绍:

bin 通常包含二进制可执行文件,如:vi,shell,passwd

boot 用于启动系统的文件

lib 共享库文件

etc 系统配置文件

sbin 包含二进制可执行的文件,如:fdisk,ifconfig

6 Unix中区分大小写,但是在Mac OS X中却不区分。

7 硬链接不能跨越文件系统,并且用于连接的文件与原文件完全一样。对硬链接的文件所做的修改会反应到由硬链接产生的文件上。语法:ln file_name link_name

软链接能够跨越文件系统,甚至跨越不同的计算机系统,它有唯一的inode值,如果删除了该链接,其原文件依然存在。语法:ln -s file_name link_name

软硬链接都是指向同一个文件,并且编辑他们都将修改原文件的内容。主要区别在于,在删除原文件时他们的处理方式不同;当软硬链接位于不同文件系统上时他们的使用方式不同。

8 tail -f /var/log/syslog 实时的查看/var/log/syslog文件的内容

9 基本的文件系统管理

df -k (disk free 显示磁盘空间的使用情况)

重点关注abail和capacity,我们不希望自己的/或/tmp分区被填满

du -h (disk usage 能够通过指定目录来显示某个分区目录的磁盘空间的使用情况)

mount 查看系统上当前安装的文件系统

1 PS1变量在很大程度上修改Unix的行为,这取决于对某个特殊环境变量所赋值的值。

2 shell有自己的环境变量,如果深入研究shell脚本编程,就能够创建自己的环境变量来实现脚本的特殊功能。例如,可以创建一组变量,这组变量基于各个用户使用磁盘空间的情况来定义他们的提示符。

3 Unix中每个元素都是一个文件。

4 PATH变量的值通常在一个配置文件中,/etc/profile。用户可以向PATH中添加自己的值。格式为:

PATH=$PATH:new value

可以一次添加多个目录,用冒号分开就ok。

5 所有路径都相对于根目录。不管路径的级数是多少,一样可以使用相对路径。

6 .表示当前目录;..表示当前目录的父目录;~表示用户的主目录;

7 shell是一个程序,他位于用户和操作系统的内核之间。当用户执行命令火在提示符后进行输入时,就会与shell进行交互。接着,shell将用户的命令和按键转换成内核能够理解的内容,内核做出响应,然后在由shell输出提交给用户。

8 临时修改shell:1)在提示符后输入:tcsh (改为了tcsh shell)2)如果tcsh不在PATH中就用完整路径:/bin/tcsh 3)如果想返回自己的默认shell,就输入exit

9 各种shell:1)bourne shell 2) ash 3)bourne again shell 4) korn shell 5) z shell 6) c shell 7) perl shell

10 shell配置有4个主要元素,可以使用4者的任意组合,分别为:运行控制文件(只要启动shell就会执行),环境变量,别名,选项

11 /etc/profile

12 set 查看在系统上任意shell中所定义的变量。

1 Unix命令可以分成两部分:命令本身和追加给它的参数。在使用一个命令时,必须了解该命令的默认行为。

2 无论一个命令的参数是合并还是独立添加,该命令都产生相同的输出。

3 man,info,apropos 帮助命令

4 apropos检查是否安装了某个软件包;whereis查找它在哪。

5 元字符:最流行的元字符是通配符。他们是专用字符,能够用于同时匹配多个文件,从而增大一次性找到想要的文件名火目标的可能性。

通常有三种通配符:

?,*,[]

6 输入和输出重定向:在绝大多数情况下,标准输入是键盘,标准输出是屏幕。

用户可以为单独的操作修改输入和输出,这就是重定向。它是一个很好的方法,能够将一系列任务以流水线的方式运行。利用重定向,用户可以迫使某个特定的命令从源文件而不是键盘提取输入,或将输出放到显示器以外的某个地方。

输入和输出重定向字符<和>。

7 >和>>的区别,重点

8 管道是一个操作符,它把输入和输出重定向结合在一起,从而将一个命令的输出立即作为另一个命令的输入。管道用|表示。

9 命令置换:将一个命令的输出,作为另一个命令的参数。如:ls $(pwd),我们常用的格式是$()

10 ls,cat(还有很好的功能是把多个文件连接成一个更长的新文件),mv(还能重命名呢),cp,rm(注意三个参数i,r,f),touch,wc(显示指定文件的长度)

1 文件所有权:超级用户能够使用chown命令修改任何文件的所有权,无乱他是否创建了该文件。

2 除了用户名之外,每个用户还有一个用数字表示的ID,叫UID,系统通过它来识别用户。

3 超级用户的UID是0

4 每个用户至少属于一个组,也可以属于多个组。

5 文件权限:三种(读取,写入,执行)

6 修改权限chmod,两种使用方法:符号模式和绝对模式

7 umask,默认的权限方案是由它控制的。授予所指定权限以外的权限

8 文件系统配额:

第一步,为文件系统激活配额,通常在/etc/fstab

第二步,在文件系统顶层目录下创建一个配额文件。quotacheck -acug /home

第三步,使用edquota命令设置配额

1 vi是Unix/Linx工程师必备的

2 ~表示是未使用的行,如果某行不是以~开头,并且仍然是空白的,那么一定存在空格,制表符,换行符等

3 vi区别大小写

4 在vi中搜索文件,命令模式下:/yourword

5 如果进行误操作了,可以通过下面的方法解决:

1):q!

2)u

3)U 撤销当前行的操作

6 替换文本

1):s/a/b 替换当前行的第一个

2):s/a/b/g 替换当前行的所有

3):x,ys/a/b 替换第x到y行的第一个

4):x,ys/a/b/g 替换第x到y行的所有

5):1,$s/a/b/g 替换所有的

1 则表达式是具有一定句法的集合或短语,表示某类文本或字符串。正则表达式使得用户能够利用比较少的预定义字符集合来表示多种字符组合。

2 元字符代表一组字符或命令的字符串。

3 常见元字符:

.代表一个字符

[]其结果将匹配括号内的任意一个字符

*代表零个或多个其他字符

[^ ]不要匹配脱字符之后的任何字符

^ 只有当搜索序列位于行首时才进行匹配

^[] 匹配括号内的任意一个字符,匹配行首的序列。

$ 只匹配在行尾出现的实例

\ 删除紧跟其后的字符的特殊意义

?代表零个或一个字符

[a-z] 匹配任意一个字母

[0-9] 匹配0-9中的某个数字

[d-m7-9] 匹配d到m之间的某个字符或7到9之间的某个数字

4 常与其他命令搭配:

awk ed fgrep less more expr sed grep vi egrep

5 tee命令使得用户能够将命令的输出发送到多个位置

ps -ef | tee /tmp

6 script命令使得用户能够记录全部的交互式登陆会话

script -a /tmp

从启用该命令开始,他就捕捉用户的每一个按钮并保存到一个文件,exit中止。

7 wc命令使得用户能够打印文件中换行符、字符或单词的总数。

-c字符总数 -l换行符总数 -w单词的总数

1 sed和awk这两个命令主要在已有文本上执行操作,而不是提供定位目录或创建或删除文件的机制。

2 sed处理纯文本流的文本编辑器

awk一种输出格式化语言

3 sed是流编辑器,它根据用户预先设置的规矩来操作制定的文本流,该文本流通常在前面某个操作的输出。

4 sed实用程序读取指定的文件或/和标准输入,并按照一组命令的指示来修改输入。然后将输入写到标准输出中,如果需要的话,也可以进行重定向。

5 sed 的参数,-e可以指定多个命令;单引号将防止shell解释在编辑指令中找到的特殊字符或空格;-f参数指示的文件简单地指定一个文本文件,该文件含有一连串顺次执行的操作。

6 awk程序的一个典型示例是将数据转换成格式化的报告。

awk有两个输入:一个命令、一组命令或一个命令文件,以及数据或数据文件。

调用awk时,需要为它提供两条必要的信息,编辑命令以及所要编辑的数据。

awk的真正强大之处在于从一个比较大的格式化文件中提取部分数据。

7 常用的awk指令包括:= print printf if while for

1 要查看分配给shell的pid,可以使用echo $$

2 ps

3 kill

4 pstree

5 top

6 /proc文件系统时一个动态产生的文件系统,它能够用于检索正在系统上运行的进程的相关信息。

7 要让shell在后台运行特定的命令,只需要简单的向命令行的末尾加一个&

8 jobs 显示正在运行的shell作业

9 可以使用ps和top工具报告性能和检修故障

1 使用date检查和设置系统时钟

2 在linux上利用hwclock同步时钟

/sbin/hwclock

sudo /sbin/hwclock --systohc 要同步硬件时钟和系统时钟

3 利用NTP同步系统时钟,在etc/ntp.confongoing

4 cron和at用于在指定的时间运行命令、应用程序和脚本

5 在从某个配置文件或crontab运行指定的命令、脚本或应用程序时需要用到crond守护进程

6 在任何配置文件中注释都是一个有用的特性,应该充分应用它

7 cron的另一个常见的用法是管理系统日志并产生productive使用报告。

8 管理员能够指定有权和无权使用cron的用户。通过使用/etc/cron.allow和/etc/cron.deny文件来实现这一点

9 使用at命令进行一次性执行。安排一个命令、一系列命令或脚本在指定时间运行且只运行一次,那么可以at命令

10 实战:进行备份

ls

date

at 17:00

at>cp important_report.swx ~username/backups

按ctrl+d退出

atq

atrm 1 在执行某个命令之前要删除,请使用该命令

1 保护信息安全系统有三个基本原则:

机密性:必须阻止那些不需要知道的人了解信息

完整性:信息必须避免未授权的修改或污染

可用性:对那些需要访问信息的人,信息必须是可用的

2 根用户管理选项

sudo

1 shell脚本是独立文档,应该给予良好的注释。顶部存放一些基本信息,还要保存修改时间等信息。

2 shell脚本的基本结构:

特定shell环境的调用    #!/bin/bash

变量极其相关联的值     VAR=1     $VAR

输入源    read VAR

3 变量,要大写,用$取值

VAR = 1

read COLOR

echo $VAR

echo $COLOR

4 流程控制:

if [.....]

then

......

elif [.....]

then

.......

else

......

fi

========================

read COLOR

case $COLOR in

"red")

echo "red"

;;

"yellow")

echo "yellow"

exit 1

esac

5 在shell中进行数学运算

VAR=1

VAR='expr $VAR+1'

echo $VAR

6 test命令用于计算条件的值。他有很多参数

7 迭代控制流程

while(....)

do

....

done

until(....)

do

....

done

Unix整理笔记——Unix基础——里程碑相关推荐

  1. Unix整理笔记-vi简介-里程碑M8

    1 vi是Unix/Linx工程师必备的 2 ~表示是未使用的行,如果某行不是以~开头,并且仍然是空白的,那么一定存在空格,制表符,换行符等 3 vi区别大小写 4 在vi中搜索文件,命令模式下:/y ...

  2. Unix整理笔记——起步——里程碑M2

    1 init进程是系统开始的第一个工作,它是所有进程的父进程.为了让系统运行,它必须一直处于运行状态.init进程调用初始化脚本并完成系统相关的管理任务. 2 init进程查看初始化说明文件,通常将文 ...

  3. Unix整理笔记——安全性——里程碑M13

    1 保护信息安全系统有三个基本原则: 机密性:必须阻止那些不需要知道的人了解信息 完整性:信息必须避免未授权的修改或污染 可用性:对那些需要访问信息的人,信息必须是可用的 2 根用户管理选项 sudo

  4. Unix整理笔记——基本shell脚本编程——里程碑M14

    1 shell脚本是独立文档,应该给予良好的注释.顶部存放一些基本信息,还要保存修改时间等信息. 2 shell脚本的基本结构: 特定shell环境的调用    #!/bin/bash 变量极其相关联 ...

  5. html语言需要dw吗,HTML笔记整理1 -- HTML基础知识与DW简单使用

    HTML笔记整理1 -- HTML基础知识与DW简单使用概念客户端和服务器端文件名.基本名.扩展名资源文件和站点什么是HTML关于W3CW3C的规范网站与网页基本概念网页的制作网页的基本框架通过记事本 ...

  6. dw边框弧度设置_笔记整理1 -- HTML基础知识与DW简单使用

    笔记整理1 -- HTML基础知识与DW简单使用 笔记整理1 -- HTML基础知识与DW简单使用 概念 客户端和服务器端 文件名.基本名.扩展名 资源文件和站点 什么是HTML 关于W3C W3C的 ...

  7. php基础教学笔记,php学习笔记:基础知识

    php学习笔记:基础知识 2.每行结尾不允许有多余的空格 3.确保文件的命名和调用大小写一致,是由于类Unix系统上面,对大小写是敏感的 4.方法名只允许由字母组成,下划线是不允许的,首字母要小写,其 ...

  8. (整理)Ruby的基础知识

    xzyxuanyuan0我的:收件箱资源博客空间设置|帮助|退出 首页 业界 移动 云计算 研发 论坛 博客 下载 更多 千月星跡 アイをも求めて彷徨っている孤独なヒーロー 目录视图 摘要视图 订阅 ...

  9. html5教程 w3cschool,W3Cschool学习笔记——HTML5基础教程

    HTML5 建立的一些规则:新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立 ...

最新文章

  1. Android 定制RadioButton样式
  2. 允许root远程登录Solaris
  3. 《深入理解计算机网络》读书笔记一
  4. linux性能优化--cpu篇
  5. mybaits中resultMap实现多对多查询映射
  6. python缺失值处理 fillna能否用scala来处理_数据清洗(一)丨处理缺失数据
  7. selenium——元素的定位
  8. servlet的url-pattern匹配规则详细描述
  9. OpenStack Queens 女王新神器 — 卷多重挂载
  10. 李宏毅机器学习笔记第5周_逻辑回归
  11. 完整的网络安全解决方案
  12. iphone7 无法连接计算机看照片,教你iphone7一键导出照片至电脑方法及iPhone7连接电脑itunes没反应怎么办...
  13. pageadmin 网站建设教程:如何添加自定义页面
  14. 程序员的奋斗史(三十三)——人在囧途之应聘篇(三)
  15. 安卓126邮箱服务器怎么填,安卓126邮箱设置.doc
  16. Ribbon饥饿加载
  17. codeforces1492 D. Genius‘s Gambit python
  18. Apache Superset 1.2.0教程 (二)——快速入门(可视化王者英雄数据)
  19. 2022年测试工程师高频面试题及答案【python篇】
  20. 华为ENSP之防火墙双机热备

热门文章

  1. 计算机音乐非酋,非酋在线试听_薛明媛_高音质歌曲_九酷音乐
  2. Netty5的例子,简单介绍Netty的用法
  3. VLSI芯片电路测试分类testMode、模式、时钟复位输入输出
  4. 在SQL Server 2008R2中附加质疑的数据库
  5. 了解“新基建”、读罢IDC报告后,还请查收来自浪潮的硬核实力!
  6. Android-客户端上传多张图片到服务器功能实现
  7. 内存按字节编址,地址从A4000H到CBFFFH,共有多少个字节呢?若用存储容量为32K×8bit的存储器芯片构成内存,至少需要多少片?
  8. FHE学习笔记 #2 多项式环
  9. Html5中的input标签之多少
  10. C/C++交通处罚单处理系统