您的位置:首页 > 运维架构 > Linux

linux文件操作学习3

2016-03-09 20:11 495 查看


前言:

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


echo命令:

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

[plain] view
plain copy

[user1@xianzan dir]$ echo "hello world"  

hello world  

[user1@xianzan dir]$ echo -n "hello world"  

hello world[user1@xianzan dir]$ echo $PATH  

/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

[user1@xianzan dir]$ echo "hello world">echotest.txt  

[user1@xianzan dir]$ cat echotest.txt   

hello world  


export命令:

用于声明一个环境变量:

[plain] view
plain copy

[user1@xianzan dir]$ export PATH=$PATH:/usr/local/bin  

[user1@xianzan dir]$ echo $PATH  

/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="https://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

[xianzan@xianzan dir]$ echo $PATH  

/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>




环境变量生效:

[plain] view
plain copy

[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 运行的。


文件(夹)的压缩:



说明:

经常遇到的压缩格式为 .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 将输出重定向给
1673c
gzip命令来压缩;

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

[plain] view
plain copy

[xianzan@xianzan dir]$ tar -czvf test.tar.gz  

[xianzan@xianzan dir]$ tar -xzvf test.tar.gz   

./  

./test3/  

./test1/  

./test2/  

[xianzan@xianzan dir]$ ls  

test1  test2  test3  test.tar.gz  


file命令:

查看文件类型:ASCII、data、bin等:

[plain] view
plain copy

[xianzan@xianzan dir]$ file /etc/passwd  

/etc/passwd: ASCII text  

[xianzan@xianzan dir]$ file /usr/sbin/atrun   

/usr/sbin/atrun: POSIX shell script text executable  

[xianzan@xianzan dir]$ file /dev/fb0  

/dev/fb0: character special  

[xianzan@xianzan dir]$ file /dev/sda1  

/dev/sda1: block special  

od命令:

查看二进制文件,格式: od [ -t TYPE ] 文件名

a: 利用默认的字符来输出

c: 使用ASCII输出

d: 十进制输出

f: 浮点数输出

o: 八进制输出

x: 十六机制输出

[plain] view
plain copy

[xianzan@xianzan dir]$ od -t d /bin/ls  

0344420           1           0           0         0  

[xianzan@xianzan dir]$ od -t o /bin/ls  

0344420 00000000001 00000000000 00000000000 00000000000  

管道:

管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入,通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出。通过使用管道符“|”来建立一个管道行。

[plain] view
plain copy

[xianzan@xianzan dir]$ cat /etc/passwd |grep xianzan  

xianzan:x:500:500:xianzan:/home/xianzan:/bin/bash  

[xianzan@xianzan dir]$ cat /etc/passwd |grep xianzan |cut -d: -f1  

xianzan  

说明:

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。

-d :自定义分隔符,默认为制表符,-d后面跟的就是截取的标志上面是以 :为截取的标志;

-f  :与-d一起使用,指定显示哪个区域,f1代表显示第一个字段。

[plain] view
plain copy

[xianzan@xianzan dir]$ cat /etc/passwd |grep xianzan |cut -d: -f2  

x  

[xianzan@xianzan dir]$ cat /etc/passwd |grep xianzan |cut -d: -f3  

500  

命令置换符:

命令置换是将一个命令的输出作为另外一个命令的参数部分。常用命令格式为:command1 `command2`上面这条命令表示,命令command2的输出将作为command1的参数,需要注意的是,命令置换符“`”为ESC键下方的“~”键不按shift的输出。

[plain] view
plain copy

[xianzan@xianzan dir]$ ls `pwd`  

1.c  

[xianzan@xianzan dir]$ ls /home/`cat /etc/passwd |grep xianzan |cut -d: -f1`  

dir  公共的  模板  视频  图片  文档  下载  音乐  桌面  

标准输入、输出、出错:

标准输入<1>(Standard Input, stdin)是系统命令或程序获取输入的地方:

[plain] view
plain copy

[xianzan@xianzan dir]$ cat  

hello  

hello  

标准输出<2>(Standard Output, stdout)是系统命令或程序正确执行信息的输出地方:

[plain] view
plain copy

[xianzan@xianzan dir]$ rm -rf *  

[xianzan@xianzan dir]$ ls  

[xianzan@xianzan dir]$ touch hello.txt  

[xianzan@xianzan dir]$ ls  

hello.txt  

而标准出错<2>(Standard error, stderr)是系统命令或程序执行出错信息的输出地方:

[plain] view
plain copy

[xianzan@xianzan dir]$ ls ls  

ls: 无法访问ls: 没有那个文件或目录  

说明:

Linux系统中默认的标准输入为键盘,标准输出和标准出错为终端屏幕。

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

输入重定向符 < :

[plain] view
plain copy

[xianzan@xianzan dir]$ wc < /etc/passwd  

  39     67     1883  

行数  单词数   字节数  

输出重定向>:

[plain] view
plain copy

[xianzan@xianzan dir]$ tail /etc/passwd > stdout.txt  

[xianzan@xianzan dir]$ tail /etc/passwd > stdout.txt  

[xianzan@xianzan dir]$ cat stdout.txt   

gdm:x:42:42::/var/lib/gdm:/sbin/nologin  

ntp:x:38:38::/etc/ntp:/sbin/nologin  

apache:x:48:48:Apache:/var/www:/sbin/nologin  

输出追加重定向>>:

[plain] view
plain copy

[xianzan@xianzan dir]$ tail /etc/passwd >> stdout.txt  

[xianzan@xianzan dir]$ cat stdout.txt   

gdm:x:42:42::/var/lib/gdm:/sbin/nologin  

ntp:x:38:38::/etc/ntp:/sbin/nologin  

apache:x:48:48:Apache:/var/www:/sbin/nologin  

gdm:x:42:42::/var/lib/gdm:/sbin/nologin  

ntp:x:38:38::/etc/ntp:/sbin/nologin  

apache:x:48:48:Apache:/var/www:/sbin/nologin  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: