前言
我们上节课学习了用户及权限的相关知识,同时也学习了远程登录,这节课再给大家讲讲环境变量,我们在手动安装很多程序时都会要设置环境变量,所以这节课就给大家介绍一下,当然也不仅仅是介绍环境变量,中间也会有一些新命令,最后会带大家手动安装一下java开发环境
alias命令
Linux
的alias
命令用于设置指令的别名,紧对当前shell生效
alias [nickname=command_name]
# 如果后面不设置别名,则打印当前所有别名列表
例如:
设置别名为l
,功能为打印/
下的所有文件
alias l='ls -a /'
which命令
which
命令,主要用于用于查看给定命令的绝对路径
which [options] command_name
选项 | 含义 |
---|---|
--all,-a | 打印出所有在 PATH 中匹配的可执行程序,而不仅仅是第一个匹配的可执行程序 |
--read-alias, -i | 打印别名 |
--skip-alias | 跳过别名 |
--read-functions | 读取 Shell 函数的定义,并打印匹配的函数 |
--skip-functions | 跳过函数 |
Linux链接
Linux 链接分两种:
- 硬链接(Hard Link)
- 符号链接(Symbolic Link)
默认情况下,ln
命令产生硬链接
硬链接
硬链接,全称叫作硬链接文件,英文名称是 hard link。这类文件比较特殊,这类文件(假设叫 A)会拥有自己的 inode 节点和名称,其 inode 会指向文件内容所在的数据块。与此同时,该文件内容所在的数据块的引用计数会加 1。当此数据块的引用计数大于等于 2 时,则表示有多个文件同时指向了这一数据块。一个文件修改,多个文件都会生效。当删除其中某个文件时,对另一个文件不会有影响,仅仅是数据块的引用计数减 1。当引用计数为 0 时,则系统才会清除此数据块,比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问
软连接
软链接,全称是软链接文件,英文叫作 symbolic link。这类文件其实非常类似于 Windows 里的快捷方式,这个软链接文件(假设叫 VA)的内容,其实是另外一个文件(假设叫 B)的路径和名称,当打开 A 文件时,实际上系统会根据其内容找到并打开 B 文件,比如:A是B的软链接,我们可以像操作B一样去操作A,但如果我们把B删除了,A仍然存在,但其成了一个无效的链接
ln命令
ln
命令是linux系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 一种是hard link,又称为硬链接;另一种是symbolic link,又称为符号链接,ln
的命令格式:
ln [-s] source target
# -s 建立软链接,不加则硬链接
练习:
- 创建
1.txt
,内容随便 - 创建
1.txt
的硬链接2.txt
且查看2.txt
的内容
ln 1.txt 2.txt
- 更改
2.txt
的内容,然后查看1.txt
- 更改
1.txt
的内容,然后查看2.txt
- 删除
1.txt
,查看2.txt
- 创建
2.txt
的软链接3.txt
且查看3.txt
的内容
ln -s 2.txt 3.txt
- 修改
3.txt
内容,然后查看2.txt
- 修改
2.txt
内容,然后查看3.txt
- 删除
2.txt
,然后查看3.txt
tar命令
Linux tar
(英文全拼:tape archive )命令用于备份文件,tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件
tar [options] file...
选项 | 含义 |
---|---|
-A 或 --catenate | 新增文件到已存在的备份文件 |
-c 或 --create | 建立新的备份文件 |
-C<目的目录>或--directory=<目的目录> | 切换到指定的目录 |
-f<备份文件>或--file=<备份文件> | 指定备份文件 |
-t或--list | 列出备份文件的内容 |
-v或--verbose | 显示指令执行过程 |
-x或--extract或--get | 从备份文件中还原文件 |
-z或--gzip或--ungzip | 通过gzip指令处理备份文件 |
--delete | 从备份文件中删除指定的文件 |
--help | 在线帮助 |
注:tar
的参数远远不至这么多,大家可以看看菜鸟上tar命令的参数列表,我上面列了一些大家最常用的,其实我们只需要知道如何用它压缩和解压缩就行了,至于其它的高级用法我们教程中用不到,而且在未来大家工作中也大概率用不到
- 使用如下命令创建
1.txt
及2.txt
文件并查看大小
sudo ls -Rl /etc > 1.txt # 这个文件大概有240k
sudo ls -Rl /usr > 2.txt # 这个文件大概有8.6M
- 我们可以使用
-f
参数指定压缩包的名称,使用-v
参数可以显示执行过程,使用-c
参数用于创建新的压缩包,执行命令创建压缩包并查看大小,不难看出,我们仅仅把1.txt
和2.txt
文件归档到一个文件中了,但并没有压缩的作用,一般我们使用.tar
作为这种使用tar只归档但没有压缩的文件后缀
tar -cvf myfile.tar 1.txt 2.txt # 生成的新文件大概有8.9M,其实就相当于1.txt+2.txt的大小,并没有做压缩
- 在上述命令上加上
-z
选项指定通过gzip
处理压缩文件,而gzip
文件的后缀一般为.gz
,而因为我们是先使用tar
做归档,然后再使用gzip
做压缩,所以我们通过情况下对这种压缩文件以.tar.gz
作为后缀,我们再来看下大小
tar -czvf myfile.tar.gz 1.txt 2.txt # 生成的新文件大概有1.2M,效果还是很明显的
- 我们只需要将上述归档或压缩参数中的
-c
换成-x
就可以完成解压缩的操作了
# 删除1.txt 2.txt
rm -fr 1.txt 2.txt
tar -xzvf myfile.tar.gz
- 当然我们也可以用
-C
指定解压的目标目录
tar -xzvf myfile.tar.gz -C ~/Desktop #解压到桌面
wget工具
wget
是Linux系统下的一款工具,用于从远程服务器恢复备份到本地服务器,支持HTTP,HTTPS和FTP协议,简单来说就是下载
如果你当时安装Linux系统时是跟随我的教程走的,那么你的机器上应该是有wget
的,如果没有也没关系,网上搜索一下CentOS7安装wget
,一行命令就能搞定
wget [options] url
选项 | 参数 |
---|---|
-r | 递归,wget首先下载URL指定的文件,如果该文件是一个HTML文档的话递归下载该文件所引用所有文件 |
-N | 该参数指定wget只下载更新的文件,也就是说,与本地目录中的对应文件的长度和最后修改日期一样的文件将不被下载 |
-l | 设置递归级数,默认为5,-l0 为无穷递归;-l1 相当于不递归 |
-t | 设置重试次数,-t0 则重试次数设为无穷多 |
-v | 设置wget输出详细的工作信息 |
-q | 设置wget不输出任何信息 |
环境变量
概念
在看环境变量之前我们先看看变量,变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值;而环境变量是用来定义系统运行环境的一些参数,比如用户的家目录(HOME)、用户使用的shell(SHELL)、用户邮件位置(MAIL)等
这里有个不成文的规定,大家一般会把环境变量的名称全部设置成大写
我们可以使用env
命令来查看系统中的所有环境变量,当然也可以使用echo $变量名
打印出某个变量的值
常见环境变量
Linux 系统能够正常运行并且为用户提供服务,需要数十个环境变量来协同工作,我们这里就简单了解一下几个常用 的环境变量
环境变量 | 作用 |
---|---|
HOME | 用户的主目录(也称家目录) |
SHELL | 用户使用的 Shell 解释器名称 |
PATH | 定义命令行解释器搜索用户执行命令的路径 |
邮件保存路径 | |
RANDOM | 生成一个随机数字 |
LANG | 系统语言、语系名称 |
环境变量的分类
-
按生命周期分:
-
永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
-
临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。
-
-
按作用域分:
-
系统环境变量:公共的,对全部的用户都生效。
-
用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。
-
永久环境变量设置
/etc/profile
:用户使用交互式登录到环境中时该文件会被执行,用户可以在此设置一些全局信息~/.bash_profile
:用户使用交互式登录到环境中时执行完/etc/profile就会执行该文件,用户可以在些设置一些自己的环境信息~/.bashrc
:用户使用非交互式登录系统会执行该文件,但在~/.bash_profile
默认情况下会调用~/.bashrc
source命令
source
命令可以在当前bash环境下读取并执行FileName中的命令
source filename # filename文件为一个shell脚本文件
PATH环境变量
path环境变量的值就是通过':'所分割的一系列的路径,如图:
当我们执行某个命令时,命令解释器会根据PATH记录的这些路径依次在这些路径去检索
练习:jdk安装
jdk
即 Java Development kit,Java开发工具包,也就是常说的Java开发环境,我们来在我们的Linux
主机上对其做一个安装,体验一下环境变量
我们的系统中自带了open-jdk
,但我们还没有学yum
相关知识,所以就先不卸载了,直接安装
-
我这里以
8u192
版本为例,在主机上执行wget
用于下载jdk的包
wget https://repo.huaweicloud.com/java/jdk/8u192-b12/jdk-8u192-linux-x64.tar.gz
- 将其解压到
/usr/local
下
sudo tar -zxvf jdk-8u192-linux-x64.tar.gz -C /usr/local
- 目录介绍
- 我们需要做的是
- 创建
JAVA_HOME
环境变量,变量值为java的安装目录 - 创建
CLASS_PATH
环境变量,变量值为.
及lib
目录下的tools.jar
及dt.jar
文件 - 将存放java可执行文件的目录加入
PATH
环境变量中
- 创建
- 修改
/etc/profile
使其对所有用户生效,在最下面加入如下环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_192
export CLASS_PATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
/etc/profile
文件会在用户交互式登录到环境时被执行,此时我们可以重新登录,也可以source
命令使其在当前环境生效
source /etc/profile
- 执行
java -version
来验证
java -version
总结
这节课学习了一些新命令和环境变量,有了这些东西我们就可以自已手动安装一些程序如Python、NodeJs等
标签:文件,tar,--,链接,Linux,txt,环境变量 From: https://www.cnblogs.com/kevinlu98/p/17349374.html