linux文件操作学习3

前言:

前面学了了用户和用户组的管理,文件权限的管理以及查找文件的三种方式,接下来将学习怎样配置环境变量,常见的压缩格式与怎么解压,管道,标准的输入输出以及重定向

echo命令:

linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到:

[plain]  view plain  copy
  1. [user1@xianzan dir]$ echo "hello world"  
  2. hello world  
  3. [user1@xianzan dir]$ echo -n "hello world"  
  4. hello world[user1@xianzan dir]$ echo $PATH  
  5. /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin  

此外。echo可以直接将你要打印的字符串写到你的文件中:

[plain]  view plain  copy
  1. [user1@xianzan dir]$ echo "hello world">echotest.txt  
  2. [user1@xianzan dir]$ cat echotest.txt   
  3. hello world  

export命令:

用于声明一个环境变量:
[plain]  view plain  copy
  1. [user1@xianzan dir]$ export PATH=$PATH:/usr/local/bin  
  2. [user1@xianzan dir]$ echo $PATH  
  3. /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/usr/local/bin  

类似于 export  变量 = 变量值   的方式声明一个环境变量只在本进程或者子进程器作用,关闭进程重新查看PATH变量的值:
<img src="http://img.blog.csdn.net/20160114184427901?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border: none; max-width: 100%;" />
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ echo $PATH  
  2. /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin  
说明:
如果在某次运行中,手动export一个变量,则在这次shell使用中,才能访问这个变量,或者在该shell启动的其他程序中,也可以访问这个变量,因为它们是这个shell的子进程。
</pre><pre id="best-content-1144911805" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 0px;">要想在linux启动时,环境变量对这个系统的所有用户都有效则修改 <span style="color: rgb(255, 0, 0);">/etc/profile</span>文件
<div class="dp-highlighter bg_plain" style="font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px; width: 700.906px; overflow: auto; padding-top: 1px; margin: 18px 0px !important; background-color: rgb(231, 229, 220);"><div class="bar" style="padding-left: 45px;"><div class="tools" style="padding: 3px 8px 10px 10px; font-stretch: normal; font-size: 9px; line-height: normal; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: silver; border-left-width: 3px; border-left-style: solid; border-left-color: rgb(108, 226, 108); background-color: rgb(248, 248, 248);"><strong>[plain]</strong> <a target=_blank href="http://blog.csdn.net/xiaofengwu123/article/details/50518084#" class="ViewSource" title="view plain" style="color: rgb(160, 160, 160); text-decoration: none; border: none; padding: 1px; margin: 0px 10px 0px 0px; font-size: 9px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-attachment: initial; background-color: inherit; background-size: initial; background-origin: initial; background-clip: initial; background-position: 0% 0%; background-repeat: no-repeat;">view plain</a><span class="tracking-ad" data-mod="popu_168"> <a target=_blank href="http://blog.csdn.net/xiaofengwu123/article/details/50518084#" class="CopyToClipboard" title="copy" target="_blank" style="color: rgb(160, 160, 160); text-decoration: none; border: none; padding: 1px; margin: 0px 10px 0px 0px; font-size: 9px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_copy.gif); background-attachment: initial; background-color: inherit; background-size: initial; background-origin: initial; background-clip: initial; background-position: 0% 0%; background-repeat: no-repeat;">copy</a></span><div style="position: absolute; left: 390px; top: 1782px; width: 18px; height: 18px; z-index: 99;"></div><span class="tracking-ad" data-mod="popu_169"> </span></div></div><ol start="1" style="padding: 0px; border: none; color: rgb(92, 92, 92); margin: 0px 0px 1px 45px !important; background-color: rgb(255, 255, 255);"><li class="alt" style="border-style: none none none solid; border-left-width: 3px; border-left-color: rgb(108, 226, 108); list-style: decimal-leading-zero outside; color: inherit; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;"><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">[xianzan@xianzan dir]$ vim /etc/profile  </span></span></li></ol></div>
linux文件操作学习3_第1张图片
环境变量生效:
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ source /etc/profile  

shell配置:

Linux系统配置文件有四个:
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置;
/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取;
~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取;此文件类似于/etc/bashrc,不需要重启生效,重新打开一个bash即可生效;
~/.bash_profile 是交互式、login 方式进入bash 运行的。

文件(夹)的压缩:

linux文件操作学习3_第2张图片

说明:

经常遇到的压缩格式为 .tar.gz,tar:只是打包,没有压缩后面gz为压缩方式。

gzip .gz GNU压缩工具,用Lempel-Ziv编码;

bzip2 .bz2 采用Burrows-Wheeler块排序文本压缩算法和霍夫曼编码; 

zip .zip Windows上PKZIP工具的Unix实现; 

tar命令:

tar function [options] object1 object2 

function参数定义了tar命令应该做什么

-A --concatenate 将一个已有tar归档文件追加到另一个已有tar归档文件; 
-c --create 创建一个新的tar归档文件; 
-d --diff 检查归档文件和文件系统的不同之处; 
--delete 从已有tar归档文件中删除;
-r --append 追加文件到已有tar归档文件末尾; 
-t --list 列出已有tar归档文件的内容; 
-u --update 将比tar归档文件中已有的同名文件新的文件追加到该tar归档文件中; 
-x --extract 从已有tar归档文件中提取文件; 
-C dir 切换到指定目录; 
-f file 输出结果到文件或设备file; 
-j 将输出重定向给bzip2命令来压缩; 
-p 保留所有文件权限; 
-v 在处理文件时显示文件; 
-z 将输出重定向给gzip命令来压缩;

