linux centos 中 root 用户 vim 命令创建的.sh 脚本 显示颜色 ,但切换为普通用户就不显示颜色了

linux centos 中 root 用户 vim 命令创建的.sh 脚本 显示颜色 ,但切换为普通用户就不显示颜色了,第1张

在linux中切换账户可以使用命令su,不论是root账户切换成普通用户,还是反之。

用法:

使用root用户切换普通用户时直接 su - 普通用户名 就可以了;

使用普通用户切换至root用户时 su -或者 su - root 然后输入root密码就可以了;

在大都的linux的版本中,都可以使用su或者su -,但是su和su -还是有一定的差别的:

su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。

Linux运行sql脚本的具体 *** 作步骤如下:

1、使用shell工具登陆到安装postgresql的服务器,切换到postgres用户,postgresql默认的 *** 作用户,命令是:su - postgres,查看当前路径是/var/lib/psql,创建一个test.sql脚本文件,命令是:vim test.sql。

2、sql脚本内容是:create table test (id int not null primary key,name text)insert into test valus(1, 't1')

3、执行test.sql脚本,命令是:psql -f test.sql

这里是因为postgresql安装本机上,在第一步中我们切换到了postgres用户,因此这里默认就是postgres用户来 *** 作,不用带上用户名和密码。执行结果如下,可以看到有两个提示:

create table

insert 0 1

执行完成后,我们登入数据库,命令是:psql

4、进入psql交互式命令行后,我们执行两个查看命令:\d

可以看到表test确实已经创建成功,然后执行命令:\d test

可以看到表中字段是id和name,和我们创建语句中内容一样,说明第一条语句执行成功。

5、查看表中数据,命令是:select * from test

显示出来的值是1,t1,说明第二条执行语句也执行成功,说明test.sql脚本执行成功。

6、默认是postgres用户,本机 *** 作是,不需要用户和密码,现在我们来试试 *** 作远程linux服务器上的postgresql,也就是说执行本地的脚本文件,在远程服务器上创建表。如下面图中所示,命令是:psql -U test1 -h 192.168.1.194 -f test.sql,输入对应用户的密码。

7、登陆到这个远程服务器上,命令是:psql -U test -h 192.168.194

执行查看命令:\d,\d test

最后查询数据库:select * from test结果和上面都一致。

通过脚本切换工作目录,刚开始觉得很简单,直接在脚本中写一个cd语句就搞定了。

但是,其实不然。

执行脚本时候,只是在当前的shell下开了一个子进程,切换目录的 *** 作只对该进程中相关后续指令有效,但改变不了父进程的目录。

因此,当你写好了脚本,并且调用执行时,你的当前工作目录并没有变化。

那么,解决方案呢?

有两种方式解决(都是执行脚本的方式不同,脚本内容依然是一个cd语句。假定脚本为change.sh):

source change.sh

. ./change.sh

第一个点是bash的内部命令,表示在当前shell中运行

后面的“./change.sh”是命令的参数,即要执行的脚本(注:两点之间要有空格)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7578127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存