实习第一周(第二天)(下午)(vim,alias,环境变量)

来源:互联网 发布:限制员工上网软件 编辑:程序博客网 时间:2024/06/08 00:29

      如果你想要使用 vi 来建立一个名为 test.txt 的档案时,你可以这样做:

      vi test.txt 使用 vi 进入一般模式;

      直接输入『 vi 档名』就能够进入 vi 的一般模式了。

      在一般模式之中,只要按下 i, o, a 等字符就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态栏中会出现–INSERT- 的字样,那就是可以输入任意字符的提示啰!这个时候,键盘上除了[Esc] 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑啰!

      OK,我们要存档了,存盘并离开的指令很简单,输入『:wq』即可存档离开! (注意了,按下: 该光标就会移动到最底下一行去!) 这时你在提示字符后面输入『 ls -l 』即可看到我们刚刚建立的test.txt 档案啦!

       如此一来,你的档案 test.txt 就已经建立起来啰!需要注意的是,如果你的档案权限不对,例如为-r--r--r-- 时,那么可能会无法写入,此时可以使用『强制写入』的方式吗?可以!使用『:wq! 』多加一个惊叹号即可!不过,需要特别注意呦!那个是在『你的权限可以改变』的情况下才能成立的!

      vim支持多档案编辑 执行命令 vi file1 \local\file2

  • 当我有一个档案非常的大,我查阅到后面的数据时,想要『对照』前面的数据,是否需要使用 [ctrl]+f 与 [ctrl]+b (或 pageup, pagedown 功能键) 来跑前跑后查阅?

  • 我有两个需要对照着看的档案,不想使用前一小节提到的多档案编辑功能;

在一般窗口接口下的编辑软件大多有『分割窗口』或者是『冻结窗口』的功能来将一个档案分割成多个窗口的展现,那么 vim 能不能达到这个功能啊?可以啊!但是如何分割窗口并放入档案呢?很简单啊!在指令列模式输入『:sp {filename}』即可!那个 filename 可有可无,如果想要在新窗口启动另一个档案,就加入档名,否则仅输入 :sp 时,出现的则是同一个档案在两个窗口间

让我们来测试一下,你先使用『 vim /etc/man.config 』打开这个档案,然后『 1G 』去到第一行,之后输入『 :sp 』再次的打开这个档案一次,然后再输入『 G 』。

这一章重点回顾~~

  • Linux 底下的配置文件多为文本文件,故使用 vim 即可进行设定编辑;
  • vim 可视为程序编辑器,可用以编辑 shell script, 配置文件等,避免打错字;
  • vi 为所有 unix like 的操作系统都会存在的编辑器,且执行速度快速;
  • vi 有三种模式,一般模式可变换到编辑与指令列模式,但编辑模式与指令列模式不能互换;
  • 常用的按键有i, [Esc], :wq 等;
  • vi 的画面大略可分为两部份,(1)上半部的本文与(2)最后一行的状态+指令列模式;
  • 数字是有意义的,用来说明重复进行几次动作的意思,如 5yy 为复制 5 行之意;
  • 光标的移动中,大写的 G 经常使用,尤其是 1G, G 移动到文章的头/尾功能!
  • vi 的取代功能也很棒! :n1,n2s/old/new/g 要特别注意学习起来;
  • 小数点『 . 』为重复进行前一次动作,也是经常使用的按键功能!
  • 进入编辑模式几乎只要记住: i, o, R 三个按钮即可!尤其是新增一行的 o 与取代的 R
  • vim 会主动的建立 swap 暂存档,所以不要随意断线!
  • 如果在文章内有对齐的区块,可以使用 [ctrl]-v 进行复制/贴上/删除的行为
  • 使用 :sp 功能可以分割窗口
  • vim 的环境设定可以写入在 ~/.vimrc 档案中;
  • 可以使用 iconv 进行档案语系编码的转换
  • 使用 dos2unix 及 unix2dos 可以变更档案每一行的行尾断行字符。

这应该是个蛮有趣的话题:『什么是 Shell』?相信只要摸过计算机,对于操作系统 (不论是 Linux 、 Unix 或者是 Windows) 有点概念的朋友们大多听过这个名词,因为只要有『操作系统』那么就离不开Shell 这个东西。不过,在讨论 Shell 之前,我们先来了解一下计算机的运行状况吧!举个例子来说:当你要计算机传输出来『音乐』的时候,你的计算机需要什么东西呢

  1. 硬件:当然就是需要你的硬件有『声卡芯片』这个配备,否则怎么会有声音;
  2. 核心管理:操作系统的核心可以支持这个芯片组,当然还需要提供芯片的驱动程序啰;
  3. 应用程序:需要使用者 (就是你) 输入发生声音的命令啰!

