浅谈linux alias别名的设置

alias

命令: alias

功能说明:设置命令的别名

语法:alias [命令]=‘其他命令‘

例:

[[email protected] data]# alias

alias cp=‘cp -i‘

alias l.=‘ls -d .* --color=auto‘

alias ll=‘ls -l --color=auto‘

alias ls=‘ls --color=auto‘

alias mv=‘mv -i‘

alias net=‘cat /etc/sysconfig/network-scripts/ifcfg-eth0‘

alias rm=‘rm -i‘

alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘

说明:

①如果登录的用户1 想临时设置别名,用户1 只需执行alias [命令]=‘其他命令‘,该命令的别名只对用户1有效,对其他用户无效,并且用户1 只在该次登录有效,下次登录后失效;

例:

◆ yonghu1设置rm的别名,别名对yonghu1临时有效;

[[email protected] ~]$ alias rm=‘echo Do not use the rm command.‘

[[email protected] ~]$ rm /data/1.txt.ln

Do not use the rm command. /data/1.txt.ln

[[email protected] ~]$

◆ yonghu2进行rm命令的操作,rm别名无效;

[[email protected] ~]$ whoami

yonghu2

[[email protected] ~]$ rm /data/1.txt.ln 【yonghu2 执行rm,yonghu1设置的rm别名无效

rm: remove write-protected regular file `/data/1.txt.ln‘?

◆ yonghu1注销后重新登录,上次设置的rm别名已经无效

[[email protected] ~]$ logout

[[email protected] ~]# su - yonghu1

[[email protected] ~]$ whoami

yonghu1

[[email protected] ~]$ rm /data/1.txt.ln 【yonghu1 再次执行rm,上次登录设置的rm别名失效

rm: remove write-protected regular file `/data/1.txt.ln‘?

②如果用户1想让本次登录设置的别名在下次登录时还有效,就需要更该~/.bashrc 或者~/.bash_profile。方法是将alias [命令]=‘其他命令‘ 追加到~/.bashrc 或者~/.bash_profile末行,并执行source ~/.bashrc 或者source ~/.bash_profile使文件生效即可。(更改~/.bashrc或者~/.bash_profile只对当前单用户有效,对其他用户无效)

这里以修改~/.bashrc为例:

●yonghu1在~/.bashrc设置rm的别名,别名对yonghu1有效;

[[email protected] ~]$ echo "alias rm=‘echo Do not use the rm command.‘">>~/.bash

[[email protected] ~]$ tail -1 ~/.bashrc

alias rm=‘echo Do not use the rm command.‘

[[email protected] ~]$ source ~/.bashrc

[[email protected] ~]$ rm

Do not use the rm command.

●yonghu1重新登录,rm别名对yonghu1仍然有效,长期有效;

[[email protected] ~]$ logout

[[email protected] ~]$ rm

Do not use the rm command.

●yonghu2在执行rm的命令,别名对yonghu2有效;

[[email protected] ~]$ rm /data/1.txt.ln

