千赢娱乐手机登录_ qy8com千赢手机版_千赢网页手机版
做最好的网站

千赢娱乐手机登录

当前位置:千赢娱乐手机登录 > 千赢娱乐手机登录 > grep使用心得,Ubuntu终端增强软件Terminator

grep使用心得,Ubuntu终端增强软件Terminator

来源:http://www.modeLspro.net 作者:千赢娱乐手机登录 时间:2019-07-19 05:05

为什么标题要写100%通过呢?原因是以前的方法(直接复制到plugin里,link安装)都不好用了,9.0不吃这一套,所以告诉大家这么做一定能够装上!!

Terminator是CrunchBang的默认终端,该终端基于GNOME terminal。Terminator最大的特点就是可以在一个屏幕下同时显示多个终端。

关于find指令的一点使用小心得 由于工作,要写个小脚本来完成清除系统垃圾文件,由于自己也是刚刚接触UNXI下的sh编程,所以把编程时遇到的问题写下来与像我一样的UNIX菜鸟共享。

此方法适用于所有版本的myeclipse9.0(M1或者官方下载版)

Terminator可以在Ubuntu在同一窗口中启动多个终端。可以自由的在一个窗口中分割区域建立新终端,通过鼠标拉伸调整每个终端的大小,对同时需要操作多个终端的用户非常方便。

清除垃圾文件当然是要查找并删除过去的文件,开始想用 logDate=expr ls -l | awk '{print $7}'这 条语句(因为那个时候我还只是知道ls命令和一点点awk命令),取出文件的时间,然后再用rm -rf $logdate删除,后来才发现想法太漏洞太多,如果文件太多,变量里会放不下。 后来我知道了find命令,以为如获至宝,谁知道,才真正的走上了辛酸路程。 首先看了一下man find 把有用的东西总结了一下: -type x X代表类型,b块文件 c字符文件 d目录文件 p管道文件 f正则文件 l连接文件 -size n[c] n代表文件字节数,如果后跟上字母c,则代表N个字符 -user username username可以是用户号,或者是用户 -level n 搜寻几级目录 -links n 搜寻有几个连接的文件 -mtime n 搜寻N天前被修改的文件,只是文件数据被修改或者创建文件 -exec rm -rf 找到合适的文件后,对此文件执行rm -rf命令,命令如果需要变量,则把变量放在{}括号中, 另外,rm应该以;结束,即:"-exec rm -rf {} ;" 分号是一定要加的。 -ctime n 搜寻N天前被修改过的文件,包括文件数据修改、节点信息修改或者是创建文件 -atime n 搜寻N天前被阅读过或者是被创建的文件

测试环境:

同时操作多个VPS的时候不用切换终端窗口,在一个窗口中就可以搞定了,真的非常方便。

然后想用下面的命令来完成删除功能: cd /绝对路径/目录下/ find ./ -type d -mtime N -exec rm -rf {} ; 虽然这句指令能执行,可是if N = 1 then find命令会找到“./”为名字的本目录文件夹,发现在删除的时候会报一个“rm: ./: Permission denied”的错误,虽然这样也能将想要删除的文件删除掉,可是很可能导致脚本的下部分无法执行。 后来在尝试的时候发现把绝对路径名放到find命令里就不会报错了: find /绝对路径/ -type d -mtime N -exec rm -rf {} ; 这样一来它找到的文件格式是“/绝对路径/文件夹名”,这样就不会出现“./”了。

操作系统:CentOS 5.5 X64

应用截图

本以为世界就能这样的太平下去了,可命运之神总是跟你开着种种的玩笑。 在后来的测试阶段,发现了这个脚本的种种问题,都是由find命令引起的:

JDK      : JDK1.6_17_X64

图片 1

