Mac命令行设置别名
本文介绍,Mac命令行设置别名
本地环境
macOS Sonoma 14.5 (23F79)
终端版本2.14 (453)
检查当前使用的shell类型
/bin/zsh
macx@MacXdeMac ~ % echo $SHELL
/bin/zsh
macx@MacXdeMac ~ % echo $0
-zsh设置配置文件
在 zsh 中,通常使用
~/.zshrc文件来配置别名和其他 shell 设置
vim ~/.zshrc
alias ll='ls -la'配置生效或重新打开shell
添加完别名后,记得运行以下命令重新加载配置文件,使更改生效; 或重新打开shell
source ~/.zshrcbash shell的其他配置文件
在 Bash shell 中,常用的配置文件有以下几个:
~/.bashrc:这是用户级别的配置文件,在每次启动交互式非登录 shell 时读取和执行。它通常用于设置别名、环境变量和函数等。~/.bash_profile:这是用户级别的配置文件,在每次启动登录 shell 时读取和执行。它通常用于初始化环境变量和运行其他配置脚本。如果该文件存在并且被读取,那么通常~/.bashrc会在其中被调用。~/.bash_logout:这是用户级别的配置文件,当用户退出登录 shell 时执行。/etc/bashrc(或/etc/bash.bashrc):这是系统范围的配置文件,在每次启动交互式 shell 时读取和执行。系统管理员可以在此处设置全局别名和环境变量等。/etc/profile:这是系统范围的配置文件,在每次启动登录 shell 时读取和执行。它通常用于设置全局环境变量和运行其他全局配置脚本。
通常,你会在
~/.bashrc或~/.bash_profile中设置个人的别名和其他配置。对于非登录 shell,例如在终端模拟器中启动的 shell,~/.bashrc更为常用,而~/.bash_profile常用于登录 shell,如通过 SSH 登录的远程会话。
用户开启root权限, 执行shell 不用输出密码
# 查询当前用户
whoami
macx
# 编辑权限
sudo vim /etc/sudoers
# 或者
sudo visudo
# 添加下列内容
# %admin ALL=(ALL) ALL
macx ALL = (ALL) NOPASSWD: ALLsudoers 文件简介
/etc/sudoers文件是配置sudo权限的主要配置文件,它控制用户和组在系统上执行命令时的权限。编辑该文件时,建议使用visudo命令来确保文件格式正确,因为visudo会进行语法检查,避免配置错误。以下是sudoers文件的主要配置格式和说明:
基本语法
用户权限配置:
user host = (run-as) commands- user:指定具有特权的用户,可以是用户名或
%groupname(组名,需加上%)。 - host:指定允许运行这些命令的主机名,通常使用
ALL来表示任意主机。 - run-as:指定允许以哪些用户身份运行命令,通常为
ALL或特定的用户名。 - commands:指定允许执行的命令列表,可以是命令路径或
ALL。
例子:
alice ALL=(root) /bin/kill, /bin/ls允许用户
alice在所有主机上以root身份运行/bin/kill和/bin/ls命令。- user:指定具有特权的用户,可以是用户名或
别名(Alias):
别名用于简化配置,可以定义用户、主机、运行身份和命令的别名。用户别名 (
User_Alias):User_Alias ADMINS = alice, bob主机别名 (
Host_Alias):Host_Alias WEBHOSTS = web1, web2运行身份别名 (
Runas_Alias):Runas_Alias OPERATORS = apache, nginx命令别名 (
Cmnd_Alias):Cmnd_Alias SHUTDOWN = /sbin/shutdown, /sbin/reboot
例子:
ADMINS WEBHOSTS=(OPERATORS) SHUTDOWN允许
ADMINS用户在WEBHOSTS主机上以OPERATORS身份运行SHUTDOWN命令。默认设置(Defaults):
Defaults env_resetDefaults关键字用于设置 sudo 的默认行为。env_reset是一个常用设置,它会清除大部分环境变量,以减少安全风险。NOPASSWD:
指定用户在运行命令时不需要输入密码:alice ALL=(ALL) NOPASSWD: /usr/bin/apt-get允许用户
alice在所有主机上以任何用户身份执行/usr/bin/apt-get命令而无需密码。
注释
# 用于添加注释。例如:
# 这是一个注释示例
# 允许所有用户在所有主机上以任何身份运行所有命令
ALL ALL=(ALL) ALL
# 定义用户别名和命令别名
User_Alias ADMINS = alice, bob
Cmnd_Alias NETWORKING = /sbin/ifconfig, /usr/bin/netstat
# 允许 ADMINS 用户在所有主机上以 root 身份运行 NETWORKING 命令
ADMINS ALL=(root) NETWORKING注意事项
- 权限:
/etc/sudoers文件的权限应设置为 0440(只读),只有 root 用户和sudo组的成员才有权限修改该文件。 - 安全:在设置命令时,要确保不授予不必要的特权,特别是不要将用户或命令设置为
NOPASSWD,除非绝对必要。
sudoers 配置错误,导致无法使用sudo命令
按以下步骤操作
- 系统设置
- 用户与群组
- 网络账户服务器 编辑
- 打开目录实用工具
- 右下角 --> 点此按钮以防止再次更改
- 编辑 --> 启用
Root用户 , 更改Root密码
打开终端,输入以下命令
macx@macx:~# su root
macx@macx:~# vim /etc/sudoers