rm: remove write-protected regular file `/data/1.txt.ln‘?

[[email protected] ~]$ rm

Do not use the rm command.

③如果设置的别名对所有用户都有效,就要修改环境变量文件/etc/profile 或者/etc/bashrc,方法是将alias [命令]=‘其他命令‘ 追加到/etc/profile 或者/etc/bashrc 末行,并对应执行source  /etc/profile 或者/etc/bashrc 使文件生效即可,该操作是永久生效的,但是一般用户没有权限修改,需要root权限。

这里以修改/etc/profile为例:

★yonghu2在执行修改/etc/profile的命令,将rm别名追加到/etc/profile,没有权限;

[[email protected] root]$ whoami

yonghu2

[[email protected] root]$ echo "alias rm=‘echo Do not use the rm command.‘">>/etc/profile

bash: /etc/profile: Permission denied

......

★超级用户root在执行修改/etc/profile的命令,将rm别名追加到/etc/profile,rm别名生效,永久生效;

[[email protected] ~]# whoami

root

[[email protected] ~]# echo "alias rm=‘echo Do not use the rm command.‘">>/etc/profile

[[email protected] ~]# tail -1 /etc/profile

alias rm=‘echo Do not use the rm command.‘

[[email protected] ~]# source /etc/profile

[[email protected] ~]# rm

Do not use the rm command.

......

★用户2在执行rm命令,rm别名也是生效的;

[[email protected] ~]$ whoami

yonghu2

[[email protected] ~]$ rm

Do not use the rm command.

[[email protected] ~]$

★用户重新登录,然后再次执行rm命令,别名也是生效的;

[[email protected] ~]$ rm

Do not use the rm command.

[[email protected] ~]$

说明:

1、/etc/bashrc 和  ~/.bashrc 区别就在于/etc/bashrc 设置相当于国法,设置给全系统;~/.bashrc是家规,设置给单用户使用;

2、/etc/profile 和  ~/.bash_profile区别就在于/etc/profile 设置相当于国法,设置给全系统;~/.bash_profile 是家规,设置给单用户使用;

3、单用户设置包括超级用户root,root设置~/.bashrc 或者~/.bash_profile只对root有效;

4、至于/etc/profile 与/etc/bashrc的区别在以后再细谈,这里暂时可以认为都是国法,效果一样;

5、至于~/.bash_profile 与~/.bashrc的区别在以后再细谈,这里暂时可以认为都是家规,效果一样;

时间: 2024-11-09 06:44:35

浅谈linux alias别名的设置的相关文章

浅谈Linux中的信号机制(二)

首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Linux内核源码评头论足.以后的路还很长,我还是一步一个脚印的慢慢走着吧,Linux内核这座山,我才刚刚抵达山脚下. 好了,言归正传,我接着昨天写下去.如有错误还请各位看官指正,先此谢过. 上篇末尾,我们看到了这样的现象:send进程总共发送了500次SIGINT信号给rcv进程,但是实际过程中rcv只接受/处理了1

Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NIO https://blog.csdn.net/column/details/21963.html 部分代码会放在我的的Github:https://github.com/h2pl/ 浅谈 Linux

浅谈Linux下Makefile编写

浅谈Linux下Makefile的编写 前言:本文简要介绍Makefile文件的编写规范,结合具体项目中的应用进行讲解. 具体代码地址: https://github.com/AnSwErYWJ/DogFood/blob/master/Makefile 简介 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作.而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关

浅谈linux内核栈(基于3.16-rc4)

在3.16-rc4内核源码中,内核给每个进程分配的内核栈大小为8KB.这个内核栈被称为异常栈,在进程的内核空间运行时或者执行异常处理程序时,使用的都是异常栈,看下异常栈的代码(include/linux/sched.h): 1 union thread_union { 2 struct thread_info thread_info; 3 unsigned long stack[THREAD_SIZE/sizeof(long)]; 4 }; THREAD_SIZE值为8KB,因此内核为进程的异常

[]转帖] 浅谈Linux下的五种I/O模型

浅谈Linux下的五种I/O模型 https://www.cnblogs.com/chy2055/p/5220793.html  一.关于I/O模型的引出 我们都知道,为了OS的安全性等的考虑,进程是无法直接操作I/O设备的,其必须通过系统调用请求内核来协助完成I/O动作,而内核会为每个I/O设备维护一个buffer.如下图所示: 整个请求过程为: 用户进程发起请求,内核接受到请求后,从I/O设备中获取数据到buffer中,再将buffer中的数据copy到用户进程的地址空间,该用户进程获取到数

浅谈linux中shell变量$#,[email&#160;protected],$0,$1,$2,$?的含义解释

浅谈linux中shell变量$#,[email protected],$0,$1,$2,$?的含义解释 下面小编就为大家带来一篇浅谈linux中shell变量$#,[email protected],$0,$1,$2的含义解释.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$

(转)浅谈 Linux 内核无线子系统

前言 Linux 内核是如何实现无线网络接口呢?数据包是通过怎样的方式被发送和接收呢? 刚开始工作接触 Linux 无线网络时,我曾迷失在浩瀚的基础代码中,寻找具有介绍性的材料来回答如上面提到的那些高层次的问题. 跟踪探索了一段时间的源代码后,我写下了这篇总结,希望在 Linux 无线网络的工作原理上,读者能从这篇文章获得一个具有帮助性的概览. 1.全局概览 在开始探索 Linux 无线具体细节之前,让我们先来把握一下 Linux 无线子系统整体结构.如图1,展示了 Linux 无线子系统各个模

浅谈Linux系统中的7种运行级别及其原理

浅谈Linux系统中的7种运行级别 Linux系统7个运行级别(runlevel): 运行级别0: 系统停机状态,系统默认运行级别不能设为0,否则不能正常启动. 运行级别1: 单用户工作状态,root权限,用于系统维护,禁止远程登陆. 运行级别2: 多用户状态(没有NFS). 运行级别3: 完全的多用户状态(有NFS),登陆后进入控制台命令行模式. 运行级别4: 系统未使用,保留. 运行级别5: X11控制台,登陆后进入图形GUI模式. 运行级别6: 系统正常关闭并重启,默认运行级别不能设为6,

浅谈Linux的远程连接

大部分情况下,我们不可能每台服务器都配置一台显示器,也不可能时刻在服务器旁边,但是我们要操作服务器,就要使用远程连接了,本篇就浅谈下如何进行远程连接Linux服务器. 环境介绍:vmware中Centsos6.5 x86_64一台,防火墙及Selinux已关闭. 一.最简单的工具 Putty 下载安装后直接运行,输入IP与保存名称即可 输入账号密码 二.最简洁的工具 Xshell 下载后直接运行,输入 ssh ip,然后输入账号.密码即可 三.最强大的工具 SecurtCRT 下载后解压,将Se