前言:
前面学了了用户和用户组的管理,文件权限的管理以及查找文件的三种方式,接下来将学习怎样配置环境变量,常见的压缩格式与怎么解压,管道,标准的输入输出以及重定向
echo命令:
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到:
[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可以直接将你要打印的字符串写到你的文件中:
[user1@xianzan dir]$ echo "hello world">echotest.txt
[user1@xianzan dir]$ cat echotest.txt
hello world
export命令:
用于声明一个环境变量:
[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
[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的子进程。
要想在linux启动时,环境变量对这个系统的所有用户都有效则修改 /etc/profile文件
[xianzan@xianzan dir]$ vim /etc/profile
环境变量生效:
[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 运行的。
/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 将输出重定向给gzip命令来压缩;
-f file 输出结果到文件或设备file;
-j 将输出重定向给bzip2命令来压缩;
-p 保留所有文件权限;
-v 在处理文件时显示文件;
-z 将输出重定向给gzip命令来压缩;
通常这些选项会组合在一起使用。
[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等:
[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: 十六机制输出
c: 使用ASCII输出
d: 十进制输出
f: 浮点数输出
o: 八进制输出
x: 十六机制输出
[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
管道:
管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入,通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出。通过使用管道符“|”来建立一个管道行。
[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代表显示第一个字段。
[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的输出。
[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)是系统命令或程序获取输入的地方:
[xianzan@xianzan dir]$ cat
hello
hello
标准输出<2>(Standard Output, stdout)是系统命令或程序正确执行信息的输出地方:
[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)是系统命令或程序执行出错信息的输出地方:
[xianzan@xianzan dir]$ ls ls
ls: 无法访问ls: 没有那个文件或目录
说明:
Linux系统中默认的标准输入为键盘,标准输出和标准出错为终端屏幕。
输入、输出重定向、输出追加重定向符:
输入重定向符 < :
[xianzan@xianzan dir]$ wc < /etc/passwd
39 67 1883
行数 单词数 字节数
输出重定向>:
[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
输出追加重定向>>:
[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