shell初探

  第二次实验对shell命令进行了些尝试,尽管以前使用过shell,但对命令的了解实在很少,很多都是需要的时候去网上查,下次又忘了。

  对照着第二章课件PPT练习了一些命令,对echo -n的含义产生了疑问。百度了一下发现还有一个echo -e,两者的区别是在输出之后有没有换行。

  CSDN博客:echo -n和echo -e的参数意义的解释让我恍然大悟,自己尝试了一下,如下图所示。

  

  上图中用echo -n输出"cyj"三个字母后没有换行,紧接着就出现命令提示符。而echo -e输出"cyj"后自动追加一个换行,再出现命令提示符。

  还有其他可以用类似-n参数的命令。

  cat -n 是加上行号。

  head -ntail -n:请看一张图搞懂head -n和tail -n

  下图直观的解释了head -n和tail -n的区别。方框表示文件的全部内容,每一小格是一行,绿色部分是执行命令后显示的部分。

  

  less -N也是显示行号。

  more +n是从第n行开始显示,more -n是定义屏幕大小为n行。

  关于vi/vim编辑器,我也接触过一些最浅显的部分,曾经遇到的两个记忆比较深刻的问题。

  一个是上下左右键变成ABCD的问题,执行以下两条命令基本就可以解决了。

1 sudo apt-get remove vim-common
2 sudo apt-get install vim

  以上两条命令的意义在于卸载ubuntu预安装的tiny版本,安装vim的full版本。vim是vi的升级版本,兼容vi所有指令,而且具有vi没有的一些新特性。

  第二个问题是使用vim修改文件后,用:wq!强制保存并退出vim依旧因为权限不足或其他原因保存失败,经过辛苦百度+谷歌+翻各种博客之后终于找到了一条“万能”的命令(反正我所有保存不了的文件用这种方法最后都保存成功了,至于它有没有什么危害我也不清楚)。

  就是它::w !sudo tee % 

  这条命令的含义是:在vim中保存正在编辑的文件而不需要必要的权限。

  在vim中,“%”代表当前文件名,“:w !sudo tee %”这条命令的含义是把当前编辑的文件的内容当做标准输入输入到命令sudo tee 文件名里去,也就是sudo保存为当前文件名。

  当忘记sudo就直接用vim编辑某些文件时,就会因权限不足保存失败,如果放弃所有修改内容重新sudo vim就前功尽弃。但是用这条“万能命令”就可以轻松保存啦。

  其实在这种情况下也可以曲线救国:先存为一个临时文件,然后在sudo cp回去。但是有了这条命令根本不需要这么麻烦对不对?

  emmm其实这两个问题在很久以前就解决了,但是我一直处于“知其然,不知其所以然”的状态。遇到问题时,百度一下找到命令直接敲进去,却没有仔细想过为什么可以这样做。直到今天写博客才又搜索了一遍,细究了其原理,有了“原来如此”的感悟。

  (题外话:最近好一段时间没有学习的状态,得过且过,知道自己应该做什么但是却行动不起来。此刻安静地搜索,学习,写博客,让我找到了一点学习的状态,甚至有一点点类似于久旱逢甘霖的喜悦。坚持,加油!☺)

  

posted @ 2018-04-07 18:43  ppp_p  阅读(124)  评论(1编辑  收藏  举报