1、以sudo 运行上一条命令

  sudo !!

大家应该都知sudo,不解释。但通常出现的情况是,敲完命令执行后报错才发现忘了sudo。如下:

➜  ~ cp ~/download/CentOS7-Base-163.repo /etc/yum.repos.d
cp: cannot create regular file '/etc/yum.repos.d/CentOS7-Base-163.repo': Permission denied
➜ ~ sudo cp ~/download/CentOS7-Base-163.repo /etc/yum.repos.d
➜ ~ ls /etc/yum.repos.d
CentOS7-Base-163.repo fedora-cisco-openh264.repo fedora.repo fedora-updates.repo fedora-updates-testing.repo

这时候,新手用户就会:按上箭头,按左箭头,盯着光标回到开始处,输入sudo,回车;高手用户就蛋定多了,按Ctrl-p,按Ctrl-a,输入sudo,回车。这里介绍这个是天外飞仙级别的,对,就直接sudo !!。当然这几种解决方式效果是完全一样的,只是款不一样,嗯,不解释。两个感叹号其实是bash的一个特性,称为事件引用符(event designators)。!!其实相当于!-1,引用前一条命令,当然也可以!-2,!-50。默认情况下bash会在~/.bash_history文件内记录用户执行的最近500条命令,history命令可以显示这些命令。

➜  ~ rm /etc/yum.repos.d/CentOS7-Base-163.repo
rm: remove write-protected regular file '/etc/yum.repos.d/CentOS7-Base-163.repo'? y
rm: cannot remove '/etc/yum.repos.d/CentOS7-Base-163.repo': Permission denied
➜ ~ sudo !!
➜ ~ sudo rm /etc/yum.repos.d/CentOS7-Base-163.repo
[sudo] password for fezhi:
➜ ~ ll /etc/yum.repos.d
total 16K
-rw-r--r--. 1 root root 689 Nov 4 00:13 fedora-cisco-openh264.repo
-rw-r--r--. 1 root root 1.3K Nov 4 00:13 fedora.repo
-rw-r--r--. 1 root root 1.3K Nov 4 00:13 fedora-updates.repo
-rw-r--r--. 1 root root 1.3K Nov 4 00:13 fedora-updates-testing.repo

  

2、 在 以 普 通 用 户 打 开 的VIM 当 中 保 存 一 个ROOT 用 户文件

:w !sudo tee % 

我们常常忘记了sudo就直接用vim编辑/etc内的文件,(不过也不一定,vim发现保存的文件无法保存时候会提示)等编辑好了,保存时候才发现没权限。曲线方法是先保存个临时文件,退出后再sudo cp回去。不过实际上在vim里面可以直接完成这个过程的,命令就是如此。查阅vim的文档(输入:help :w),会提到命令:w!{cmd},让vim执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin传入。tee是一个把stdin保存到文件的小工具。而%,是vim当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。所以执行这个命令,就相当于从vim外部修改了当前编辑的文件,好完工。

3、切回到上一个目录  

$cd -

 横杆-代表上一个目录,cd - 等于 cd $OLDPWD bash的固定变态$OLDPWD总保存着之前一个目录的路径,相对得,$PWD保存着当前目录的路径。

4、快速备份一个文件

$cp  filename{,.bak}  

这道命令把filename文件拷贝成filename.bak,大家应该在一些比较复杂的安装教
程里面见过这样的用法。其原理就在于bash对大括号的展开操作,filename{,.bak}
这一段会被展开成filename filename.bak再传给cp,于是就有了备份的命令了。

➜  ~ ls
bash-learn CloneGithub download gitzhi py-learn SoftWare spf13-vim.sh
➜ ~ cp spf13-vim.sh{,.backup}
➜ ~ cp spf13-vim.sh{,.bak}
➜ ~ ls
bash-learn CloneGithub download gitzhi py-learn SoftWare spf13-vim.sh spf13-vim.sh.backup spf13-vim.sh.bak

5、免密码SSH登陆主机

$ssh-copy-id user@remote-machine

这个命令把当前用户的公钥串写入到远程主机的~/.ssh/authorized_keys内,这样下
次使用ssh登录的时候,远程主机就直接根据这串密钥完成身份校验,不再询问密码
了。前提是你当前用户有生成了公钥,默认是没有的,先执行ssh-keygen试试吧

