目录

一、Linux的文件系统与目录结构

二、shell的简介

三、改变终端的显示的用户名、主机名前缀、目录路径后缀

四、当执行一条命令时的查找顺序

五、使用shell脚本编写自己的时间命令

六、文件的时间戳

七、文件的硬链接和软连接

八、管道与输入输出重定向

九、练习题难点

十、总结

一、Linux的文件系统与目录结构

在Linux中一切皆可以被看作是文件,文件和目录被组织成一棵单根倒置树,根在上,枝、干、叶在下。如图所示:

各级目录简介:

1.        /  根目录,位于目录的最顶端,是所有文件和目录的父目录,其自身没有父目录。

2.        /boot 引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录。

3.        /bin 存放用户基本命令,不能关联至独立分区,OS启动就会用到的程序。

4.        /sbin 存放管理类基本命令,不能关联至独立分区,OS启动就会用到的程序。

5.        /lib 启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

6.        /lib64 专用于x86_64系统上的辅助共享库文件存放位置

7.        /etc 配置文件目录

8.        /home/USERNAME 普通用户家目录

9.        /root 管理员的家目录

10.     /media 便携式移动设备挂载点

11.     /mnt 临时文件系统挂载点

12.     /dev:设备文件及特殊文件存储位置

a)       b: block device,随机访问

b)       c: character device,线性访问

13.     /opt 第三方应用程序的安装位置

14.     /srv 系统上运行的服务用到的数据

15.     /tmp 临时文件存储位置

16./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

17. /var: variable data files

cache: 应用程序缓存数据目录

lib: 应用程序状态信息数据

local:专用于为/usr/local下的应用程序存储可变数据;

lock: 锁文件 log: 日志目录及文件

opt: 专用于为/opt下的应用程序存储可变数据;

run: 运行中的进程相关数据,通常用于存储进程pid文件

spool: 应用程序数据池

tmp: 保存系统两次重启之间产生的临时数据

18. /proc: 用于输出内核与进程信息相关的虚拟文件系统

19. /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

20. /selinux: security enhanced Linux,selinux相关的安全策 略等信息的存储位置

二、shell的简介

shell(计算机壳层)

在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

三、改变终端的显示的用户名、主机名前缀、目录路径后缀

1. 使用echo $PS1查看当前的提示符格式,结果如图:

2. 接下来改变主机名为\H,改变目录路径为\w,输出结果:

可以看到用户名显示为全名,路径名显示为全部路径

3.当用户关闭并重启虚拟机后,我们会发现,我们所修改保存的格式又变为了系统默认格式。那么如何保证系统重启后还能保持不变呢?接下来介绍一种方法来完成对格式的永久修改。

1) 使用vim命令对/etc目录下的bashrc文件进行编辑,单击i进入编辑模式。

2) 将PS1="\[\e[31m\][\u@\h \W]\\$\[\e[0m\] "粘贴到文件中的一行中,注意不要带#号(#号为注释符)

3) 单击esc退出编辑模式,使用Shift+:并键入x进行保存退出。

4) 最后使用reboot命令重启系统,查看修改是否成功。

四、当执行一条命令时的查找顺序

当Linux执行一道命令时遵循着以下顺序的查找过程:

1. 别名

2. 内部命令

3. 外部命令

1) hash

2) PATH

注释:一般情况下,操作系统在开机运行时会预加载一部分命令在内存中,这部分命令大多为常用命令(如:ls、ceho),这些命令被称为常用命令,在这些命令中,还有一部分命令被系统设置了别名(如:ls="ls --color=auto"),系统在查询内部命令时会首先在别名里寻找,如果找不到,才会寻找内部命令;当系统在内存中找不到与其匹配的内部命令,系统会在磁盘中寻找,此时首先会寻找系统hash过的命令,其次才是从PATH中从左至右一次寻找。

别名alias的使用方法:

alias 显示所有的别名信息

alias 别名='command -选项 参数'  例如:

unalias 别名

unalias -a 取消所有别名

别名的保存 nano /etc/bashrc

显示内部命令的使用方法enable:

enable 显示所有已激活的内部命令

enable command 激活被禁用的内部命令

enable |wc -l 显示激活中的内部命令的数量

enable -a 显示所有的内部命令

enable -a |wc -l 显示所有的内部命令的数量

enable -n 显示所有被禁用的内部命令

enable -n command 禁用某个内部命令

五、使用shell脚本编写自己的时间命令

首先,我们学习一下显示当前时间的命令date

date

+%Y 年

+%m 月

+%d 日

+%H 时

+%M 分

+%S 秒

+%w 星期

+%F 年-月-日

+%T 时:分:秒

单纯运行date命令,显示如下:

这样的显示很不符合我们的阅读习惯,接下来我们自己编写shell脚本执行自己的时间显示方式:

1) 使用touch创建一个shell脚本riqi.sh

2) 用vim编辑riqi.sh脚本文件:输入vim riqi.sh进入编辑模式,按i或者o进入编辑,在脚本中输入内容后按esc返回,按住Shift+:按键,然后在:后面输入x回车,完成编辑。

3) 用chmod增加riqi.sh的可执行权限,并检验其正确性:

4) 使用alias对其更改,并验证,于是我们就有了自己的日期显示命令了:

六、文件的时间戳

在文件系统中,数据只有两种:数据与元数据,在元数据中存放着文件的权限、所属人、所属组和时间戳等,而时间戳又分为三类;

1) atime 访问时间

2) mtime 文件数据修改时间

3) ctime 文件元数据修改时间

我们可以通过stat filename命令查看文件的元数据:

这里的touch filename 当文件不存在时,则创建一个空文件,名为filename

当文件已存在时,则更新期时间戳

-a 仅更新atime,ctime

-m 仅更新mtime, ctime

touch filename 更新全部时间戳。

七、文件的硬链接和软连接

在讲硬链接和软连接之前,首先了解什么是节点(inode)

节点inode(index node)表中包含文件系统所有文件列表

一个节点 (索引节点)是在一个表项,包含有关文件的信息 ( 元数据 ),包括:

文件类型,权限,UID,GID

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据块指针

有关文件的其他数据

硬链接

创建硬链接会增加额外的记录项以引用文件

对应于同一文件系统上一个物理文件

每个目录引用相同的inode号

创建时链接数递增

删除文件时:

rm命令递减计数的链接

文件要存在,至少有一个链接数

当链接数为零时,该文件被删除

不能跨越驱动器或分区

语法: ln filename  [linkname ]

例如:在/etc目录下的passwd文件的节点号是123,在/app目录下创建的硬链接密码的节点号同样是123,那么在相同节点号的情况下,passwd和mima在内存中储存的是同一样数据。

符号(或软)链接

一个符号链接指向另一个文件

ls - l的 显示链接的名称和引用的文件

一个符号链接的内容是它引用文件的名称

可以对目录进行

可以跨分区

指向的是另一个文件的路径;

其大小为指向的路径字符串的长度;

不增加或减少目标文件inode的引用计数;

语法: ln -s  filename  [linkname]

注意:一般情况下,创建软连接是采用相对地址,这样可以避免在上级目录更改时会发生地址不匹配的错误。但是要在创建软连接的时候注意软连接的作用对象是否时该目录,如果不是,虽然会创建成功,但会发生软链接报错的现象。

八、管道与输入输出重定向

1. 输入输出重定向

> 正确输出

2> 错误输出

&> 全部输出

文件不存在时,>和>> 都能创建新文件,文件已存在时 >表示覆盖,>>表示追加

2>&1 把错误的结果转成正确的结果

1>&2 把正确的结果转成错误的结果

示例:用普通用户查找/etc目录下所有以.conf为结尾的文件,将权限错误无法查看的错误信息输出到/app目录下的error.txt文件中去:

查看error.txt文件中是否存放了错误信息:

2. 管道

2>&1  |  或 |&  将所有的结果传递给管道处理

echo youkongma |mail -s "yuema2" guanyu

示例:用liubei用户向root发送邮件:

root用户查看邮件:

九、练习题难点

1、只显示/root下的隐藏文件和目录

2、显示/etc目录下,文件名至少包含一个小写字母和一个数字并以.conf结尾的文件或目录

3、定义别名命令baketc,每天将/etc/目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见

4、如何创建/testdir/dir2/x, /testdir/dir2/y,/testdir/dir2/x/a, /testdir/dir2/x/b

3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:

Hello, I am 用户名,The system version is here,please help me to check it ,thanks

操作系统版本信息

登陆root帐号查看邮件是否发送成功:

5、计算1+2+3+..+99+100的总和  提示:echo 1+2 |bc     echo {1..100}

十、总结

本周是第一次学习Linux运维相关知识,一周下来的学习量很大,只能挑一些认为是重点的内容和概念写在博客里,有些内容如:安装虚拟机、man命令的用法、cp命令的运行机制等并没有写在博客里,所以有很多欠缺的地方。以后会尽量多写一些内容放在这里,就这样了。

转载于:https://blog.51cto.com/13570208/2060563

