Linux

2017-08-30  本文已影响0人  来个芒果

一、文件基本操作

1.批量重命名
2.查看文件内容:

二、环境变量

3.环境变量与文件查找
变量类型:
    - 当前shell进程的私有【用户自定义变量】  如temp=abc
    - shell内建变量
    - 环境变量:可直接定义,也可从用户自定义变量导入:export temp。常用大写表示
           - 子进程可以继承父进程的环境变量
           - 关机、关shell会丢失,除非将环境变量设置为永久生效。
    - 变量按生命周期分类:
        - 永久:需要修改配置文件,变量永久生效;
             - /etc/bashrc  存放shell变量
        - /etc/profile   存放环境变量
        -.profile:
        - 临时:使用 export 命令行声明即可,变量在关闭 shell 时失效。
    - 两个重要文件:
        - /etc/bashrc  存放shell变量
        - /etc/profile   存放环境变量
        -.profile:只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。

相关命令:
    set
    env
    export
如何查看某几个文件区别?/如何查看三个变量的区别:
    export | sort > export.txt
    env | sort >env.txt
    set | sort >set.txt

    vim diff env.txt  export.txt   set.txt
4.命令的查找路径与顺序

shell中执行一个命令,会先去PATH变量中查找,如能查到到,则执行。
PATH环境变量:存储要执行的文件所在路径/目录

如:在某个目录下创建abc.sh脚本,只有在该目录下可运行,若想在任意地方运行,需要配置PATH变量,添加该路径。
PATH=$PATH:/home/shiyanlou/mybin

但是这样存在问题:一旦关闭shell,该环境变量会失效。
解决方法:

注意:> 将标准输出以覆盖方式重定向到一个文件
>> 追加方式

5. 修改、删除环境变量


变量删除:
unset temp 删除环境变量temp

6.环境变量生效
7.搜索文件

通过“ /var/lib/mlocate/mlocate.db ”数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行 updatedb 命令更新一次,所以有时候你刚添加的文件,它可能会找不到,需要手动执行一次 updatedb 命令

$ find ~ -newer /home/shiyanlou/Code
列出用户家目录下比 Code 文件夹新的文件


实验:
chown :更改文件所属用户/群组
chmod rwx 读写执行,依次:所有者、群组、其他用户

8.打包、压缩

常见格式:

文件后缀名 说明
*.zip zip 程序打包压缩的文件
*.rar rar 程序压缩的文件
*.7z 7zip 程序压缩的文件
*.tar tar 程序打包,未压缩的文件
*.gz gzip 程序(GNU zip)压缩的文件
*.xz xz 程序压缩的文件
*.bz2 bzip2 程序压缩的文件
*.tar.gz tar 打包,gzip 程序压缩的文件
*.tar.xz tar 打包,xz 程序压缩的文件
*tar.bz2 tar 打包,bzip2 程序压缩的文件
*.tar.7z tar 打包,7z 程序压缩的文件

8.1 zip

关于 zip 命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么你还需要对命令做一些修改:

du -h test.zip 查看文件大小

file test.zip

使用 unzip 解压文件时我们同样应该注意兼容问题,不过这里我们关心的不再是上面的问题,而是中文编码的问题,通常 Windows 系统上面创建的压缩文件,如果有有包含中文的文档或以中文作为文件名的文件时默认会采用 GBK 或其它编码,而 Linux 上面默认使用的是 UTF-8 编码,如果不加任何处理,直接解压的话可能会出现中文乱码的问题(有时候它会自动帮你处理),为了解决这个问题,我们可以在解压时指定编码类型。

-r 指定目录
-d 指定路径

8.2 rar

rar shiyanlou.rar . 创建压缩包
rar d shiyanlou.rar .zshrc 从指定压缩包删除某文件
rar l shiyanlou.rar 查看不解压文件
$ unrar x shiyanlou.rar 全路径解压