这就是基本的一个输出声音所需要的步骤!也就是说,你必须要『输入』一个命令之后,『硬件』才会透过你下达的命令来工作!那么硬件如何知道你下达的命令呢?那就是kernel (核心) 的控制工作了!也就是说,我们必须要透过『Shell 』将我们输入的命令与 Kernel 沟通,好让 Kernel 可以控制硬件来正确无误的工作

     
  • 远程管理:文字接口就是比较快!
此外,Linux 的管理常常需要透过远程联机,而联机时文字接口的传输速度一定比较快,而且,较不容易出现断线或者是信息外流的问题,因此,shell 真的是得学习的一项工具。而且,他可以让您更深入 Linux ,更了解他,而不是只会按一按鼠标而已!所谓『天助自助者!』多摸一点文本模式的东西,会让你与Linux 更亲近呢!

     

bash 是 Linux 默认的 shell ,那么总是得了解一下这个玩意儿吧!bash 是 GNU 计划中重要的工具软件之一,目前也是Linux distributions 的标准 shell 。 bash 主要兼容于 sh ,并且依据一些使用者需求,而加强的shell 版本。不论你使用的是那个 distribution ,你都难逃需要学习 bash 的宿命啦!那么这个shell 有什么好处,干嘛 Linux 要使用他作为默认的 shell 呢? bash 主要的优点有底下几个:


      命令编修能力 (history):

~/.bash_history 记录的是前一次登陆以前所运行过的命令,而至于这一次登陆所运行的命令都被缓存在内存中,当你成功的注销系统后,该命令记忆才会记录到 .bash_history 当中

     

      命令与文件补全功能: ([tab] 按键的好处)

  • [Tab] 接在一串命令的第一个字的后面,则为命令补全;
  • [Tab] 接在一串命令的第二个字以后时,则为『文件补齐』!

所以说,如果我想要知道我的环境中,所有可以运行的命令有几个?就直接在 bash 的提示字符后面连续按两次 [tab] 按键就能够显示所有的可运行命令了。那如果想要知道系统当中所有以 c 为开头的命令呢?就按下『 c[tab][tab] 』就好啦! ^_^

是的!真的是很方便的功能,所以,有事没事,在bash shell 底下,多按几次 [tab] 是一个不错的习惯啦


     

  • 命令别名配置功能: (alias)

假如我需要知道这个目录底下的所有文件 (包含隐藏档) 及所有的文件属性,那么我就必须要下达『ls -al 』这样的命令串,唉!真麻烦,有没有更快的取代方式?呵呵!就使用命令别名呀!例如鸟哥最喜欢直接以lm 这个自定义的命令来取代上面的命令,也就是说,lm 会等于 ls -al这样的一个功能,嘿!那么要如何作呢?就使用 alias 即可!你可以在命令列输入 alias 就可以知道目前的命令别名有哪些了!也可以直接下达命令来配置别名呦:

alias lm='ls -al'
        在我目前这个 shell 的情况下,去激活另一个新的 shell ,新的那个 shell 就是子程序啦!在一般的状态下,父程序的自定义变量是无法在子程序内使用的。但是透过 export 将变量变成环境变量后,就能够在子程序底下应用了!

例题:

在变量的配置当中,单引号与双引号的用途有何不同?
答:
单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符,而不会有特殊符号。我们以底下的例子做说明:假设您定义了一个变量, name=VBird ,现在想以 name 这个变量的内容定义出 myname 显示 VBird its me 这个内容,要如何订定呢?
[root@www ~]# name=VBird
[root@www ~]# echo $name
VBird
[root@www ~]# myname="$name its me"
[root@www ~]# echo $myname
VBird its me
[root@www ~]# myname='$name its me'
[root@www ~]# echo $myname
$name its me
发现了吗?没错!使用了单引号的时候,那么 $name 将失去原有的变量内容,仅为一般字符的显示型态而已!这里必需要特别小心在意!
     

       环境变量的功能
环境变量可以帮我们达到很多功能~包括家目录的变换啊、提示字符的显示啊、运行文件搜寻的路径啊等等的,还有很多很多啦!那么,既然环境变量有那么多的功能,问一下,目前我的 shell 环境中,有多少默认的环境变量啊?我们可以利用两个命令来查阅,分别是 env 与 export 呢!

使用 ehco $变量名  可以查看变量的值

     

0 0
原创粉丝点击