linux下文件有关内容

来源:互联网 发布:2017dnf商人起步必知 编辑:程序博客网 时间:2024/06/03 19:52

变量

所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的值并赋值给其它变量,也可以直接指定数值赋值给任意变量。为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值、字符或者字符串等等数据类型

环境变量

环境变量的作用域比自定义变量的要大,如 Shell 的环境变量作用于自身和它的子进程。在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,除了创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。Shell 程序也作为一个进程运行在操作系统之上,而我们在 Shell 中运行的大部分命令都将以 Shell 的子进程的方式运行。

set显示当前shell所有变量,包括起内建环境变量用户自定义变量以及导出的环境变量

env显示当前用户相关的环境变量,还可以让命令在制定环境中运行

export显示shell中导出成环境变量的变量,也能通过他将自定义变量导出为环境变量

关于哪些变量是环境变量,可以简单地理解成在当前进程的子进程有效则为环境变量,否则不是(有些人也将所有变量统称为环境变量,只是以全局环境变量和局部环境变量进行区分,我们只要理解它们的实质区别即可)

创建一个shell脚本文件:gedit hello_shell.sh

#!/bin/bash

for((i=0;i<10;i++));do

echo "hello shell";

done

exit 0

保存并推出

chmod 755 hello_shell.sh为文件添加可执行权限

./hello_shell.sh执行脚本

创建一个c语言:gedit hello_world.c

#include<stdio.h>

int main(void){

printf("hello world");

return 0;

}

保存后退出,使用gcc生成可执行文件gcc -o hello_world hello_world.c

echo "PATH=$PATH:/home/shiyanlou/mybin">>.zshrc

上述命令中 >> 表示将标准输出以追加的方式重定向到一个文件中,注意前面用到的 > 是以覆盖的方式重定向到一个文件中,使用的时候一定要注意分辨。在指定文件不存在的情况下都会创建新的文件。

与搜索相关的命令常用的有 whereis,which,find 和 locate

whereis 只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)

locate快而全:locate /usr/share/\*.jpg,注意要添加*前面的反斜杠转义否则无法找到

which 本身是 Shell 内建的一个命令,我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令

find 应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索

-atime最后访问时间,-ctime最后修改文件内容时间,-mtime最后修改文件属性的时间

sudo apt-get update;sudo apt-get install cmatrix;cmatrix可以看到文字雨

文件打包与解压缩: *.gz,*.xz,*.bz2,*.tar,*.tar.gz,*.tar.xz,*.tar.bz2

zip压缩打包程序zip -r -q -o shiyanlou.zip /home/shiyanlou就是将这个文件夹下的文件压缩

du -h shiyanlou.zip查看该压缩包的大小,zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou 

这里添加了一个参数用于设置压缩级别 -[1-9],1 表示最快压缩但体积大,9 表示体积最小但耗时最久

zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou压缩加密包

unzip shiyanlou.zip解压到当前目录

unzip -q shiyanlou.zop -d ziptest解压到指定目录,ls -R ziptest

sudo apt-get update;sudo apt-get install rar unrar安装rar unrar工具
rar a shiyanlou.rar

rar d shiyanlou.rar .zshrc从制定压缩包文件中删除某个文件

unrar x shiyanlou.rar全路径解压

mkdir tmp;unrar e shiyanlou.rar tmp/

tar -cf shiyanlou.tar ~:-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后,比如不能写成 tar -fc shiyanlou.tar,可以写成 tar -f shiyanlou.tar -c ~。你还可以加上 -v 参数以可视的的方式输出打包的文件。上面会自动去掉表示绝对路径的 /,你也可以使用 -P 保留绝对路径符。

mkdir tardir;tar -xf shiyanlou.tar -C tardir解包一个文件到指定路径已存在的目录

tar -czf shiyanlou.tar.gz ~

tar -xzf shiyanlou.tar.gz

zip:
打包 :zip something.zip something (目录请加 -r 参数)
解包:unzip something
指定路径:-d 参数
tar:
打包:tar -zcvf something.tar something
解包:tar -zxvf something.tar
指定路径:-C 参数

sudo apt-get install libaa-bin;aafire;尝试一下有趣的程序哦

查看磁盘和目录的容量df"rootfs" : (Root File System)它是 Ramfs(Ramfs 是一个非常简单的 Linux 文件系统用于实现磁盘缓存机制作为动态可调整大小的基于 ram 的文件系统)或者 tmpfs 的一个特殊实例,它作为系统启动时内核载入内存之后,在挂载真正的的磁盘之前的一个临时文件系统。通常的主机会在系统启动后用磁盘上的文件系统替换,只是在一些嵌入式系统中会只存在一个 rootfs ,或者像我们目前遇到的情况运行在虚拟环境中共享主机资源的系统也可能会采用这种方式

使用du查看目录的容量:du-h以更易读的方式显示,du -h -d 0~查看1级目录的信息,du -a 显示目录中所有文件大小,du -s 只列出最后加总的值

dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据或者空数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换

dd of=test bs=10 coung=1 hello shiyanlou; du -b test; cat test

bs(block size)用于指定块大小(缺省单位为 Byte,也可为其指定如'K','M','G'等单位),count用于指定块数量

dd if=/dev/stdin of=test bs=10 count=1 conv=ucase实现数据的转换将小写转为大写
dd if=/dev/zero of=virtual.img bs=1M count=256创建虚拟镜像文件

sudo mkfs.ext4 virtual.img格式化镜像文件

sudo apt-get install cowsay

cowsay hello shiyanlou默认是一只牛说话

cowsay -f elephant hello siyanlou

fortune| cowsay -f daemon很有趣哦





原创粉丝点击