3.3 Linux 文件管理

1、查看系统信息
tty 命令
  • 描述:查看当前系统在哪个终端
  • 语法:tty

Linux默认情况下提供6个虚拟终端来让用户登录,系统将F1~F6定义为tty1~tty6。

  • ctrl+alt+(F1~F6) :从图形界面切换到命令行界面的第 n 个虚拟终端(F1 是图形界面,F2、…、F6 是命令行界面)。
  • alt+F1~F6 可以在命令行界面终端之间切换。
# 查看当前终端
tty			
who -m
who am i
w
who 命令
  • 描述:查看当前登入主机的用户终端信息
  • 语法:who [选项]
# 查看当前登入主机的用户终端信息
who -m 
who am i
tty
w
w 命令
  • 描述:显示用户登录的信息
  • 语法:w 用户名

命令 w 的功能最全面,按以下顺序排列:当前时间,系统启动到现在的时间,登录用户的数目,系统在最近 1 分、5 分和 15 分的平均负载。

  • USER 显示登陆用户帐号名。
  • TTY 用户登陆所用的终端。
  • FROM 显示用户在何处登陆系统。
  • LOGIN@ 是 LOGIN AT 的意思,表示登陆进入系统的时间。
  • IDLE: 用户空闲时间,从用户上一次任务结束后,开始记时。
  • JCPU 和该终端(tty)连接的所有进程占用的时间
  • WHAT 表示当前执行的任务。
w root				# 查看root用户登录终端情况
uname 命令
  • 描述:显示操作系统的信息,包括版本、平台的信息
  • 语法:uname [选项]
    • -a, --all 以如下次序输出所有信息。其中若-p 和 -i 的探测结果不可知则被省略:
    • -s, --kernel-name 输出内核名称
    • -n, --nodename 输出网络节点上的主机名
    • -r, --kernel-release 输出内核发行号
    • -v, --kernel-version 输出内核版本
    • -m, --machine 输出主机的硬件架构名称
    • -p, --processor 输出处理器类型或"unknown"
    • -i, --hardware-platform 输出硬件平台或"unknown"
    • -o, --operating-system 输出操作系统名称
    • --version 显示版本信息并退出
# 查看操作系统的信息
uname -a

# 查看主机名
hostname

# 查看操作系统版本
cat /etc/redhat-release

# 查看语言、字符集设置 
cat /etc/locale.conf 

# 查看cpu信息
cat /proc/cpuinfo

# 查看内存信息
cat /proc/meminfo

# 查看系统时间
date

# 查看系统运行时间
uptime

# 查看系统时区
timedatectl
shutdown 命令
  • 描述:
  • 语法:shutdown [选项] [参数]

-k :不是真的关机,只是发送警告消息出去

-r :将系统的服务停掉之后就重启(常用)

-h :将系统的服务停掉之后立即关机(常用)

-n : 不经过 init 程序,直接以 shutdown 的功能来关机

-f :关机并开机之后,强制略过 fsck 的磁盘检查

-F :系统重启之后,强制进行 fsck 的磁盘检查

-c :取消已经在进行的 shutdown 命令的内容

shutdown 命令用于安全关闭 Linux 系统。有些用户会使用直接断掉电源的方式来 关闭 Linux,这是十分危险的。因为 Linux 后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至会损坏硬件设备。

执行 shutdown 命令时,系统会通知所有登录的用户系统将要关闭,并且 login 指

令会被冻结,即新的用户不能再登录系统。

# 关机
shutdown		 	正常关机
shutdown -h now		立即关机
shutdown -h 10 		10分钟之后关机
shutdown -c			取消关机
poweroff			发送ACPI指令,切断电源供应
init 0

# 重启
reboot				重启
shutdown -r 		重启
shutdown -r now		立即重启
init 6
init 命令

在 centos7/rhel7 之前的 linux 版本,linux 运行级别分为 7 个级别,分别是 0~6 级别:

  • 0 代表关机(poweroff)
  • 1 代表单用户模式
  • 2 代表多用户模式,但没有网络服务
  • 3 代表完整多用户模式,有网络服务,登陆后进入控制台命令行模式 :multi-user.target
  • 4 运行级别,预留,系统未使用
  • 5 代表图形界面:graphical.target
  • 6 代表系统正常关闭并重启