首先是时间N的问题,命令“find /绝对路径/ -type d -mtime N”中仅仅使用-mtime N 不是查找N天以前的所有文件,而是查找前第N天的文件,在网上一搜才知道如果是 N代表超过N天,N代表精确的N天,-N代表小于N天。 还有一次我在HP True64上用使用“find /绝对路径/ -type d -mtime N”命令,找到的文件竟然和ls -l列出的文件不等,ls -l找到了五条三天前的纪录,而find命令却只找到了3条纪录,后来听人说ls -l显示的时间是access time,也就是ctime;还有一次,也是用上面的那条命令,找到一个文件夹,竟然我用ls -al也找不到这个文件夹,公司里没一个人能解释,由于当时心急没有抓屏,所以现在也没有log。

1、下载最新的SVN包(我下的是1.0.6版):

项目主页tenshu.net/terminator/

然后又是N=1来找麻烦,命令find /绝对路径/ -type d -mtime N -exec rm -rf {} ;如果“N=1”会把父目录的文件夹也找到,例如:目录结构是这样的/usr/users/ma ,ma文件夹下面有a,b,c三个字文件夹,想只删除a,b,c这几个文件夹,如果用find /usr/users/ma/ -type d -mtime N -exec rm -rf {} ; 它会找到这些: /usr/users/ma /usr/users/ma/a /usr/users/ma/b /usr/users/ma/c 所以/usr/users/ma理所当然的也给删除了! 没办法,我又得找回原来的方法cd /绝对路径/目录下/ find ./ -type d -mtime N -exec rm -rf {} ;因为我找到了一条命令可以让报错忽略掉,方法改为: cd /绝对路径/目录下/ find ./ -type d -mtime N -exec rm -rf {} ; 2>/dev/null 可是问题到这里还没有结束,如果 N=1 这条命令还会找到这样一个文件夹: ./ /usr/users/ma/a /usr/users/ma/b /usr/users/ma/c 如果你的usr/users/ma/ 下面还有你不想删除的文件那么当你删除的"./"目录的时候(也就是你本目录下的所有内容)你的文件可就也保不住了。 在后来的实验中找到了这个: cd /绝对路径/目录下/ find . -type d -mtime N -exec rm -rf {} ; 2>/dev/null 这回世界终于算是暂时的太平了,可是谁知道以后会不会又有什么问题呢?

安装
Terminator支持多个Linux发行版本。

The end

2、在你的磁盘上任意位置创建文件夹:“myplugins/svn”。名字可以任取,为了方便插件管理,建议名称为“myplugins”。

Ubuntu用户

Linux中find常见用法示例

3、将解压的svn里的两个文件夹拷贝到“myplugins/svn”下。

sudo add-apt-repository ppa:gnome-terminator
sudo apt-get update
sudo apt-get install terminator
Fedora用户

今天又有人问我linux下查找文件的一些问题,干脆直接帮他贴个老帖子出来:

4、复制下列java代码,修改路径并执行:

su -c 'yum install terminator'
其他版本用户可以到项目主页查看相关版本安装方法。

