基础命令(二)

date -s “2018-4-3”

1、file ,检查文件的类型
   file [options] <filename>...
   常用选项:
   -b,显示检查文件类型结果时,不显示文件名称
---->file  /etc/fstab
L3L2S9YMVQ4`4M4MTB3W}5D
    -F,指定分隔符代替输出文件名后默认的:分隔符
---->file -F /etc/fstab
L2G8K6``[6J9F)G{BKN`WDM
    -L,查看软链接文件对应文件的文件类型
---->file -L /etc/rc5.d/S02sudo
32X]PPY6N7QD44JMSYVE016
另:查看链接文件的源文件命令readlink
---->readlink /etc/rc5.d/S02sudo
(5E7H(K_$26D7[_9PQI1)RT
2、文件描述符File Description,fd
2.1 linux中文件打开都存在一个文件描述符,查看打开文件设备列表
---->ll /proc/$$/fd
9AMQ`@Y_K}(1NDEY8S@XZE8
2.2 手动设定打开文件的描述符
---->exec 254 <>/data/test.fd
2.3 删除设定的描述符
---->exec 254 >&- 
3、输出、输入重定向
3.1 标准输入(STDIN)-0 默认接受来自键盘的输入 
    标准输出(STDOUT)-1 默认输出到终端窗口 
    标准错误(STDERR)-2 默认输出到终端窗口 
3.2 I/O重定向:改变默认位置
    > 把STDOUT重定向到文件 
   2> 把STDERR重定向到文件 
   &> 把所有输出重定向到文件
   >> 原有内容基础上,追加内容 
   2> 覆盖重定向错误输出数据流 
   2>> 追加重定向错误输出数据流 
---->ls /data /error >all.log 2>zero.log
WU5SRKL]AJ[GM%{TCTYO
注:>重定向文件会被覆盖,set -C禁止将内容覆盖已存在文件,但可追加;set +C允许覆盖
4、tr,转换和删除字符
   tr [OPTION]... SET1 [SET2]
   -c –C --complement:取第一个字集的补集,
   -d --delete:删除所有属于第一字符集的字符,-d,-c经常一起使用,表示删除第一个字符集外所有字符
---->tr -dc 'abc\n' <fstab,\n表示换行符,tr -dc一起使用会删除linux默认的换行符,为了美观,我们经常会加上换行符
9[~E87XROT(_UFGL9J6839U
    -s --squeeze-repeats:把连续重复的字符以单独一个字符表示,此命令可以处理一些命令结果,得到需要的数据
---->df -h |tr -s '' ':' 
%XPVB49O4{{V%}V2]{F_R{J
    -t --truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符,前后转换字符长度对应相同
---->echo abc |tr -t 'abc' 'xy'
DO4IYIHN{4BD72BUS]82ACA
注:通过管道向tr传来的结果一定是标准输出结果
---->ls /boot /error |tr 'a-z' 'A-Z'
`$}]V1H`_P}2WX`FBZE8PDD
这里错误输出结果的字符没有转换
---->ls /boot /error 2>&1 |tr 'a-z' 'A-Z' or ls /boot /error |& tr 'a-z' 'A-Z'(|&属于新写法,centos6以前不能识别)
6O)8KIXK~H4HC8]$NY@`]KD
此时,错误输出结果也被转换,有时我们也可以通过tr方便实现一些运算
---->echo {1..100} |tr ' ' '+' |bc
EH9W[3KX%F$XBQ24H}}CQ9A
6、取随机数
---->openssl rand -base64 num,num为取随机数位数
J18F6RYJADDHZWRT)%][]QA
如果需要输出的随机数只是[:alnum:](数字和字母),可以通过上面tr命令处理
---->openssl rand -base64 12 |tr -dc 'a-zA-Z0-9\n'
8V6@%PIX2_AROD[Y4}NIDVB
7、cat重定向的特殊用法,使用“<<终止词”命令从键盘把多行重导向给STDIN直到终止词位置的所有文本都发送给STDIN,有时被称为就地文本(heretext) 
7.1 有时需要向配置文件加入内容时,我们可以不用打开文件
---->cat << EOF >> /data/yum.resource.repo
H(I8M{K~@R4%LAN}[W_RCYC
7.2 如果需要向一个空文件或者不存在文件中写入内容
---->cat > file_not.exist,写入输入内容回车后,ctrl+d就可以实现
N4OGT]]CTHHJW6V$]M6MBHA
8、tee
   命令1 | tee [-a ] 文件名 | 命令2:把命令1的STDOUT保存在文件中,做为命令2的输入 
   -a 追加 
---->ls /boot |tee -a f1 | tr 'a-z' 'A-Z'
X`[%N8@Y)4XXLZLDOA_UZGI

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94809

(0)
parrotparrot
上一篇 2018-04-03
下一篇 2018-04-03

相关推荐

  • bash脚本进阶

    过程式编程语言:顺序执行选择执行if判断if 判断条件;那么条件为真的分支代码fi if 判断条件;then条件为真的分支代码else条件为假的分支代码fi多分支if 判断条件1; then条件为真的分支代码elif 判断条件2; then条件为真的分支代码elif 判断条件3; then条件为真的分支代码else以上条件都为假的分支代码ficase 变量引…

    2018-05-11
  • ansible进阶小技巧

    用ansible写playbook的朋友可能会发现,当配置工作很多时,如果在中间过程出错了,修改后想重新执行,前面的一大堆步骤让人感觉很烦躁。虽然提供了“retry”文件,但是却只是根据host来判断重新执行,仍然不够方便;又或者,中间的某些步骤特别耗时,比如下载一个很大的数据包,每次执行特别浪费时间,想要特别的跳过。怎么办?我猜你就是把不需要的部分给注释掉…

    Linux笔记 2018-06-03
  • linux基础2

    1.文件管理常用命令: <1>mkdir,rmdir mkdir:make directory mkdir [OPTION]… DIRECTORY… -p:自动按需创建父目录; -v:verbose,显示详细过程; -m MODE;直接给定权限; 注意:路径基名方为命令的作用对象;基名之前的路径必须存在; rmdir:re…

    Linux笔记 2018-07-01
  • nginx模块简介与编译安装

    nginx模块简介与编译安装示例

    2018-06-23
  • 第二周总结

    反向单引号 ` `:执行能力强,可以执行命令 [等价于$()]单引号 ‘ ’:只显示字符双引号 “ ”:识别变量,不识别命令花括号{ }: 里面内容互相组合 打印重复字符串的简化形式echo file{1,3,5} 结果为:file1 file3 file5rm -f file{1,3,5} 删除file1 file3 file5echo file{1..1…

    Linux笔记 2018-07-29
  • 用户管理

    用户管理 注意:用户是通过UID来确定身份的,比如root之所以为管理员就是因为root的UID是0。在centos6上系统用户是1-499,普通用户是500以上的;而在centos7上系统用户是1-999,普通用户是1000以上。系统用户默认不登录。 注意跟用户相关的命令只有管理员账户才有权限 需要用到的命令:useradd usermod userdel…

    Linux笔记 2018-04-08