用着用着就发现,linux的每个命令都是那么的深奥而富有技巧,实用而淫荡。。真可谓奇技淫巧....

初学的真不易掌握。。。

http://www.cnblogs.com/include/archive/2011/12/31/2308298.html

!eventid 重复历史事件id eventid

!!重复上一个

^aa^bb  --- 不需要空格

ls b* 理出b* 目录下的文件

!so                重复最近以so开始的命令

!! &               会在最后一个命令的末尾加上& (可以加上任意内容)
!:0                挑选出命令的名称,而不是整行
!:3                第参数

!^                 第一个参数
!$                 最后一个参数

sudo 这个也是非常难懂难掌握的命令。。

sagtax:

1

sudo -h │ -K │ -k │ -L │ -l │ -V │ -v

2    --- 通过-u制定用户

sudo [-bEHPS] [-p prompt] [-r role] [-t type] [-u username│#uid] [VAR=value]
{-i │ -s │ command}

http://www.cnblogs.com/jisi5789/archive/2013/04/16/3024869.html

sudo !!

Once a user has been authenticated, a timestamp is updated and the user may
then use sudo without a password for a short period of time (5 minutes unless overridden
in sudoers).

有的地方写着每次执行sudo都需要输入密码——只能执行一次啊,有的地方说可以有5分钟空闲idle。。。 我测试是后者

man sudo:

Once a user has been authenticated, a timestamp is updated and the user may
then use sudo without a password for a short period of time (5 minutes unless overridden
in sudoers).

1 从非root用户切换到root权限 ———— 这个时候不需要密码

2 从root用户切换到非root权限 ———— 这也是完全可以的!! 第一次需要 目标用(如root)的密码!、idle5分钟需要密码

5)配置权限
配置权限的格式如下:
USER_FLAGHOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAGHOST_FLAG=(RUNAS_FLAG) NOPASSWD:COMMAND_FLAG

mv

http://www.cnblogs.com/java07/archive/2011/06/13/3124771.html

语 法:mv [-bfiuv][--help][--version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录]

补充说明:mv移动文件或目录或更改文件或目录名称

参 数:
-b或--backup 若需覆盖文件则覆盖前先行备份
-f或--force 若目标文件或目录与现有文件或目录重复则直接覆盖现有文 件或目录
-i或--interactive 覆盖前先行询问用户
-S<附加字尾>或
--suffix=<附加字尾> 与-b参数并使用指定备份文件所要附加字尾
-u或--update 移动或更改文件名时若目标文件已存且其文件日期比源文件新则覆盖目标文件
-v或--verbose 执行时显示详细信息

测试

# mv -iv aaa/* aab
mv: overwrite `aab/aaa.txt'? y
`aaa/aaa.txt' -> `aab/aaa.txt'

# mv -b aaa/* aab
linux:/opt/software/lktest/aa # ll aab/
total 0
-rw-r--r-- 1 root root 0 Mar 12 16:00 aaa.txt
-rw-r--r-- 1 root root 0 Mar 12 18:11 aaa.txt~

如果出现cannot overwrite directory b/a' with non-directory , 则加-f参数可以解决,

可如果出现mv: cannot move `ac/aab' to `ae/aab': Directory not empty 则,比较麻烦。。

我测试发现默认情况下(不加bifu之类的参数)mv是会覆盖文件的,但是不会覆盖目录(空目录,自然,也是可以的 ):