一般默认运行级别设置为 3 或 5 级别。

init 命令:init 用于切换系统的运行级别,切换的工作是立即完成的。

# 切换运行级别为6:重新启动
init 6

# 切换运行级别为0:关机
init 0

# 切换运行级别为3:字符界面
init 3

# 切换运行级别为5:图形界面
init 5

# 切换到命令行界面:
systemctl isolate multi-user.target

# 切换到图形界面
systemctl isolate graphical.target
# 显示当前运行级别以及系统当前时间
who -r 

# 显示前一个运行级别(无则显示”N”),当前运行级别
runlevel 

#查看默认的运行级别
systemctl get-default
# 修改启动时的默认级别
vim /etc/inittab  进入文件后将 5 改为 3 

# 修改默认的运行级别为5
systemctl set-default graphical.target 
cd 命令
  • 描述:切换目录
  • 语法:cd 目标目录
cd .. 			# 返回上一级目录
cd -			# 在最后切换的两个目录中切换
cd | cd ~		# 返回用户的所在的家目录
2、文件目录的增删改
mkdir 命令
  • 描述:创建目录
  • 语法:mkdir [选项] 目录名称
    • -p 递归创建目录
mkdir /opt/test/		# 在 /opt 目录下创建 test 目录
mkdir /opt/aa/bb/cc		# 在 /opt 目录下递归创建 aa/bb/cc/ 目录
mkdir test{1..5}		# 在当前目录下创建 test1,test2,test3,test4,test5 目录
touch 命令
  • 描述:创建文件
  • 语法:touch 文件名
touch data.txt				# 在当前目录下创建 data.txt 文件
touch data{1..5}.txt		# 在当前目录下批量创建 data1.txt ~ data5.txt 文件
cp 命令
  • 描述:复制文件或目录
  • 语法:cp [选项] 源文件|目录 目标文件|目录
    • -f(force) 覆盖目标同名文件或目录时不进行提醒,而是直接强制复制
    • -i 覆盖目标同名文件或目录时提醒用户确认
    • -p(privilege) 复制时保持源文件的权限,属主及时间标记等属性不变
    • -r(recursion) 复制目录时必须使用此选项,表示递归复制所有文件及子目录
cp -r /home /opt			# 将 /home 目录 复制到 /opt 目录下
cp hello.txt hello1.txt		# 复制当前目录下hello.txt 并改名为hello1.txt 到当前目录
rm 命令
  • 描述:删除文件|目录
  • 语法:rm [选项] 文件|目录
    • -f(force) 删除文件或目录时不进行提醒,而直接强制删除
    • -i 删除文件或目录时提醒用户确认
    • -r(recursion) 删除目录时必须使用此选项,表示递归删除整个目录树
    • -v --verbose 显示指令执行过程
rm -rf test{1..10}  # 批量删除test1 ~ test10 文件
mv 命令
  • 描述:移动文件或目录,如果目标位置与源位置相同,则效果相当于为文件或目录改名
  • 语法:mv 源文件|目录 目标文件|目录
mv test.txt test1.txt 	# 将当前目录下的 test.txt 改名为 test1.txt
3、文件目录的查看
pwd 命令
  • 描述:查看当前的工作目录(绝对路径显示),实际读取的是$PWD环境变量的值
  • 语法:pwd
pwd				# 查看当前的工作目录
echo $PWD		# 查看当前的工作目录
ls 命令
  • 描述:显示指定目录内容及目录中隐藏的文件
  • 语法:ls [选项] 参数
    • -a --all 显示所有文件,包括以“.”开头隐藏的文件
    • -l: 使用长列表格式显示
    • -d 只显示目录本身的属性,不显示目录中的内容,一般结合-l 使用
    • -h 显示目录或文件大小,需要结合-l 结合使用,将会显示 KB、MB 等单位
    • -R 以递归的方式显示指定目录及其子目录中的所有内容
alias 命令
  • 描述:给命令添加别名
  • 语法:alias 别名="..."