通常这些选项会组合在一起使用。

[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ tar -czvf test.tar.gz  
  2. [xianzan@xianzan dir]$ tar -xzvf test.tar.gz   
  3. ./  
  4. ./test3/  
  5. ./test1/  
  6. ./test2/  
  7. [xianzan@xianzan dir]$ ls  
  8. test1  test2  test3  test.tar.gz  

file命令:

查看文件类型:ASCII、data、bin等:
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ file /etc/passwd  
  2. /etc/passwd: ASCII text  
  3. [xianzan@xianzan dir]$ file /usr/sbin/atrun   
  4. /usr/sbin/atrun: POSIX shell script text executable  
  5. [xianzan@xianzan dir]$ file /dev/fb0  
  6. /dev/fb0: character special  
  7. [xianzan@xianzan dir]$ file /dev/sda1  
  8. /dev/sda1: block special  

od命令:

查看二进制文件,格式: od [ -t TYPE ] 文件名
a: 利用默认的字符来输出
c: 使用ASCII输出
d: 十进制输出
f: 浮点数输出
o: 八进制输出
x: 十六机制输出
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ od -t d /bin/ls  
  2. 0344420           1           0           0         0  
  3. [xianzan@xianzan dir]$ od -t o /bin/ls  
  4. 0344420 00000000001 00000000000 00000000000 00000000000  

管道:

管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入,通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出。通过使用管道符“|”来建立一个管道行。
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ cat /etc/passwd |grep xianzan  
  2. xianzan:x:500:500:xianzan:/home/xianzan:/bin/bash  
  3. [xianzan@xianzan dir]$ cat /etc/passwd |grep xianzan |cut -d: -f1  
  4. xianzan  
说明:
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。
-d :自定义分隔符,默认为制表符,-d后面跟的就是截取的标志上面是以 :为截取的标志;
-f   :与-d一起使用,指定显示哪个区域,f1代表显示第一个字段。
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ cat /etc/passwd |grep xianzan |cut -d: -f2  
  2. x  
  3. [xianzan@xianzan dir]$ cat /etc/passwd |grep xianzan |cut -d: -f3  
  4. 500  

命令置换符:

命令置换是将一个命令的输出作为另外一个命令的参数部分。常用命令格式为:command1 `command2`上面这条命令表示,命令command2的输出将作为command1的参数,需要注意的是,命令置换符“`”为ESC键下方的“~”键不按shift的输出。
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ ls `pwd`  
  2. 1.c  
  3. [xianzan@xianzan dir]$ ls /home/`cat /etc/passwd |grep xianzan |cut -d: -f1`  
  4. dir  公共的  模板  视频  图片  文档  下载  音乐  桌面  

标准输入、输出、出错:

标准输入<1>(Standard Input, stdin)是系统命令或程序获取输入的地方:
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ cat  
  2. hello  
  3. hello  
标准输出<2>(Standard Output, stdout)是系统命令或程序正确执行信息的输出地方:
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ rm -rf *  
  2. [xianzan@xianzan dir]$ ls  
  3. [xianzan@xianzan dir]$ touch hello.txt  
  4. [xianzan@xianzan dir]$ ls  
  5. hello.txt  
而标准出错<2>(Standard error, stderr)是系统命令或程序执行出错信息的输出地方:
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ ls ls  
  2. ls: 无法访问ls: 没有那个文件或目录  
说明:
Linux系统中默认的标准输入为键盘,标准输出和标准出错为终端屏幕。

输入、输出重定向、输出追加重定向符:

输入重定向符 < :
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ wc < /etc/passwd  
  2.   39     67     1883  
  3. 行数  单词数   字节数  
输出重定向>:
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ tail /etc/passwd > stdout.txt  
  2. [xianzan@xianzan dir]$ tail /etc/passwd > stdout.txt  
  3. [xianzan@xianzan dir]$ cat stdout.txt   
  4. gdm:x:42:42::/var/lib/gdm:/sbin/nologin  
  5. ntp:x:38:38::/etc/ntp:/sbin/nologin  
  6. apache:x:48:48:Apache:/var/www:/sbin/nologin  
输出追加重定向>>:
[plain]  view plain  copy
  1. [xianzan@xianzan dir]$ tail /etc/passwd >> stdout.txt  
  2. [xianzan@xianzan dir]$ cat stdout.txt   
  3. gdm:x:42:42::/var/lib/gdm:/sbin/nologin  
  4. ntp:x:38:38::/etc/ntp:/sbin/nologin  
  5. apache:x:48:48:Apache:/var/www:/sbin/nologin  
  6. gdm:x:42:42::/var/lib/gdm:/sbin/nologin  
  7. ntp:x:38:38::/etc/ntp:/sbin/nologin  
  8. apache:x:48:48:Apache:/var/www:/sbin/nologin  

你可能感兴趣的:(linux文件操作学习3)