linux命令(export,dpkg,git diff,git status,echo,apt)

export命令用于设置或显示环境变量

在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。

  • 什么是环境变量?
  • 环境变量:在其进程的子进程中继续有效
  • 自定义变量:无法延伸到子进程中

export就是将变量设置成环境变量

  • 环境变量的作用:
    当你想输入一个变量(例如date命令)而没有指定系统执行date的路径,linux就会求助于$PATH环境变量修改环境变量:export PATH= $ PATH:/home/roc/operation_tools这里是将/home/roc/operation_tools环境变量加入了进去(如果在添加变量的时候不添加export,即该变量为自定义变量)

举例说明:

hr@ZERO看你:~$ var1=one
hr@ZERO看你:~$ var2=two
hr@ZERO看你:~$ echo $var1
one
hr@ZERO看你:~$ echo $var2
two
hr@ZERO看你:~$ export var1
hr@ZERO看你:~$ bash
hr@ZERO看你:~$ echo $var1
one
hr@ZERO看你:~$ echo $var2

hr@ZERO看你:~$

var1被export设置成环境变量后,新启动一个bash子进程后,依然有效,而var2这个自定义变量是不能被继承到其子进程中的。

语法

export [-fnp][变量名称]=[变量设置值]

参数

  -f  代表[变量名称]中为函数名称。
  -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
  -p  列出所有的shell赋予程序的环境变量。

1.查询命令

hr@ZERO看你:~$ echo $SHELL
/bin/bash

2.列出所有环境变量

hr@ZERO看你:~$ export
declare -x HOME="/home/hr"
declare -x HOSTTYPE="x86_64"
declare -x LANG="C.UTF-8"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="hr"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"
declare -x NAME="ZERO看你"
declare -x OLDPWD
declare -x PATH="/usr/hcc_riscv32/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/Intel/WiFi/bin/:/mnt/c/Program Files/Common Files/Intel/WirelessCommon/:/mnt/f/bin:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Users/黄睿/.dnx/bin:/mnt/c/Program Files/Microsoft DNX/Dnvm/:/mnt/c/Program Files/Microsoft SQL Server/120/Tools/Binn/:/mnt/c/Program Files/Microsoft SQL Server/130/Tools/Binn/:/mnt/c/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/:/mnt/c/ProgramData/Microsoft/Windows/Start Menu/Programs/微信/weixin:/mnt/d/Microsoft VS Code/bin:/snap/bin"
declare -x PWD="/home/hr"
declare -x SHELL="/bin/bash"
declare -x SHLVL="2"
declare -x TERM="xterm-256color"
declare -x USER="hr"
declare -x WSLENV=""
declare -x WSL_DISTRO_NAME="Ubuntu-18.04"
declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share:/var/lib/snapd/desktop"

结果是当前用户下的bash的所有环境变量
3.比如我们常见的PATH:

hr@ZERO看你:~$ echo $PATH
/usr/hcc_riscv32/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/Intel/WiFi/bin/:/mnt/c/Program Files/Common Files/Intel/WirelessCommon/:/mnt/f/bin:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Users/黄睿/.dnx/bin:/mnt/c/Program Files/Microsoft DNX/Dnvm/:/mnt/c/Program Files/Microsoft SQL Server/120/Tools/Binn/:/mnt/c/Program Files/Microsoft SQL Server/130/Tools/Binn/:/mnt/c/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/:/mnt/c/ProgramData/Microsoft/Windows/Start Menu/Programs/微信/weixin:/mnt/d/Microsoft VS Code/bin:/snap/bin

Ubuntu下安装deb包命令

  1. 下载需要安装的deb包,输入以下命令安装: sudo dpkg -i package.deb
  2. 查看package.deb包中的内容:dpkg -c package.deb
  3. 从package.deb包中提取信息: dpkg -I package.deb
  4. 移除安装的deb包: dpkg -r package
  5. 完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件:dpkg -P package
  6. 列出deb包安装的所有文件清单,同时请看 dpkg -c 来检查一个 .deb 文件的内容:dpkg -L package
  7. 显示已安装包的信息。同时请看apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息:dpkg -s package
  8. 重新配制一个已经安装的包,如果它使用的是 debconf (debconf 为包安装提供了一个统一的配制界面):dpkg-reconfigure package

git diff

修改前代码:

* it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
 #include <linux/err.h>
 #include <linux/of.h>
 #include <linux/slab.h>

修改后的代码:

* it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
/********************is me add it*********************/
 #include <linux/err.h>
 #include <linux/of.h>
 #include <linux/slab.h>

运行git status查看我们工作区的修改的文件

ts@ts-OptiPlex-7070:~/bin/kernel/msm-4.14$ git status
头指针分离于 d8110c633b15
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:     drivers/mmc/core/mmc.c

git 告诉一个mmc.c文件修改了。但是没有告诉我们这个文件里 具体修改了哪些内容。此时git diff 就排上的用场。 他可以用于比较现在 工作区(未提交到暂存区) 与 暂存区具体的修改变化。
运行一下git diff:

ts@ts-OptiPlex-7070:~/bin/kernel/msm-4.14$ git diff
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 32619af7d915..53e2720f9c82 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -9,7 +9,7 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-
+/********************is me add it*********************/
 #include <linux/err.h>
 #include <linux/of.h>
 #include <linux/slab.h>

具体的变化就一目了然。
我们再来看一下运行 git diff HEAD

ts@ts-OptiPlex-7070:~/bin/kernel/msm-4.14$ git diff HEAD
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 32619af7d915..53e2720f9c82 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -9,7 +9,7 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-
+/********************is me add it*********************/
 #include <linux/err.h>
 #include <linux/of.h>
 #include <linux/slab.h>

两次的运行结果是一样的。
解释一下:

git diff:是查看 workspace(工作区) 与 index(暂存区) 的差别的。
git diff --cached:是查看index(暂存区) 与 local repositorty(本地仓库) 的差别的。
git diff HEAD:是查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)

echo 用于字符串的输出

格式:

$ echo string

类型:
1

$ echo "a test" //显示字符串a test
$ echo It is a test//双引号完全可以省略,与上面实例效果一致

2

$ read name  //显示变量
ok
$ echo "$name"
ok

3

$ echo -e "OK! \n" // -e 开启转义
OK!

$ 

4

$ echo "1111111" > file //显示结果定向至文件

5

$ echo '$name\"'//原样输出,用单引号表示不进行转义或取变量
$name\"

6

$ echo `date` 显示命令执行结果
2020年 10月 29日 星期四 11:41:53 CTS

Linux apt 提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令

apt 命令执行需要超级管理员权限(root)

语法

apt [options] [command] [package ...]
  • options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
  • command:要进行的操作。
  • package:安装的包名。

例子

列出所有可更新的软件清单命令:sudo apt update
更新指定的软件:sudo apt update <package_name>
安装指定的软件:sudo apt install <package_name>
安装多个软件包:sudo apt install <package_1> <package_2>
删除软件包:sudo apt remove <package_name>
查找软件包: sudo apt search <keyword>
列出所有已安装的包:apt list --installed
列出所有已安装的包的版本信息:apt list --all-versions
显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>

猜你喜欢

转载自blog.csdn.net/weixin_42271802/article/details/109201811