本文摘自PHP中文网,作者步履不停,侵删。
常用命令
alias(别名)
在Linux基础知识系列之一中提到ls -l=ll,这个就是Linux中的别名,使用alias可以查看系统默认的别名。
1 | [root@hadoop001 ~]# alias alias cp= 'cp -i' alias egrep= 'egrep --color=auto' alias fgrep= 'fgrep --color=auto' alias grep= 'grep --color=auto' alias l.= 'ls -d .* --color=auto' alias ll= 'ls -l --color=auto' alias ls= 'ls --color=auto' alias mv= 'mv -i' alias rm= 'rm -i' alias which= 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
|
使用alias 别名=命令字符串就可以在当前session会话中生效,如果你想要一直生效,请在环境变量文件末中增添上述命令,有关环境变量的请看下一节。
1 | [root@hadoop001 ~]# alias ul= 'cd /usr/local' [root@hadoop001 ~]# alias alias cp= 'cp -i' alias egrep= 'egrep --color=auto' alias fgrep= 'fgrep --color=auto' alias grep= 'grep --color=auto' alias l.= 'ls -d .* --color=auto' alias ll= 'ls -l --color=auto' alias ls= 'ls --color=auto' alias mv= 'mv -i' alias rm= 'rm -i' alias ul= 'cd /usr/local' <-- 新增的 alias which= 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@hadoop001 ~]# ul [root@hadoop001 local]# pwd /usr/local
|
环境变量
全局环境变量 Linux中/etc/profile就是全局变量,无论你用哪个用户登录都可以使用该文件里的所有变量。承接上一节如何在全局环境变量中设置alias,在文件末尾增添以下代码。
1 | #env alias ul= 'cd /usr/local'
|
当然光增添代码是不够的,一定要使全局变量生效,使用以下命令均可
1 | . /etc/profile 或者 source /etc/profile
|
个人环境变量 只针对个人用户,存放的路径就在 ~/.bash_profile 中,打开该文件你会发现它其实还涉及到另一个文件 ~/.bashrc 。所以如果你要设置alias,也是在两个文件末尾添加上述代码。
1 | # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs #env alias rc= 'cd /root/xxx'
|
使其生效也是上述两种。
1 | . ~/.bash_profile . ~/.bashrc 或者 source ~/.bash_profile source ~/.bashrc
|
rm(删除)
一般都是使用 rm -rf 文件名,这种方式会强制删除文件或者文件夹,-f表示强制,-r表示可以文件夹。经常听到就是 rm -rf /*,也就是删库跑路。当然一般人都不会这样直接运行,但是可能会在shell脚本出现这种错,以下场景就导致这种情况。
1 | shell脚本可能会这样 xxxpath=xxx/xx ...(逻辑部分) rm -rf $xxxpath /* 这里就是个坑 如果一空值赋予给了xxxpath,那么不就成了rm -rf /* 所以在生产上凡是碰见rm -rf强制删除文件夹的,路径一定先判断存在不,不存在 就skip;就存在就rm
|
history(命令记录)
history -c 就是清除命令记录,当然个人用户登陆时,~/.bash_history也会记录命令,所以要清除的话,记得也把它给删掉。
用户/用户组命令集合
useradd 用户名==>添加用户,它的家目录就在/home/用户名
id 用户名==>显示用户和用户组信息
1 | [root@hadoop001 ~]# id dengdi uid=1001(dengdi) gid=1001(dengdi) groups=1001(dengdi) 用户ID 主组ID 所有组
|
cat /etc/passwd==>显示所有用户的信息
1 | dengdi(用户名):x:1001(用户id):1001(主组id)::/home/dengdi(家目录):/bin/bash(执行解释器) 如果/bin/bash变成/bin/false或者/sbin/nologin,这个用户就不能登陆了
|
userdel 用户名==>删除用户 删除用户,会把/etc/passwd记录删除; 同时假如该组没有其他用户,则删除该组 但是 家目录还在,但是用户和用户组 发生变革
1 | [root@hadoop001 ~]# ll /home/ total 0 drwx------. 3 centos centos 70 Jun 28 2017 centos drwx------ 2 1001 1001 59 Jun 17 23:48 dengdi
|
执行userdel然后再useradd
1 | [root@hadoop001 ~]# userdel dengdi [root@hadoop001 ~]# useradd dengdi useradd: warning: the home directory already exists. Not copying any file from skel directory into it. Creating mailbox file: File exists
|
来看看系统提示的skel directory是什么,我们ll -a /home/dengdi
1 | [root@hadoop001 ~]# ll -a /home/dengdi/ total 12 drwx------ 2 dengdi dengdi 59 Jun 17 23:48 . drwxr-xr-x. 4 root root 32 Jun 17 23:48 .. -rw-r--r-- 1 dengdi dengdi 18 Apr 11 2018 .bash_logout -rw-r--r-- 1 dengdi dengdi 193 Apr 11 2018 .bash_profile -rw-r--r-- 1 dengdi dengdi 231 Apr 11 2018 .bashrc
|
skel directory就是.bash*所有的隐藏文件,尝试将这些删除然后切换dengdi用户
1 | [root@hadoop001 ~]# ll -a /home/dengdi/ total 16 drwx------ 2 dengdi dengdi 79 Jun 18 00:06 . drwxr-xr-x. 4 root root 32 Jun 17 23:48 .. -rw------- 1 dengdi dengdi 5 Jun 18 00:06 .bash_history -rw-r--r-- 1 dengdi dengdi 18 Apr 11 2018 .bash_logout -rw-r--r-- 1 dengdi dengdi 193 Apr 11 2018 .bash_profile -rw-r--r-- 1 dengdi dengdi 231 Apr 11 2018 .bashrc [root@hadoop001 ~]# rm -rf /home/dengdi/.* rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘/home/dengdi/.’ rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘/home/dengdi/..’ [root@hadoop001 ~]# ll -a /home/dengdi/ total 0 drwx------ 2 dengdi dengdi 6 Jun 18 00:08 . drwxr-xr-x. 4 root root 32 Jun 17 23:48 .. [root@hadoop001 ~]# su - dengdi Last login: Tue Jun 18 00:07:26 CST 2019 on pts/0 -bash-4.2$
|
所以skel directory是决定你的[root@hadoop001 ~]还是-bash-4.2$ 6. groupadd 用户组==>新增用户组 usermod -a -G 用户组 dengdi==>添加用户组新成员为dengdi usermod -g 用户组 dengdi==>修改xxx为主组
1 | [root@hadoop001 ~]# groupadd bigdata [root@hadoop001 ~]# id ruoze uid=501(ruoze) gid=501(ruoze) groups=501(ruoze) [root@hadoop001 ~]# usermod -a -G bigdata ruoze [root@hadoop001 ~]# id ruoze uid=501(ruoze) gid=501(ruoze) groups=501(ruoze),502(bigdata) [root@hadoop001 ~]# usermod -g bigdata ruoze [root@hadoop001 ~]# id ruoze uid=501(ruoze) gid=502(bigdata) groups=502(bigdata) 这里重新指定主组之后,会丢失原来的主组
|
重新指定用户家目录
1 | usermod -d 路径 用户 或者 vi /etc/passwd
|
切换用户
1 | su ruoze 切换用户 当前路径不会变,就是切换之前的路径 su - ruoze 切换用户 且切到该用户的家目录,且执行环境变量文件生效
|
passwd 用户==>设置密码或者重置密码
更多Linux文章,请访问Linux教程栏目进行学习!
以上就是Linux基础知识系列之二的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
如何查看Linux系统版本
Linux查看是否安装jdk的方法
在不更换操作系统镜像的情况下如何扩大系统盘容量
如何对于历史Linux镜像的问题进行修复处理
虚拟机环境下Linux不能上网怎么办
Linux mv命令有什么用
如何搭建Linux服务器
Linux中的各目录如何设置分区大小
Linux压缩文件命令zip的用法
怎么删除Linux系统
更多相关阅读请进入《Linux》频道 >>
转载请注明出处:木庄网络博客 » Linux基础知识系列之二