《最牛B的Linux Shell命令》笔记的更多相关文章

  1. HTML+CSS笔记 CSS笔记集合

    HTML+CSS笔记 表格,超链接,图片,表单 涉及内容:表格,超链接,图片,表单 HTML+CSS笔记 CSS入门 涉及内容:简介,优势,语法说明,代码注释,CSS样式位置,不同样式优先级,选择器, ...

  2. CSS笔记--选择器

    CSS笔记--选择器 mate的使用 <meta charset="UTF-8"> <title>Document</title> <me ...

  3. HTML+CSS笔记 CSS中级 一些小技巧

    水平居中 行内元素的水平居中 </a></li> <li><a href="#">2</a></li> &l ...

  4. HTML+CSS笔记 CSS中级 颜色&长度值

    颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令颜色 语法: p{co ...

  5. HTML+CSS笔记 CSS中级 缩写入门

    盒子模型代码简写 回忆盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左. 语法: margin:10px 15p ...

  6. HTML+CSS笔记 CSS进阶再续

    CSS的布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上, ...

  7. HTML+CSS笔记 CSS进阶续集

    元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1&g ...

  8. HTML+CSS笔记 CSS进阶

    文字排版 字体 我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性. 语法: body{font-family:"宋体";} 这里注意不要设置不常用的字体,因为如果 ...

  9. HTML+CSS笔记 CSS入门续集

    继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代(标签). 语法: p{color:red;} <p> ...

  10. HTML+CSS笔记 CSS入门

    简介: </span>年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的<span>脚本解释程序</span>,作为ABC语言的一种继承. & ...

随机推荐

  1. 在本地开发环境没问题,但是发布到服务器出现:未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\106f9ae8\cc0e1169\App_global.asax.haz99mum.dll”--“拒绝访问。 ”错误

    解决方法: 1,通常的解决方法:原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下:C:\Windows\temp-->属性-->安全-->编辑-->添加NETW ...

  2. AngularJS中【Error: [$rootScope:inprog]】的解决办法

    AngularJs脏数据检查冲突 Error: [$rootScope:inprog] http://errors.angularjs.org/1.5.8/$rootScope/inprog?p0=% ...

  3. Luogu P1120 小木棍 [数据加强版] 来来来我们一起来剪枝,剪枝,剪枝、、、

    好啊...太棒了... dfs(拼到第几根木棍,这根木棍剩余长度,上一根木棍的位置) len是木棍的长度,cnt是木棍的个数 震撼人心的剪枝: 1.枚举长度从最大的木棍开始,直到sum/2,因为之后只 ...

  4. hdu6397 Character Encoding 隔板法+容斥原理+线性逆元方程

    题目传送门 题意:给出n,m,k,用m个0到n-1的数字凑出k,问方案数,mod一个值. 题目思路: 首先如果去掉数字范围的限制,那么就是隔板法,先复习一下隔板法. ①k个相同的小球放入m个不同的盒子 ...

  5. day13 内置函数二 递归,匿名函数,二分法

    .匿名函数(名字统一叫lambda) .语法 lambda 参数:返回值 .参数可以有多个,用逗号隔开 .只能写一行,执行结束后直接返回值 4返回值和正常函数一样,可以是任意值 .列: f=lambd ...

  6. 解决IDEA卡顿问题及相关基本配置

    https://blog.csdn.net/u013068377/article/details/54316965 https://blog.csdn.net/u014527619/article/d ...

  7. String转不同type的类对象

    import org.springframework.beans.SimpleTypeConverter; private Object deserializeValue(Class<?> ...

  8. 协议 + socket import 和 form xx import *的区别 028

    一 . 网络通信协议(了解) 1 . osi 七层协议 (最好记住 面试会问) 应表会传网数物(应用层 表示层 会话层 传输层 网络层 数据链路层 物理层) 2 .tcp/ip五层 或 tcp/ip四 ...

  9. Wireshark抓包数据:理解与分析

    wireshark是一个非常好用的抓包工具,本文根据平时抓包经验,对之前wireshark抓包的一些常见知识点进行了整理. 有不当之处,欢迎指正 1.SYN,FIN会消耗一个序号,单独的ACK不消耗序 ...

  10. Electron、Node.js、JavaScript、JQuery、Vue.js、Angular.js,layui,bootstrap

    转载:https://blog.csdn.net/meplusplus/article/details/79033786 layui :是基于jquery库的封装开发. bootstrap:同样基于 ...