给命令设置永久的别名

  • 设置永久全局别名:编辑 /home/usename/.bashrc 配置文件 添加别名
  • 设置永久局部别名:编辑 /etc/bashrc 配置文件 添加别名
# 设置临时的catens33别名
alias catens33="cat /etc/sysconfig/network-scripts/ifcfg-ens33"

# 取消别名
unalias catens33
which 命令
  • 描述:显示命令所在的目录
  • 语法:which 命令
    • -a 命令1 命令2 命令n 查看多个命令所在位置
which cat			# 显示cat命令所在的目录
which -a vim cat	# 同时查看vim和cat命令的所在位置
find 命令
  • 描述:搜索和查找文件和目录列表,可以通过权限,用户,组,文件类型,日期,大小等条 件查找文件。
  • 语法:find pathname -option [-print ] [ -exec | -ok command ] {} \;
    • 命令参数:
      • -print: find命令将匹配的文件输出到标准输出。
      • -exec: find命令对匹配的文件执行该参数所给出的shell命令。\(转义字符)
      • -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
    • 选项:
      • -name fileName 按文件名称查找,区分文件的大小写
      • -iname fileName 按文件名称查找,不区分文件的大小写
      • -type b/d/c/p/l/f 按文件类型查找
        • f - 普通文件。 d - 目录。
        • b - 块设备文件(随机读取) l - 符号链接文件。 s - socket文件 ip+port
        • c - 字符设备文件(顺序读取)。 p - 管道文件,进程之间通信
      • -mtime -n|+n 按文件更改时间来查找文件,-n:n天以内,+n:n天以前
      • -atime -n|+n 按文件访问时间来查,-n:n天以内,+n:n天以前
      • -ctime -n|+n 按文件创建时间来查找文件,-n:n天以内,+n:n天以前
      • -newer fileName 查找比fileName内容更新时间新的文件
      • -size -n|+n 按照文件大小查询文件。单位:k, M, G
      • -maxdepth 层级数 限制目录查找层级(从外往里找),默认递归查找整个目录
      • -perm 按文件|目录的权限查找
      • -empty 查找空文件
      • -user username 按文件的所有者来查找
      • -group groupname 按文件的所在组来查找
      • -nogroup 查无效属组的文件,即文件的属组在/etc/group中不存在
      • -nouser 查无效属主的文件,即文件的属主在/etc/passwd中不存在
      • -prune 不在当前指定目录中查找
    • 逻辑运算符
      • 与(-a)、或(-o)、非(!)
find /mnt -name test1.txt			# 按文件名称查找test1.txt(不区分大小写)
find /mnt -iname test1.txt			# 按文件名称查找test1.txt(区分大小写)
find /root -type f -name "*.php"    # 查找/root目录下所有以.php结尾的文件

# 对找到的.php文件进行长格式查看
find /root -type f -name "*.php" -exec ls -l {} \;
# 删除找到的.php文件
find /root -type f -name "*.php" -exec rm -rf {} \;

# 在/root下查找文件更新日是在距现在时刻二天以内的文件
find /root -type f -mtime -2
# 在/root下查找文件更新日是在距现在时刻二天以前的文件
find /root -type f -mtime +2
# 在/root下查找文件更新日时在距现在时刻二分钟以内的文件
find /root -type f -mmin -2
# 在/root下查找文件更新日时在距现在时刻二分钟以前的文件
find /root -type f -mmin +2
# 查找文件更新时间比文件test.txt的内容更新时间新的文件
find ./ -type f -newer test.txt

# 查找/boot目录下大于2M的文件
find /boot -type f -size +2M
# 查找/boot目录下大于2M的文件,并显示文件大小
find /boot -type f -size +2M -exec du -sh {} \;
# 查找/mnt目录下小于2M的文件,并删除
find /mnt -type f -size -2M -exec rm -rf {} \;

# 在/etc目录下找ifcfg-ens33文件,限制查找目录的层级为2层。注:-maxdepth放在-name前
find /etc -maxdepth 2 -name ifcfg-ens33		# 目录小于3层,查找不到。>=3可以查到