Linux运维学习第一周总结相关推荐

  1. linux运维入门第一周的学习部分命令!

    linux运维入门一周后,部分常用命令. { 逻辑靠思维,命令全靠记!} / 根分区 代表分区的根 alias 别名命令 例如:alias NAME='VALUE' cat /etc/ centos- ...

  2. linux学习项目,[ Linux运维学习 ] 路径及实战项目合集

    我们知道运维工程师(Operations)最基本的职责就是负责服务的稳定性并确保整个服务的高可用性,同时不断优化系统架构.提升部署效率.优化资源利用率,确保服务可以7*24H不间断地为用户提供服务. ...

  3. 阿里云官方学习课程推荐-Linux运维学习路线 从事云计算运维相关工作必备技能

    阿里云官方学习课程推荐-Linux运维学习路线 从事云计算运维相关工作必备技能 目前越来越多的企业需要依赖于IT技术发布产品与服务,尤其是电子商务最为明显,它凸显了IT技术在现代企业中的重要性.当企业 ...

  4. 兄弟连Linux运维学习笔记

    最新经典linux运维兄弟连Linux运维学习笔记... --------------- 全程1.5倍播放.加油我一定可以学完Linux ---------------------- Unix与Lin ...

  5. linux系统运维费用,一般Linux运维学习的费用是多少?Linux学习

    随着IT 互联网技术的发展,Linux逐渐成为中高端服务器的主要操作系统,并且目前地位不可替代.Linux运维工程师是一位"复合型人才",他集成了网络.系统.数据库.开发和安全等工 ...

  6. Linux运维学习路径全解析

    作为一个小白,想要入门Linux还是有一定难度的,想要将Linux作为谋生技能更是需要你付出更多的经历和努力,我分享一些我之前自学Linux的经验以及一些学习网站资源,希望能对你有所帮助. 先贴一张L ...

  7. 最适合初学者的Linux运维学习教程2018版

    Linux运维工程师是一个新颖岗位,现在非常吃香,目前从行业的角度分析,随着国内软件行业不断发展壮大,越来越多复杂系统应运而生,为了保证系统稳定运行,必须要有足够多的Linux运维工程师.维护是软件生 ...

  8. Linux运维学习教程

    Linux运维工程师是一个新颖岗位,现在非常吃香,目前从行业的角度分析,随着国内软件行业不断发展壮大,越来越多复杂系统应运而生,为了保证系统稳定运行,必须要有足够多的Linux运维工程师.维护是软件生 ...

  9. linux常见系统目录,Linux系统中常见目录有哪些?linux运维学习中心

    Linux系统中常见目录有哪些?随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,市场对于Linux运维人才的需求也是逐渐增加.L ...

最新文章

  1. WPF TreeView HierarchicalDataTemplate
  2. Vue——prop双向绑定解决方案
  3. jsp springmvc 视图解析器_SpringMVC学习笔记
  4. Google Guava –与Monitor同步
  5. 平院实训门禁系统导入
  6. 国土空间规划数据汇交标准_国土空间规划数据治理指南来了
  7. 数据库并发抢红包_Redis悲观锁解决高并发抢红包的问题
  8. java Session生命周期讨论
  9. hfss matlab api,HFSS-Matlab-API实践体会与HFSS Scripting快速入门
  10. 一个完整的计算机系统有哪五大组成部分,一个完整的计算机系统由哪些部份组成...
  11. 只有360浏览器能打开别的都打不开
  12. python条件判断《X战警:逆转未来》
  13. javaScript案例——二级联动、三级联动、省市区三级联动
  14. 新手指南:到国外域名注册商注册域名
  15. IDEA官方有中文版啦
  16. 4.输入10个字符,统计里面大写英文的个数
  17. 【vm】虚拟机版本管理
  18. 【ShardingSphere技术专题】「ShardingJDBC实战阶段」SpringBoot之整合ShardingJDBC实现分库分表(JavaConfig方式)
  19. 好一座假山!———初谈岳不群
  20. 说真的,喜欢偶尔这样的激情解说!

热门文章

  1. springboot全局异常拦截
  2. Vue + elementui +router+swiper的几个不走弯路小技巧
  3. 最新专业金蝶软件K3数据库误删除修复恢复 金蝶K312.0数据库恢复修复
  4. PCB/PCBA评审Checklist,可使用DFM快速分析
  5. 为什么在编译程序的时候会出现“无法启动程序,因为计算机中丢失了mfc120d.dll,尝试重新安装程序以解决此问题”
  6. 牛客练习赛61-b题 吃水果
  7. 国家开放大学计算机应用基础本科形考一,国家开放大学「计算机应用基础(本)」形考任务1-3答案...
  8. 胸牌/岗位证/工作证/出入证打印工具 v1.1 怎么用
  9. 字节跳动 视频架构 一二面凉经
  10. 江苏省计算机二级vb百度网盘,江苏省计算机二级vb基本知识点总结