mkdir tmp 去掉路径解压,解压到自己的路径中 unrar e shiyanlou.rar tmp/

8.3
tar -cvf shiyanlou.tar shiyanlou/----需要压缩的文件夹

tar -tf shi.tar 只查看不解压
创建不同压缩格式的文件:
tar -czf shiyanlou.tar.gz~

压缩文件格式 参数
*.tar.gz -z
*.tar.xz -J
*tar.bz2 -j

tar 排除多个目录

tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat 
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat

常用命令:

zip:
打包 :zip something.zip something (目录请加 -r 参数)
解包:unzip something
指定路径:-d 参数
tar:
打包:tar -zcvf something.tar something
解包:tar -zxvf something.tar(应该去掉z)
ps: z参数--解压gzip格式的。
指定路径:-C 参数

三、基本操作命令

1、cd
(1)命令
ls [选项] [目录名]
(2)常用参数
参数描述
-a :–all 列出目录下的所有文件,包括以 . 开头的隐含文件
-l : 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
-d :–directory 将目录象文件一样显示,而不是显示其下的文件
-h :–human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
-t :以文件修改时间排序
备注:
列出当前目录中所有以d开头的文件目录的详细内容: ls -d d*

2、cd
进入系统根目录 : cd /
进入当前目录的父目录:cd ..
进入当前用户的跟目录 : cd ~
进入上次目录所在目录: cd -

3、mkdir
(1)命令格式

mkdir [选项] 目录

(2)常用参数

参数 描述
-m --mode=模式 设定权限<模式>
-p --parents 可以是一个路径名称。若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
-v --verbose 每次创建新目录都显示信息

ps:连续创建多个文件夹:
mkdir -vp {test/, test2/, test3/{tt1/, tt2/ }} 同时又在test3下创建了两个子目录

4、mv 移动/重命名
(1)命令格式

mv [选项] 源文件或目录 目标文件或目录
当目的文件/目录不存在是才为重命名;
(2)常用参数

参数 描述
-b --back 若需覆盖文件,则覆盖前先行备份
-f --force 如果目标文件已经存在,不会询问而直接覆盖
-i --interactive 若目标文件已经存在时,就会询问是否覆盖
-u --update 若目标文件已经存在,且源文件比较新,才会更新
-t --target 该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后

5、cp
(1)命令格式

cp [选项] 源文件/目录 目的文件/目录

(2)常用参数

参数 描述
-t --target-directory 指定目标目录
-i --interactive 覆盖前询问(使前面的 -n 选项失效)
-n --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-s --symbolic-link 对源文件建立符号链接,而非复制文件
-f --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-u --update 使用这项参数之后,只会在源文件的修改时间较目的文件更新时,或是对应的目的文件并不存在,才复制文件
例:将test1下最近更新的文件复制到test2下,覆盖前询问:
cp -iu test1/* test2/

6、cat
(1)命令格式

cat [选项] [文件]

(2)常用参数

参数 描述
-A --show-all 等价于 -vET
-b --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E --show-ends 在每行结束处显示 $
-n --number 对输出的所有行编号,由 1 开始对所有输出的行数编号
-s --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
ps:
cat总是与重定向符搭配使用 >;
tac 与cat相反,从最后一行开始显示。

7、nl
将文件加行号显示,与cat -n的区别是它可以有更多的显示方法;
(1)命令格式

nl [选项] [文件]

(2)常用参数

参数 描述
-b 指定行号指定的方式,主要有两种:
-b a 表示不论是否为空行,也同样列出行号(类似 cat -n)
-b t 如果有空行,空的那一行不要列出行号(默认值)
-n 列出行号表示的方法,主要有三种:
-n ln 行号在屏幕的最左方显示
-n rn 行号在自己栏位的最右方显示,且不加 0
-n rz 行号在自己栏位的最右方显示,且加 0
-w 行号栏位的占用的位数


上一篇 下一篇

猜你喜欢

热点阅读