# 查找/root权限为644的所有文件
find /root -perm 644 -type f -exec ls -l {} \;
# 把/mnt目录下权限为777文件改为644
find /mnt -perm 777 -type f -exec chmod 644 {} \;

# 在/root路径下查找所有空文件
find /root -type f -empty 
# 在/root路径下查找所有空目录
find /root -type d -empty

# 查找/ 目录下所有者root的、名为date1.txt的文件
find / -user root -name date1.txt
# 查找/ 目录下属于Group chrony的所有文件
find / -group chrony -type f 
# 查找无效属组的所有文件
find / -nogroup -type f
# 查找无效属主的所有文件
find / -nouser -type f

# 查找/root目录下不是以.php结尾的文件
find /root ! -name "*.php"
# 查找/root目录下以.txt或以.php结尾的文件
find /root -name "*.txt" -o -name "*.php"
# 查找/root目录下权限为644和以.txt结尾的文件
find /root -name "*.txt" -a -perm 644
find / -name passwd

find / -path /etc -prune -o -name passwd

find / -path /etc -prune -o -name passwd -print

stat 命令
  • 描述:显示文件|目录的状态信息,输出信息比ls命令的输出信息要更详细
  • 语法:stat 文件|目录
stat /root			# 查看root目录的详细信息
cat 命令
  • 描述:显示文件的内容
  • 语法:cat [选项] 文件
    • -n 对输出的所有行编号
nl 命令
  • 描述:将指定的文件添加行号标注后写到标准输出。果不指定文件或指定文件为"-" ,程序 将从标准输入读取数据
  • 语法:nl 文件
head 命令
  • 描述:从文件开头查看部分内容,默认显示10行
  • 语法:head [选项] 文件
    • -n “-n”选项指定需要显示多少行的内容
cat -n /etc/passwd | head -n 5 # 显示passwd文件头部5行(带行号)

tail 命令
  • 描述:从文件末尾查看部分内容,默认显示10行。此命令比较适合查日志,因为最新的日志总是在文件的最后。
  • 语法:head [选项] 文件
    • -n 指定需要显示多少行的内容
    • -f 跟踪文件尾部内容的动态更新
cat -n /etc/passwd | tail -n 5		# 显示passwd文件末尾5行(带行号)
tail -f /var/log/messages

more 命令

-数字 每页显示几行

-p 显示下一页的时候,删除上一页的内容

在阅读时可以按Enter键向下滚动查看,按Space键可以向下翻一屏,按“q”键退出并返回原来的命令环境

more /etc/passwd
less 命令

less命令使用方法与more命令基本类似,但是比more更好的是,less命令既可以向下翻页也可以向上翻页,而more命令只能向下翻页,不能向上翻页。

less /etc/passwd
4、文件目录的统计与操作
wc 命令
  • 描述:统计文件内容中的单词数量、行数等信息,可以同时统计多个文件。
  • 语法:wc [选项] 文件名
    • -c:统计文件内容中的字节数
    • -l:统计文件内容中的行数
    • -w:统计文件内容中的单词个数(以空格或指标位作为分隔)
wc -l /etc/passwd						# 统计passwd文件的行数
find /etc -name "*.conf" | wc -l		# 统计/etc下文件名以".conf"结尾的文件个数
du 命令
  • 描述:统计目录以及空间的占用情况
  • 语法:du [选项] 参数
    • -a 统计当前目录和子目录下所有文件所占用的磁盘大小
    • -h 显示出统计结果,使用-h 选项后将显示出 KB、MB 等单位
    • -s 只统计当前目录(不包括子目录和文件)所占用的空间总的大小
sort 命令
  • 描述:它将文件进行排序(默认按升序排序),并将排序结果标准输出
  • 语法:sort [选项] 文件名
    • -r: 降序排序;
    • -t: 指定分隔符,默认分隔符是制表符;
    • -k [n,m]: 按指定字段范围排序。从第 n 个字开始,到第 m 个字(默认到行尾)
    • -u: 删除重复行。就是 uniq 命令;
    • -f: 忽略大小写;()
    • -b: 忽略每行前面的空白部分;
    • -n: 以数值型进行排序,默认使用字符串排序;
    • -o --output 将排序结果输出到源文件
