结束进程
kill PID号
ctrl+c,ctrl+z,ctrl+d区别
ctrl-c: ( kill foreground process ) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行;
ctrl-z: ( suspend foreground process ) 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程,而并非结束进程,用户可以使用使用fg/bg
操作恢复执行前台或后台的进程。fg
命令在前台恢复执行被挂起的进程,此时可以使用ctrl-z再次挂起该进程,bg
命令在后台恢复执行被挂起的进程,而此时将无法使用ctrl-z
再次挂起该进程; 一个比较常用的功能:正在使用vi编辑一个文件时,需要执行shell命令查询一些需要的信息,可以使用ctrl-z
挂起vi,等执行完shell命令后再使用fg
恢复vi继续编辑你的文件(当然,也可以在vi中使用!command方式执行shell命令,但是没有该方法方便)。
ctrl-d: ( Terminate input, or exit shell ) 一个特殊的二进制值,表示 EOF,作用相当于在终端中输入exit后回车;相当于关闭当前正在使用的终端
Linux添加路径到环境变量中
查看环境变量设置
echo $PATH
环境变量生存周期划分:
- 永久的:需要修改配置文件,变量永久生效
- 临时的:使用
export
命令声明即可,变量在关闭shell时失效
设置环境变量的3种方法:
-
针对所有用户
在/etc/profile文件中添加变量,用VI在文件/etc/profile文件中增加变量
export PATH=$PATH:/usr/local/sysbench/bin
注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效
-
针对当前用户而言
用VI在用户家目录下(cd ~)/(cd )的.bashrc文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
export PATH=$PATH:/usr/local/mysql/bin
-
针对当前shell(BASH)有效(临时的)
export PATH=$PATH:/usr/local/mysql/bin
查看当前用户
cat /etc/passwd # 查看用户
cat /etc/group # 查看用户组
w # 查看当前活跃的用户列表
#对于 cat /etc/passwd 的替换
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more
普通用户之间如何实现共享软件呢?
不在sudoers文件中,此事将被报告
解决方法其实有两种:
-
(1) 将zh这个用户直接加到sudoers这个文件中
由于sudoers的权限是440,所以在ubuntu下最好先切换到root用户比较保险。如果root用户从未使用过,需要先给root用户设置密码,命令如下。
sudo passwd root
su root chmod 660 /etc/sudoers vim /etc/sudoers
保存退出后,将sudoers的权限改回440即可,命令如下。
chmod 440 /etc/sudoers
前面的修改sudoers文件的办法比较繁琐,还有一定风险。想要更改sudoers文件也可以让一个有超级权限的用户执行如下命令,直接修改。其实前面的修改办法在某看来属于野路子,使用下面这条命令才是修改sudoers文件的正规途径(这种方法我没有测试过,不知道好不好用,也不知道怎么用)。
-
(2) 将zh这个用户加到sudo这个用户组里
第一种办法不是很好,在修改sudoers这个文件的过程中有一定的风险,我认为更好的办法是将zh用户加到sudo这个用户组里。命令如下所示,可以看到zh已经在sudo这个用户组里了
sudo usermod -a -G sudo zh cat /etc/group
通过修改sudoers文件或者加入sudo用户组都可以使普通用户能使用超级权限。如果在创建一个新用户的时候就希望这个用户能使用超级权限,可以在创建用户的时候就指定加入sudo用户组就好了,例如再创建一个zh2的用户,使用如下命令,这个用户从一出生就可以使用sudo了。
sudo useradd zh2 -m -G sudo
这个写的好啊