find常用示例

  1. package app;   
  2. import java.io.File;   
  3. import java.util.ArrayList;   
  4. import java.util.List;   
  5. /**  
  6.  * MyEclipse9 插件配置代码生成器  
  7.  *  
  8.  *  
  9.  */  
  10. public class PluginConfigCreator   
  11. {   
  12.     public PluginConfigCreator()   
  13.     {   
  14.     }   
  15.     public void print(String path)   
  16.     {   
  17.         List<String> list = getFileList(path);   
  18.         if (list == null)   
  19.         {   
  20.             return;   
  21.         }   
  22.         int length = list.size();   
  23.         for (int i = 0; i < length; i )   
  24.         {   
  25.             String result = "";   
  26.             String thePath = getFormatPath(getString(list.get(i)));   
  27.             File file = new File(thePath);   
  28.             if (file.isDirectory())   
  29.             {   
  30.                 String fileName = file.getName();   
  31.                 if (fileName.indexOf("_") < 0)   
  32.                 {   
  33.                     print(thePath);   
  34.                     continue;   
  35.                 }   
  36.                 String[] filenames = fileName.split("_");   
  37.                 String filename1 = filenames[0];   
  38.                 String filename2 = filenames[1];   
  39.                 result = filename1   ","   filename2   ",file:/"   path   "/"  
  40.                           fileName   "\,4,false";   
  41.                 System.out.println(result);   
  42.             } else if (file.isFile())   
  43.             {   
  44.                 String fileName = file.getName();   
  45.                 if (fileName.indexOf("_") < 0)   
  46.                 {   
  47.                     continue;   
  48.                 }   
  49.                 int last = fileName.lastIndexOf("_");// 最后一个下划线的位置   
  50.                 String filename1 = fileName.substring(0, last);   
  51.                 String filename2 = fileName.substring(last   1, fileName   
  52.                         .length() - 4);   
  53.                 result = filename1   ","   filename2   ",file:/"   path   "/"  
  54.                           fileName   ",4,false";   
  55.                 System.out.println(result);   
  56.             }   
  57.         }   
  58.     }   
  59.     public List<String> getFileList(String path)   
  60.     {   
  61.         path = getFormatPath(path);   
  62.         path = path   "/";   
  63.         File filePath = new File(path);   
  64.         if (!filePath.isDirectory())   
  65.         {   
  66.             return null;   
  67.         }   
  68.         String[] filelist = filePath.list();   
  69.         List<String> filelistFilter = new ArrayList<String>();   
  70.         for (int i = 0; i < filelist.length; i )   
  71.         {   
  72.             String tempfilename = getFormatPath(path   filelist[i]);   
  73.             filelistFilter.add(tempfilename);   
  74.         }   
  75.         return filelistFilter;   
  76.     }   
  77.     public String getString(Object object)   
  78.     {   
  79.         if (object == null)   
  80.         {   
  81.             return "";   
  82.         }   
  83.         return String.valueOf(object);   
  84.     }   
  85.     public String getFormatPath(String path)   
  86.     {   
  87.         path = path.replaceAll("\\", "/");   
  88.         path = path.replaceAll("//", "/");   
  89.         return path;   
  90.     }   
  91.     public static void main(String[] args)   
  92.     {   
  93.         /*你的插件的安装目录*/  
  94.             String plugin = "改成安装目录\Genuitec\svn";   
  95.         new PluginConfigCreator().print(plugin);   
  96.     }   
  97. }  

使用简介
Ctrl-Shift-o: 水平分割屏幕
Ctrl-Shift-e: 垂直分割屏幕
Ctrl-Shift-t: 打开新的终端窗口
Ctrl-Shift-w: 关闭当前终端窗口
Ctrl-Shift-q: 退出Terminator

·find path -option [ -print ] [ -exec -ok command ] {} ;

这里需要注意的是修改成为刚才svn所在路径,建议改为绝对路径。比如我的svn在“/opt/soft/Genuitec/myplugins/svn/”,那么就这样:String plugin = "/opt/soft/Genuitec/myplugins/svn/";

图片 2

#-print 将查找到的文件输出到标准输出

用windows的朋友只需要设置你们的绝对路径就可以了,比如d:/myplugins/svn/。。。

#-exec command {} ; -----将查到的文件执行command操作,{} 和 ;之间有空格

5、找到“$myeclipse_home/configuration/org.eclipse.equinox.simpleconfigurator/”,打开其中的“bundles.inf”文件,为了防止分不清是不是我们自己后加的东西,在最后面多回几次车,然后粘贴第4步运行后的代码,保存

#-ok 和-exec相同,只不过在操作前要询用户

6、重启myeclipse

====================================================

7、import工程,看看最下面是不是多了一个“other”文件夹?没错,就是他了,我们的svn终于回来了!

-name filename #查找名为filename的文件

值得一提的是:这种方法可以安装任意一个插件,太爽了!

-perm #按执行权限来查找

图片 3

-user username #按文件属主来查找

-group groupname #按组来查找

本文由千赢娱乐手机登录发布于千赢娱乐手机登录,转载请注明出处:grep使用心得,Ubuntu终端增强软件Terminator

关键词: 千亿国际qy8.vip