# 以“:”分隔且以第3个字段按照数字排序对文件内容进行正向排序
sort -n -t ":" -k 3 sortTest.txt

# 以":"分割,指定第2段并按照数字对文件内容进行逆向排序
sort -n -r -t ":" -k 2  fruit.txt

# 查找 etc 目录下的最大5个文件
find /etc -type f -exec du -sh {} \; | sort -n -u | tail -5
uniq 命令
  • 描述:去除文件中的重复行,一般情况先用sort排序再进行去重。
  • 语法:uniq [选项] 文件名
    • -c 在每列旁边显示该行重复出现的次数(uniq)
    • -i 忽略大小写。(ignore-case)
    • -d 仅显示重复出现的行列(repeated)
    • -u 仅显示出现一次的行列(unique)
uniq uniqTest.txt				# 去重显示文件内容
sort uniqTest.txt | uniq		# 排序并去重显示文件
sort uniqTest.txtt | uniq -c	# 统计每行出现的次数
uniq -d uniqTest.txt			# 查找文件中重复出现的行
uniq -u uniqTest.txt			# 查找文件中出现过一次的行
grep 命令
  • 描述:按关键字 检索、过滤文件内容
  • 语法:grep [选项] 模式或“关键字“ 文件列表
    • -n 显示匹配行的行号
    • -v 显示不包含关键字的行
    • -i 忽略大小写
    • -l 一般和-r联用, 只显示包含关键字的文件的名字, 而不是显示文件内容
    • -r 递归检索
    • -w 按照单个词语的方式匹配
# 过滤出包含root的行并显示该行的行号
grep -n "root" /etc/passwd				

# 过滤出行首是root的行
grep ^"root" /etc/passwd	

# 过滤出以bash结尾的行
grep "bash"$ /etc/passwd	

# 过滤出不包含nologin的行
grep -v "nologin" /etc/passwd				

# 过滤出非注释的行
grep -v ^# /root/.bashrc				

# 过滤出非注释的行并且该行不是空行
grep -v ^# /root/.bashrc | grep -v ^$	

# 统计匹配到的行数
grep -c "root" /etc/passwd	

# 过滤出etc目录中包含root关键字的所有文件名
grep -lr "root" /etc			
cut 命令
  • 描述:从文件的每一行剪切字节、字符和字段并写到文件或标准输出(不指定文件)。
  • 语法:
    • -d "字符": 指定字段的分隔符,默认的字段分隔符为“TAB”
    • -f 数字: 指定截取第几段
    • -c "字符": 截取指定的字符
    • --out-delimiter="字段分隔符":指定输出内容使的字段分割符;
# 以":"分割每行,截取第1段
cat /etc/passwd | cut -d ":" -f 1		
# 以":"分割每行,截取第1段和第3段
cat /etc/passwd | cut -d ":" -f 1,3		
# 以":"分割每行,截取第1段和第3段,每段之间使用"==>"做分隔
cat /etc/passwd | cut -d ":" -f 1,3 --output-delimiter="-->"
# 以":"分割每行,截取1,3,5段并以第三段按数字排序
cat passwd | cut -d ":" -f 1,3,5 | sort -t ":" -k 2 -n



# 截取当前操作系统的ip地址 ->  192.168.10.5/24
ip addr | grep -w "inet" | grep "ens33" | tr -s ' ' | cut -d ' ' -f 3
tr 命令
  • 描述:用于替换字符()或将连续的字符变成一个
  • 语法:tr [选项] "字符" | tr ""原字符 "目标字符"
    • -s: 指定将哪个连续的字符变成一个
    • -d:删除指定的字符
ip addr | tr -s ' ' 	#	将标准输出中的连续的空格 替换成 一个空格,即'        ' -> ' ' 
5、文件加密
file 命令
  • 描述:显示文件的类型
  • 语法:file 文件
md5sum 命令
  • 描述:计算和校验文件的md5值
  • 语法:md5sum 文件

md5是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(哈希值),用于确保信息传输完整一致。

sha256sum 命令
  • 描述:计算和校验文件的md5值
  • 语法:md5sum 文件

