首页 > 系统相关 >7.Linux环境变量

7.Linux环境变量

时间:2023-04-24 14:22:05浏览次数:68  
标签:文件 tar -- 链接 Linux txt 环境变量

前言

我们上节课学习了用户及权限的相关知识,同时也学习了远程登录,这节课再给大家讲讲环境变量,我们在手动安装很多程序时都会要设置环境变量,所以这节课就给大家介绍一下,当然也不仅仅是介绍环境变量,中间也会有一些新命令,最后会带大家手动安装一下java开发环境

alias命令

Linuxalias命令用于设置指令的别名,紧对当前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.txt2.txt文件并查看大小
sudo ls -Rl /etc > 1.txt # 这个文件大概有240k
sudo ls -Rl /usr > 2.txt # 这个文件大概有8.6M
  • 我们可以使用-f参数指定压缩包的名称,使用-v参数可以显示执行过程,使用-c参数用于创建新的压缩包,执行命令创建压缩包并查看大小,不难看出,我们仅仅把1.txt2.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 定义命令行解释器搜索用户执行命令的路径
MAIL 邮件保存路径
RANDOM 生成一个随机数字
LANG 系统语言、语系名称

环境变量的分类

  • 按生命周期分:

    • 永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。

    • 临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。

  • 按作用域分:

    • 系统环境变量:公共的,对全部的用户都生效。

    • 用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。

永久环境变量设置

  • /etc/profile:用户使用交互式登录到环境中时该文件会被执行,用户可以在此设置一些全局信息
  • ~/.bash_profile:用户使用交互式登录到环境中时执行完/etc/profile就会执行该文件,用户可以在些设置一些自己的环境信息
  • ~/.bashrc:用户使用非交互式登录系统会执行该文件,但在~/.bash_profile默认情况下会调用~/.bashrc

source命令

source命令可以在当前bash环境下读取并执行FileName中的命令

source filename # filename文件为一个shell脚本文件

PATH环境变量

path环境变量的值就是通过':'所分割的一系列的路径,如图:

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/20230209/3a6c77ca562b4d0dbf56a7950757dcac.png

当我们执行某个命令时,命令解释器会根据PATH记录的这些路径依次在这些路径去检索

练习:jdk安装

jdkJava Development kit,Java开发工具包,也就是常说的Java开发环境,我们来在我们的Linux主机上对其做一个安装,体验一下环境变量

我们的系统中自带了open-jdk,但我们还没有学yum相关知识,所以就先不卸载了,直接安装

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
  • 目录介绍

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/20230223/76274ab1ab274635b7de4e45dbce5153.png

  • 我们需要做的是
    • 创建JAVA_HOME环境变量,变量值为java的安装目录
    • 创建CLASS_PATH环境变量,变量值为.lib目录下的tools.jardt.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

相关文章

  • rknn_toolkit-1.6.1-cp36安装(Centos:rknn_toolkit-1.6.1-cp36-cp36m-linux_x86_64.whl)
    ---------start添加用户----------#suroot#adduserxu#passwdxu#chmod-vu+w/etc/sudoers#vim/etc/sudoers在这一行rootALL=(ALL)ALL下新增#xuALL=(ALL)ALL#addbyjiangshanwithhands#chmod-vu-w/etc/sudoers退出root用户#exit----......
  • windows和Linux文件系统区别
    windows和Linux文件系统区别 一、用户操作系统单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源WindowsXP 之前的版本都是单用户操作系统多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户......
  • 是不是都把SELinux给忘了?
    SELinux是什么鬼SELinux(Security-EnhancedLinux)是一个安全模块,内置于Linux内核中,为Linux系统提供了一个额外的安全层。它通过实施强制访问控制(MAC)来限制进程的访问权限,可以帮助防止恶意软件和攻击者对系统的攻击。与传统的基于用户/组的访问控制(DAC)不同,SELinux使用安全策略......
  • linux 磁盘空间查看记录
    --查看磁盘空间df-h--查看当前目录所有目录树的大小du-h--查看当前目录下所有子目录大小,depth=0就是指当前目录大小du-h--max-depth=1--查看当前目录下所有文件的大小ls-hl-- 查看mysql安装路径whereismysql--清空文件内容而不删除文件,例如清除文件test.log>tes......
  • 常用的Linux命令(git通用)
    1)、cd:改变目录。2)、cd..回退到上一个目录,直接cd进入默认目录3)、pwd:显示当前所在的目录路径。4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。5)、touch:新建一个文件如touchindex.js就会在当前目录下新建一个index.js文件。6)......
  • linux dts 设备树学习
    参考https://zhuanlan.zhihu.com/p/376755248https://blog.csdn.net/to_be_better_wen/article/details/128044597一.设备树简介 linux设备树devicetree,设备树的源文件称为DTS. linux内核从3.x开始引入设备树概念,用于实现驱动代码与设备信息相分离。在设备树以前,所有关......
  • Linux(UOS)安装MySQL
    1、https://www.mysql.com/2、 3、 4、 5、6、配置MySQL库安装环境及服务器端的安装dpkg-imysql-apt-config_0.8.25-1_all.debapt-getupdateaptitudeinstallmysql-server7、客服端的安装aptitudeinstalllibmysqlclient-dev ......
  • 【v4l2】Linux多媒体框架 - videobuf2详解
    框架分析框架可以分为两部分看:控制流+数据流,之前已经大概的描述了控制流,数据流部分就是videobuffer,V4l2buffer的管理是通过videobuf2来完成的,它充当于用户空间和驱动空间之间的中间层,并提供模块化的内存管理功能。上图大体包含了videobuf2的框架1.vb2_queue:核心的数据结构,......
  • Linux挂载硬盘(Ubuntu)
    Ubuntu挂载硬盘(小于2T,非加密磁盘)1.查看可挂载硬盘设备名fdisk-luser@test:~$sudofdisk-l如图,可以看到我们要挂载的磁盘设备名为/dev/sdb2.添加磁盘,并按图中标注的操作(n,p,回车,回车,回车,w)。user@test:~$sudofdisk/dev/sdb通过fdisk-l再次查看,如下图,设备名已经为/......
  • linux切换桌面模式
    指定运行级别(指定运行级别使用的是init0~6或者是systemctlget-default是查看当前运行级别。systemset-defaultmulti-user.target表示切换到运行级别3systemset-defaultgraphical.target表示切换到运行级别5) ......