mv ac/* ae
mv: cannot move `ac/aa' to `ae/aa': Directory not empty
mv: cannot move `ac/aab' to `ae/aab': Directory not empty

mv -f ac/* ae
mv: cannot move `ac/aa' to `ae/aa': Directory not empty
mv: cannot move `ac/aab' to `ae/aab': Directory not empty

mv -u ac/* ae      
mv: cannot move `ac/aa' to `ae/aa': Directory not empty
mv: cannot move `ac/aab' to `ae/aab': Directory not empty

mv -b ac/* ae    -- 加b参数就好了!

ll -r ae    --- 但是它备份了,我想要是不是备份,而是直接覆盖,怎么办?
total 16
-rw-r--r-- 1 root root 0 Mar 12 15:57 asf.txt
drwxr-xr-x 3 root root 4096 Mar 12 18:32 aa~
drwxr-xr-x 2 root root 4096 Mar 12 18:32 aab~
drwxr-xr-x 2 root root 4096 Mar 12 18:22 aab
-rw-r--r-- 1 root root 0 Mar 12 16:00 aaa.txt
drwxr-xr-x 3 root root 4096 Mar 12 16:04 aa

 实在是无能为力,---mv本身不支持这样,我搞再久都没事白搭。 (我本以为这么简单的功能,linux 应该有提供的吧,就不断尝试,结果,2小时过去了。。。还是。。)

应该学会变通! ___  先cp -r aa/* ab; 然后rm -rf aa   ----   cp有覆盖已重复文件、文件夹的功能!!

对于cp -r aa/ ab  效果和 cp -r aa ab 是一样的! 只是把aa放置到了ab下面———— 我现在需要的是aa目录下面所有放置到ab目录下面 ,所以cp -r aa/* ab ~!!

—— 对于mv也一样:如果aa是目录,aa和aa/是一个意思。

mv 没有r 选项!!

linux奇技淫巧的更多相关文章

  1. linux奇技淫巧 4

    压缩解压 tar 即可压缩也可以解压 c 压缩 如果没有z.j参数,则表示,只打包,不压缩. 就说, t 查看 z 以gzip方式压缩 相当于 gzip ?.. j 以bzip方式压缩 bzip2 ? ...

  2. linux奇技淫巧 2

    压缩解压==================================================================================== unzip xx.zi ...

  3. Linux 奇技淫巧

    为了整理这些命令,花了我一个晚上的时间,但是不弄明白,我就是不爽啊. 1.cmatrix 命令 黑客帝国,就是酷炫,先按F11全屏效果更佳 安装:luffy@ubuntu:~$ sudo apt-ge ...

  4. 40个超有趣的Linux命令行彩蛋和游戏

    40个有趣的Linux命令行彩蛋和游戏,让你假装成日理万机的黑客高手.附一键安装脚本,在树莓派和ubuntu云主机上亲测成功,有些还可以在Windows的DOS命令行中运行. 本文配套B站视频:40个 ...

  5. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  6. Linux系统中使用netcat命令的奇技淫巧

    netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶. netcat所做的 ...

  7. linux shell编程-bash的奇技淫巧

    本文主要讲bash脚本中容易出错和很少用但是用起来有意想不到效果的部分. 循环: 正常的for循环: for i in a b c 1 2 3; do echo "$i" done ...

  8. 【奇技淫巧】linux 定时任务 crontab 反弹 shell

    日期:2018-11-26 13:47:34 介绍:如何使用定时任务来反弹 shell? 0x01. 基本命令 参数 -e:编辑该用户的计时器设置: -l:列出该用户的计时器设置: -r:删除该用户的 ...

  9. 深入理解 JavaScript,以及 Linux 下的开发调试工具

    前言 JavaScript 是我接触到的第二门编程语言,第一门是 C 语言.然后才是 C++.Java 还有其它一些什么.所以我对 JavaScript 是非常有感情的,毕竟使用它有十多年了.早就想写 ...

随机推荐

  1. 【IOS】Xcode7以上免证书真机调试

    Xcode7之前,想要真机调试,必须花99刀购买开发者账号,而且步骤繁琐,需要下载证书.随着Xcode7的推出,大幅度的简化了真机调试的步骤,对ios开发工作者和正在学习ios开发的众多码农们,可以说 ...

  2. 在命令行到处MYSQL数据到EXCEL表

    有时候需要将 MySQL 的数据导出成 excel,这很简单,无需第三方工具,直接 MySQL 命令行就自带了这样的功能.比如: 1 SELECT * FROM nowamagic into outf ...

  3. JS新手易错点

    写给自己 字符串换行不能直接换行,需要在行尾加换行符"\" var a = "aa bb" 是不行的 需要改成 var a="aa\ bb"

  4. Ubuntu MYSQL和Windows MYSQL (非C盘安装)

    1.Ubuntu 默认安装 Mysql 5.6版本以上: 1.查看系统是否安装mysql 数据库: sudo netstat -tap | grep mysql 如果安装了,就查看一下版本命令: my ...

  5. C语言小练习二

    题目要求: 编程实现功能:将4行4列数组的左下三角设置为下图所示的数据.43 7 2 6 91 5 8 10 程序源码: #include <stdio.h> int main(void) ...

  6. Hibernate-list()与iterate()方法的区别

    对于list方法而言,实际上Hibernate是通过一条Select SQL获取所有的记录.并将其读出,填入到POJO中返回.而iterate 方法,则是首先通过一条Select SQL 获取所有符合 ...

  7. NetBeans无法使用编码GBK安全地打开该文件(改为默认UTF-8)

    用文本编辑器打开NetBeans安装目录下etc\netbeans.conf文件,找到”netbeans_default_options=”字段,在后面添加” -J-Dfile.encoding=UT ...

  8. Ubuntu下命令行方式对PDF文件进行缩放、合并、拆分

    安装软件: sudo aptitude install ghostscript 然后执行命令: gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibili ...

  9. access查询优化

    一个zirancun 14万数据量,一个 zirancuntd 19万数据,这两个  zirancuntd.distid 与zirancun.id进行关联,查询 zirancuntd.distid不存 ...

  10. C#基于Office组件操作Excel

    1.    内容简介 实现C#与Excel文件的交互操作,实现以下功能: a)     DataTable 导出到 Excel文件 b)     Model数据实体导出到 Excel文件[List&l ...