sha256算法也是一种密码散列函数,对于任意长度的消息,SHA256都会产生一个256bit长的散列值(哈希值),用于确保信息传输完整一致。SHA256(⼜称SHA2)的安全性最⾼,但是耗时要⽐其他两种多很多,md5相对来说比较容易碰撞,安全性没这么高

diff 命令
  • 描述:比较文件的差异,常用于文本文件
  • 语法:diff 文件1 文件2
diff num1 num2		# 比较 num1和num2 之间的差异 num1:12345,num2:12545

ln 命令
  • 描述:创建文件的软硬连接,默认创建硬链接(不加参数-s)
  • 语法:ln [选项] 文件|目录 连接
    • -s 创建软连接
# 创建anaconda-ks.cfg 的软连接	testAn.cfg
ln -s /root/anaconda-ks.cfg /opt/testAn.cfg

文件系统中的每个文件均有一个索引节点即inode与其相关联。

inode包含有关文件的基本信息:其权限、时间戳以及指向存储在该文件中数据的指针。当创建新文件时,文件系统中未使用的inode将分配给该文件,并向该文件所在目录添加一个条目,将文件名映射至inode中。

软链接 (symbolic link)

  • 软链接是以路径的形式存在(指向的是原文件的路径),类似于Windows中的快捷方式
  • 软链接可以跨文件系统 ,硬链接不可以
  • 软链接可以对一个不存在的文件名进行链接
  • 软链接可以对目录进行链接
  • 软连接的文件有自己的inode,跟原文件不一样
  • 删除软链接并不影响被指向的原文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

硬链接 (hard link)

  • 硬链接是以文件副本的形式存在,不占用实际空间
  • 不允许给目录创建硬链接
  • 硬链接只有在同一个文件系统中才能创建
  • 硬链接的文件的inode跟原文件一样
  • 由于硬链接是有着相同 inode 号,仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。

注意:ln命令会保持每一个链接文件的同步性。不论改动了哪一处,其它的文件都会发生相同的变化

6、其他
env
  • 描述:显示系统中的环境变量
  • 语法:env
env				# 显示系统中的环境变量
!$ 参数
  • 描述:使用上一条命令的最后一个参数
  • 语法:命令 !$
# 此命令的最后一个参数是"/etc/sysconfig/network-scripts/"
ls /etc/sysconfig/network-scripts/	

# 此命令中的"!$"(上一条命令的最后一个参数) -> /etc/sysconfig/network-scipts/
cat !$
| 管道符
  • 描述:每一个命令都有输入输出,把前一个命令的输出当做第二个命令的输入,一个命令的输入可以从文件中读取,也可以从前一个命令的结果中读取。
cat -n /etc/passwd | head -n 5

重定向符号与文件描述符

文件描述符是一个非负整数,在打开现存文件或新建文件时,内核会返回一个文件描述符,读写文件也需要使用文件描述符来访问文件。

文件描述符

描述

映射关系

0

标准输入

/dev/stdin -> /proc/self/fd/0

1

标准正确输出

/dev/stdout -> /proc/self/fd/1

2

标准错误输出

/dev/stderr -> /proc/self/fd/2

重定向符号

描述

>

输出重定向,将内容覆盖至文件中

>>

输出重定向,将内容追加至文件中

<

输入重定向,将文件中的内容覆盖至标准输出

<<

输入重定向,将文件中的内容追加至标准输出

&

重定向绑定符号

> 将原本要打印到屏幕上的内容覆盖输出到文件中,文件中原来的内容会被覆盖,如果文件不存在,则会自动创建。

>> 将原本要打印到屏幕上的内容追加输入文件中,不会覆盖文件中原有的内容,在原有内容后面行追加,如果文件不存在,则会自动创建。

# 重定向输出符号
echo "welcome to lemon's page" > welcom.txt	  # 将内容写入指定文件中,覆盖原有内容
echo "welcome to lemon's page" >> welcome.txt # 将内容追加至文件末尾

# 标准错误输出,将错误信息写入文件中
adsfadsf 2>> 2.txt 	
asdfasdf &>> 2.txt  

