首页 > 技术文章 > Linux学习-实验楼(1)

bananaa 2017-07-20 22:10 原文

1.Shell:命令解释器

2.Linux技能树

3.X11:X窗口系统,其本身只是工具包及架构协议,Xorg是x架构规范的一个实现体,是实现了x协议规范的一个提供图形界面的服务器

4.终端本质上是对应着Linux上的/dev/tty设备,Linux的多用户登陆就是通过不同的/dec/tty设备完成的

5. 查看所属用户组: groups命令

实验4--Linux目录结构及文件基本操作

1.FHS标准:文件系统层次结构标准,它定义了系统中每个区域的用途,所需要的最小构成的文件和目录同事还给出了例外处理与矛盾处理。

2.进入当前登录用户的home路径

  cd ~

3.使用touch命令创建空白文件,其主要作用是来更改已有文件的时间戳的

4.标准输入输出:执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘,标准输出文件(stdout)和标准错误输出文件(stderr),后面两个文件都对应被重定向到终端的屏幕,以便我们能直接看到输出内容。进程姜葱标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中

实验5-环境变量与文件查找

1.创建:可以用declare创建,也可以使用时直接创建

   输出:echo $tmp,变量名只能是英文字母,数字或者下划线,且不能以数字作为开头。

2.变量类型:1)当前shell进程中用户自定义变量,只在当前shell中有效

      2)Shell本身内建的变量

      3)从自定义变量导出的环境变量

3.相关命令:1)set:显示当前Shell所有变量,包括其内建环境变量,用户自定义变量及导出的环境变量

      2)env:显示与当前用户相关的环境变量,还可以让命令在制定环境中运行

      3)export:显示从shell中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量..将变量export为环境变量后,在子shell中也可以查看。习惯将环境变量名设为大写

4.按生存周期来换分,Linux变量可以分为两类:

      1)永久的:需要修改配置文件,变量永久生效

      2)临时的:使用export命令行声明即可,变量在关闭shell时失效

5.    1) /etc/bashrc 和/etc/profile分别存放的是shell变量和环境变量,

  2)每个用户目录下有一个.profile隐藏文件,该.profile文件只对当前用户永久生效,而卸载/etc/profile中是对所有用户永久生效,所以想要添加一个永久生效的环境变量,只需要打开/etc/profile,在最后加上你想添加的环境变量就好啦

6. 1)命令的查找路径与顺序:输入一个命令,shell是怎么去查找然后执行的呢?这是通过环境变量PATH来进行搜索的,它保存了shell中执行的命令的搜索路径

    2)将自己创建的脚本文件或程序添加为系统命令:PATH=$PATH:/home/shiyanlou/mybin,其中mybin中存放着生成的可执行文件

    3)每次启动shell时自动执行添加路径到PATH的命令:在每个用户的home目录中都有一个shell每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等。zsh的配置文件是.zshrc,相应Bash的配置文件是.bashrc,它们在etc下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的配置文件。

  将命令直接添加到.zshrc中:echo "PATH=$PATH:/home/shiyanlou/mybin">>.zshrc,其中>>表示将标准输出以追加的方式重定向到一个文件中(而>是以覆盖的方式重定向到一个文件中)。

7.修改和删除已有变量

  1)修改

  2)删除:可以使用unset命令删除一个环境变量

  3)立刻生效:source命令。当我们在shell中修改了一个配置脚本文件之后,每次都要退出终端重新打开甚至重启主机之后才能生效,此时可以换用source命令来让其立即生效

8.搜索文件

  1)whereis 简单快速:这个搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询,whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s),如果想要获得更全面的搜索结果可以使用locate命令。

  2)locate快而全:通过 "/var/lib/mlocate/mlocate.db"数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行updatedb命令更新一次,所以有时候你刚添加的文件可能会找不到,需要手动执行一次updatedb命令。它可以用来查找指定目录下的不同文件类型,如查找/etc下所有以sh开头的文件。eg:locate /etc/sh.注意:它不只是在/etc目录下查找,还会自动递归子目录进行查找。

eg2:查找/usr/share/ 下所有jpg文件:locate /usr/share/\*.jpg。如果想只统计数目可以加上-c参数,-i参数可以忽略大小写进行查找,whereis的-b\-m\-s同样可以使用

  3)which小而精:which本身是shell内建的一个命令,我们通常使用which来确定是否安装了某个指定的软件,因为它只从PATH环境变量指定的路径中去搜索命令

  4)find精而细:find应该是几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性进行搜索。

推荐阅读