uname 命令:显示系统信息
uname
命令的英文全称即 Unix name。用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。如果未指定任何选项,其效果相当于执行 uname -s
命令,即显示系统内核的名字。
常用参数
参数 | 功能 |
---|---|
-a | 显示系统所有相关信息 |
-m | 显示计算机硬件架构 |
-n | 显示主机名称 |
-r | 显示内核发行版本号 |
-s | 显示内核名称 |
-v | 显示内核版本 |
-p | 显示主机处理器类型 |
-o | 显示操作系统名称 |
-i | 显示硬件平台 |
sudo 命令:以系统管理者的身份执行指令
sudo
是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。
sudo
允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo
支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo
一起工作。默认的安全策略记录在 /etc/sudoers
文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo
命令时要求用户输入自己账号的密码。如果验证失败,sudo
命令将会退出。
常用参数
参数 | 功能 |
---|---|
-v | 因为 sudo 在第一次执行时或是在 N分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码 |
-k | 强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟) |
-b | 将要执行的指令放在背景执行 |
-p | prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称,%h 会显示主机名称 |
-s | 执行环境变数中的SHELL 所指定的shell ,或是 /etc/passwd 里所指定的 shell |
-u | 更改为其他用户执行指令 |
参考实例
sudo su # 切换到root用户
sudo -u userb ls -l # 执行用户userb的指令
sudo !! # 以root权限执行上一条命令
sudo -l # 列出目前的权限
su 命令:切换用户
su
命令用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序。
普通用户切换到root用户,可以使用 su --
或 su root
,但是必须输入 root 密码才能完成切换。root 用户切换到普通用户,可以使用 su username
,不需要输入任何密码即可完成切换。
常用参数
参数 | 功能 |
---|---|
-c或–command | 执行完指定的指令后,即恢复原来的身份 |
-f或–fast | 适用于csh与tsch,使shell不用去读取启动文件 |
-l或–login | 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量 |
-m,-p或–preserve-environment | 变更身份时,不要变更环境变量 |
-s或–shell | 指定要执行的shell |
–help | 显示帮助信息 |
–version | 显示版本信息 |
参考实例
su linuxcool # 切换到linuxcool用户,但环境变量仍然是root用户的
su -l linuxcool # 切换到linuxcool用户,并改变为linuxcool用户环境变量
su root -f # 变更帐号为 root 并传入 -f 参数给新执行的 shell
export 命令:查看与配置shell变量或函数
export
命令用于将 shell 变量输出为环境变量,或者将 shell 函数输出为环境变量。
一个变量创建时,它不会自动地为在它之后创建的 shell 进程所知。而命令 export
可以向后面的 shell 传递变量的值。当一个 shell 脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export
命令可以用于传递一个或多个变量的值到任何后继脚本。
常用参数
参数 | 功能 |
---|---|
-f | 代表[变量名称]中为函数名称 |
-n | 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中 |
-p | 列出所有的shell赋予程序的环境变量 |
参考实例
export -p # 列出所有环境变量
export CUDA_PATH # 定义环境变量
export PATH=$PATH:/usr/local/cuda/bin # 定义cuda的环境变量并赋值,$表示引用环境变量值,:用于分隔这些值
unset 命令:删除指定的shell变量或函数
unset
命令用于删除已定义的 shell 变量(包括环境变量)和 shell 函数。unset
命令不能够删除具有只读属性的 shell 变量和环境变量。
常用参数
参数 | 功能 |
---|---|
-f | 仅删除函数 |
-v | 仅删除变量 |
参考实例
unset -v all_proxy # 删除变量all_proxy及其对应的值