# 标准正确输出,将显示的信息追加至文件中
ls >> 2.txt
ls 1>> 2.txt
ls &>> 2.txt		

  
cat 的第二种用法
cat > 2.txt << EOF	# << EOF 起始字符
>丈夫只手把吴钩	
>意气高于百尺楼
>一万年来谁著史
>三千里外欲封侯
>EOF				# >EOF 终止字符
$PATH 环境变量

更改$PATH的环境变量

  • 更改全局变量:修改全局配置文件 /etc/profile 对所有用户生效
  • 更改局部变量: 修改局部配置文件 /home/username/.bash_profile 只对特定用户生效
echo $PATH					# 显示系统的环境变量

# 修改全局环境变量
vim /etc/profile			# 编辑全局配置文件
PATH=$PATH:/mnt				# 将/mnt/目录添加到环境变量中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/143713.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VS Code二进制查阅插件Hex Editor(附ASCII表)

文章目录 Hex EditorASCII Hex Editor Hex Editor是一款强大的二进制读取插件&#xff0c;安装之后&#xff0c;可以直接把二进制文件拖入VS Code&#xff0c;然后点击仍然打开按钮&#xff0c;选择Hex Editor&#xff0c;就可以看到二进制数据了&#xff0c;效果如下 点击任何…

代码随想录算法训练营第五十三天 | LeetCode 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

代码随想录算法训练营第五十三天 | LeetCode 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和 文章链接&#xff1a;最长公共子序列、不相交的线、最大子数组和 视频链接&#xff1a;最长公共子序列、不相交的线、最大子数组和 1. LeetCode 1143. 最长公共子序列 1…

LTspice导入spice模型

一、创建原理图&#xff08;原件的样子&#xff09; 1、下载spice模型 2、用LTspice打开spice模型 3、选中模型名称&#xff0c;选择创建 4、可以自己画模型 导入后都是方块的&#xff0c;可以自己画模型的样子&#xff0c;所有引脚和模型名称都跟器件一样可以移动 da 画模…

微服务系列-使用 RestTemplate 的 Spring Boot 微服务通信示例

公众号「架构成长指南」&#xff0c;专注于生产实践、云原生、分布式系统、大数据技术分享。 概述 下面我们将学习如何创建多个 Spring boot 微服务以及如何使用 RestTemplate 类在多个微服务之间进行同步通信。 微服务通信有两种风格&#xff1a; 同步通讯异步通信 同步通…

【C++初阶(六)】类和对象(中)与日期类的实现

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

如何挑选RPA开发商?

其实&#xff0c;只要在这个行业调查的时间足够&#xff0c;不难发现里面有很多弯弯绕绕。 首先&#xff0c;RPA厂商虽然很多&#xff0c;但是优秀的RPA厂商就那么几家&#xff0c;它们都有各自擅长的领域&#xff0c;像金智维&#xff0c;就是在金融领域、政务领域&#xff1…

【Python3】【力扣题】268. 丢失的数字

【力扣题】题目描述&#xff1a; 【Python3】代码&#xff1a; 1、解题思路&#xff1a;哈希。元素去重&#xff0c;依次判断是否在0-n内&#xff0c;没有则返回。 知识点&#xff1a;set(...)&#xff1a;转为集合&#xff0c;集合中的元素不重复。 class Solution:def mis…

打破语言壁垒,实现全球商贸:多语言多商户跨境商城源码引领电商新潮流

随着全球化的不断深入&#xff0c;电子商务的蓬勃发展&#xff0c;传统的单语言电商模式已经无法满足日益多元化的市场需求。多语言多商户跨境商城源码&#xff0c;一种创新的电商解决方案&#xff0c;应运而生。它打破了语言和地域的限制&#xff0c;让全球的商家和消费者都能…

uniapp打包安卓app获取包名

uniapp打包安卓app获取包名的两种方式 1.uniapp云打包 这上面直接可以看到包名&#xff0c;可以修改&#xff0c;也可以在 manifest.json 文件中配置修改 package配置的就是包名&#xff0c;要确保唯一性 2.使用aapt工具获取 1.下载aapt工具&#xff0c;然后添加到环境变量…

