cat:
- 原始用法: cat file1 file2 输出为两个文件的内容的一个合成结果
- 接受来自标准输出作为输入流: echo ‘hello i am standard output stream | cat - test1.txt’ 就是把echo出来的内容和test1.txt内容拼接
- 看看如何用cat压缩连续的空白行:cat -s file (-s就是把多个连续的空白行只留存一个下来)
- 如果想要去掉所有的空白行 则需要添加一个tr命令: cat -s file | tr -s ‘\n’ 这样就可以去掉所有的空白行了。
- 输出文件的时候如果想要看看行号在cat 后面添加一个-n即可。
rsync命令:
主要用于一次性大量删除指定文件夹下的所有文件 具体用法:
先建立一个空白文件夹 blank
rsync –delete-before -d blank/ 指定删除文件夹文件 即可一次性大量删除文件 同时保留文件夹 虽然也可以rm -R dir 但是还需要重新建立文件夹export命令:
export是用来设置环境变量参数用的.诸如$HOME,PATH,PDW都是可以使用exprot来修改的.
例如原来的$HOME => /home/qiansheng 修改为 /home/qiansheng/bin如下:
export HOME=”$HOME/bin/“即可完成修改环境变量.linux文件的简单操作
- cat命令一般用户显示 拼接 读取文件.实际能力不止于此.
- 把一个echo 内容传输到指定的文件内=> echo “hello” > target.txt;如果想要在文件后面追加内容=> echo “world” >> target.txt。如果想要查看文件的内容 => cat target.txt
- 当我们执行一个命令行的时候,结果太多在终端不好查看.可以直接把结果存放到指定的文件中去: ls > target.txt
使用alias别名命令可以简化命令:
- 例如在使用apt-get 来安装指定的包需要:sudo apt-get install;我想使用install来代替前者: alias install=”sudo apt-get install” 这样就可以使用install来安装包了。
- 但是需要注意的是alias设置的别名只是暂时的,如果关闭了terminal在此开启,之前设置的alias就会失效。如果说想要持久话这个别名的话,需要把它添加到~/.bashrc里面去的.=> echo “alias install=’sudo apt-get install’” >> ~/.bashrc
- 每当一个新的 shell进程生成的时候,都会执行下~/.bashrc的命令。
尝试组合多个命令和工具一起输出;一个命令的输出可以作为另外一个命令的输入(需要使用到管道这个概念);
- 注意 ‘|’ 这个符号,表示的是“管道”的概念,就是把前面一个命令的输出作为输入源传到下一个命令行里面去.
- 比如说: ls | cat -n target.txt;=>这个例子就是把ls命令的输出作为了输入数据输入到了target.txt文件中.并且显示行号.
find的一些其他的实用搜索技术
- 根据文件访问/创建/变化时间来进行检索 => find . -type f -amin(访问时间)/-mmin(修改时间)/-cmin(变化时间) +7(超过七分钟) -print
- 根据文件大小来进行检索的 => find . -type f -size +2k/-2k/2k
- 删除匹配到的文件=> find . -type f -name “*.java” -delete
某些命令只能接受命令行参数形式接受数据,而无法正常的通过stdin接受数据流,这样我们可以利用xargs命令,它可以把标准的 stdin 转换成特定的命令行参数.
- 可以将多行输出文本作为单行输出: 假设target.txt是一个多行文本 => cat target.txt | xargs
- 同样的 把一个单行文本转化成多行文本=> cat target.txt | xargs -n 3
- 处理标准stdin输出流称为一个规范的输入流=> echo “123a123a123” | xargs -d a 结果就处理成为 123 123 123 .
- xargs命令就是把前面的命令的输出作为后面命令的输入
精美的小工具tr的实用技巧(translate命令)
- tr只能接受标准输入流, => tr [options] set1 set2 从set1映射到set2去
- 加密的简单哪应用 echo “123456” | tr ‘0-9’ ‘9876543210’ =>输出876543 解密就是=> echo “876543” | tr ‘0-9’ ‘9876543210’ => 123456.著名的ROT13加密算法就是基于字母表向右移位13对原文进行加密。
- 删除输入流内的一些内容: echo “123adbe678” | tr -d ‘0-9’ =>adbe.也就是只需要一个set就可以 相当于一个限定条件。 -d就是删除的options , 当然还有一个-c 它含义是取set的补集.-s也是很有用的一个options,可以指定字符进行压缩string.
- tr只能接受来自标准的输入流作为处理对象 不可以接受参数
- echo ‘sadjaASJHFKas’ | tr ‘A-Z’ ‘a-z’ 就是把echo输出全部转化成小写 也就是 前面的是需要转换的目标的正则表达式 后者则是目的表达式的正则表达式
- 删除指定的字符: 通过参数-d 来指定要删除的对象。
- 压缩指定的字符对象: 通过参数-s 来指定需要被压缩的对象.
自动大量生成模版测试文件 例如从0~100.txt:
- 采用touch这个命令。它可以生成空白文件,
|
|
文件统计部分:
- wc=>word count.
- wc -l(统计行数) -w(统计单词) -c(统计字符数)
使用ssh无密码登录
- 实现原理: 基于公钥和私钥加密技术进行自动化认证。想要实现自动化认证,就必须要把客户端的公钥存放到服务器端的中的.ssh/authorized_keys文件中。
- 客户端通过ssh-keygen来生成密钥, ssh-keygen -t rsa 生成。生成了一个pb公钥和一个私钥。
- 第一次给服务器添加客户端的公钥是需要密码的; ssh ssh_localhost “cat >> ~/.ssh/authorized_keys” < ~/.ssh/id_rsa.pub 就可以实现服务器添加客户端公钥了。
进程管理的一些tips
- ps 查看详情加一个-f ||||| -e 是展示所有的进程信息 top 则是按照cpu占用情况来展示进程的信息
git的几个tips:
- 在把修改内容放进了缓存区了的话,stash 然后做完了紧急事儿后需要恢复 那么只需要 git stash pop就可以了同时也删除掉了git stash list的stash缓存信息
- git push 一般默认的远程的origin默认仓库,所以push 的写法就是指定一个仓库 以及分支 所以格式如下: git push origin(默认仓库) master(默认分支)
- 有时候pull的时候需要两个分支对应好 不能本地的分支跟远程分支不对应起来git branch –set-upstream dev origin/dev 这样就建立本地分支和远程分支的关联
- 标签管理: 用的比较少呢。