tcpdump wireshark简单使用

tcpdump工作原理 tcpdump 是 Linux 系统中非常有用的网络工具&#xff0c;运行在用户态&#xff0c;本质上是通过调用 libpcap 库的各种 api 来实现数据包的抓取功能&#xff0c;利用内核中的 AF_PACKET 套接字&#xff0c;抓取网络接口中传输的网络包。查 看 tcpdump 的 手册…

驱动程序编进内核或则编成模块

驱动程序可以编进内核或则编成模块 驱动程序编成模块 打开/home/book/100ask_imx6ull-sdk/Linux-4.9.88/drivers/char/Kconfig文件&#xff0c;添加以下信息。 在/home/book/100ask_imx6ull-sdk/Linux-4.9.88在目录下使用make memuconfig命令查看配置菜单。 可以按/&#…

二叉树理论碎碎记

二叉树的种类 在刷题的过程中&#xff0c;我们主要关注两种主要形式&#xff1a;满二叉树和完全二叉树。 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点&#xff0c;并且度为0的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。如下图所示&#xff1a;这棵二叉…

【机器学习基础】机器学习的基本术语

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;后面的内容会越来越有意思~ &#x1f4a1;往期推荐&#xff1a; 【机器学习基础】机器学习入门&#xff08;1&#xff09; 【机器学习基…

ubuntu20.04有公网ip如何做端口映射?

一&#xff0c;有公网IP时如何做端口映射&#xff1f; 然后打开浏览器&#xff0c;输入192.168.2.1自己路由地址&#xff0c;进入路由器的控制面板&#xff08;如果不知道用户名和密码&#xff0c;可以在自己路由设备背面可见默认帐号密码&#xff09;。 点击转发规则&…

ESP32 Arduino实战基础篇-生成 PWM 信号

在本教程中,我们将向您展示如何使用 Arduino IDE 通过 ESP32 生成 PWM 信号。作为示例,我们将构建一个简单的电路,使用 ESP32 的 LED PWM 控制器对 LED 进行调光。我们还将向您展示如何同时在不同的 GPIO 上获取相同的 PWM 信号。 在继续本教程之前,您应该在 Arduino IDE 中…

pytorch-gpu(Anaconda3+cuda+cudnn)

文章目录 下载Anaconda3安装&#xff0c;看着点next就行比较懒所以自动添加path测试 cuda安装的时候不能改路径如果出现报错&#xff0c;关闭杀毒软件一直下一步就好取消勾选“CUDA”中的“Visual Studio Intergration”一直下一步即可测试安装成功 cudnn解压后将这三个文件夹复…

2023湖南省赛

​​​​​​连接 目录 A:开开心心233 B:Square Game F:necklace K:tourist 补题中&#xff0c;会给出大部分代码 A:开开心心233 签到题 &#xff0c;无论二分还是解方程还是直接for循环枚举都能直接通过啦 signed main() {ios_base::sync_with_stdio(0); cin.tie(0),co…

基于FPGA的图像RGB转HLS实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1计算最大值和最小值 4.2计算亮度L 4.3计算饱和度S 4.4计算色调H 5.算法完整程序工程 1.算法运行效果图预览 将FPGA结果导入到MATLAB显示效果&#xff1a; 2.算法运行软件版本 Vivado…

【史上最全】涵盖所有「存图方式」与「最短路算法」

题目描述 这是 LeetCode 上的 「1334. 阈值距离内邻居最少的城市」 &#xff0c;难度为 「中等」。 Tag : 「最短路」、「图」 有 个城市&#xff0c;按从 到 编号。 给你一个边数组 edges&#xff0c;其中 代表 和 两个城市之间的双向加权边&#xff0c;距离阈值是一个整…

ts+vite报错:找不到模块“/src/.../...”或其相应的类型声明

问题描述 vuets项目开发时&#xff0c;通过绝对路径引入模块&#xff0c;发现ts报错&#xff1a;找不到模块“/src/script/game”或其相应的类型声明。ts(2307)。但是项目能正常运行。 原因 由于并没有配置代表src&#xff0c;结果通过绝对路径引入还是报错&#xff0c;于是换…