linux命令行里面,命令前对变量赋值

linux命令行里面,命令前对变量赋值,第1张

bash的语法中可以在命令前设置子进程环境变量,它影响且只影响子进程的环境变量,而对父进程没有影响
你的例子中,如果环境变量LANG=zh_CNgb2312
LANG=C yum grouplist
语句中LANG=C只对yum进程产生影响,运行完成后,用户环境变量LANG仍为原来的

按变量的生存周期来划分,Linux变量可分为两类,它们的修改方法如下:
(1)永久的:需要修改配置文件,变量永久生效。
常见的配置文件包括:
(1-1)/etc/profile:对所有用户生效;此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行;并从/etc/profiled目录的配置文件中搜集shell的设置
例如:编辑/etc/profile文件,添加CLASSPATH变量
# vi /etc/profile
添加一行:
export CLASSPATH=/JAVA_HOME/lib;$JAVA_HOME/jre/lib
修改后需要执行重新登录才能生效,也可以执行命令source /etc/profile来生效
(1-2)/etc/bashrc:对所有用户生效;为每一个运行bash shell的用户执行此文件当bash shell被打开时,该文件被读取
编辑方法如上,不再赘述
(1-3)~/bash_profile:仅会对当前用户有效;每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次
例如:编辑guok用户目录(/home/guok)下的bash_profile
$ vi /home/guok/bashprofile
添加如下内容:
export CLASSPATH=/JAVA_HOME/lib;$JAVA_HOME/jre/lib
修改后需要执行重新登录才能生效,也可以执行命令source /etc/profile来生效
(1-4)~/bashrc:仅会对当前用户有效;该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取
编辑方法如上,不再赘述
另外,~/bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系
综述,对上述文件修改,添加你需要的变量,在启动一个shell(终端,terminal)时,你所定义的变量均会生效的。
(2)临时的:使用export命令声明即可,变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,在关闭shell后失效,再打开新shell时就没有这个变量,需要使用的话还需要重新定义
在shell的命令行下直接使用[export 变量名=变量值] 定义变量
环境变量的查看
(1)使用echo命令查看单个环境变量。例如:
echo $PATH
(2)使用env查看所有环境变量。例如:
env
(3)使用set查看所有本地定义的环境变量。例如:
set
另外,unset可以删除指定的环境变量。
常用的环境变量
PATH 决定了shell将到哪些目录中寻找命令或程序
HOME 当前用户主目录
HISTSIZE 历史记录数
LOGNAME 当前用户的登录名
HOSTNAME 指主机的名称
SHELL 当前用户Shell类型
LANGUGE语言相关的环境变量,多语言可以修改此环境变量
MAIL 当前用户的邮件存放目录
PS1 基本提示符,对于root用户是#,对于普通用户是$

变量就是一个会变得量。。。
通俗点说就是,不同时间一个设置的值是可以更改的
比如
DIR=/ROOT
DIR=/TMP
DIR就是一个变量
他可以更改他的值

一暂时使用
亦即重启或注销后就失效了。
使用 PATH=$PATH:目录:目录 直接赋值。如export PATH=$PATH:/sbin。
二长期使用
在全局文件 /etc/profile 中或用户自定义文件 ~/bash_profile 中添加上述命令即可!

linux时间同步及计划任务执行、修改。
时间修改
date 月日时分年秒
date -s可以直接设置系统时间

比如将系统时间设定成1996年6月10日的命令如下。
#date -s 06/10/96
将系统时间设定成下午1点12分0秒的命令如下。
#date -s 13:12:00
时间同步
1首先需了解linux内一任务计划工具crontab
crontab可以定时去执行你要做的动作
直接用crontab命令编辑
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
一般使用crontab -e来编辑一个计划动作,编辑模式同vi编辑器相同
crontab内的基本编辑格式如下
command
分  时  日  月 周  命令
第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 /etc/initd/smb restart
上面的例子表示每晚的21:30重启smb 。
45 4 1,10,22 /etc/initd/smb restart
上面的例子表示每月1、10、22日的4 : 45重启smb 。
10 1 6,0 /etc/initd/smb restart
上面的例子表示每周六、周日的1 : 10重启smb 。
0,30 18-23 /etc/initd/smb restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启smb 。
0 23 6 /etc/initd/smb restart
上面的例子表示每星期六的11 : 00 pm重启smb 。
/1 /etc/initd/smb restart
每一小时重启smb
23-7/1 /etc/initd/smb restart
晚上11点到早上7点之间,每隔一小时重启smb
0 11 4 mon-wed /etc/initd/smb restart
每月的4号与每周一到周三的11点重启smb
0 4 1 jan /etc/initd/smb restart
一月一号的4点重启smb
2寻找一个网络时间服务器,比如一些国家授时中心
微软公司授时主机(美国)
timewindowscom
台警大授时中心(台湾)
asiapoolntporg
中科院授时中心(西安)
2107214544
网通授时中心(北京)
21915814130
3我们的电脑怎样去同步授时中心的时间
ntpdate asiapoolntporg
上面此命令就是去同步授时中心的时间
如果要让系统每天23:00去同步,这样可以使用上面所将的crontab设置计划同步
如下命令
#crontab -e
进入crontab编辑模式,使用方法同vi
输入 0 23 ntpdate asiapoolntporg >> /var/log/ntpdatelog
保存退出
这样就完成了你的系统到每天23:00去asiapoolntporg 同步时间,并将同步的日志放到/var/log/ntpdatelog 下面补充一下系统时间的设置
date -s可以直接设置系统时间
比如将系统时间设定成1996年6月10日的命令如下。
#date -s 06/10/96
将系统时间设定成下午1点12分0秒的命令如下。
#date -s 13:12:00
注意,这里说的是系统时间,是linux由 *** 作系统维护的。
在系统启动时,Linux *** 作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date
-s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。
#clock -w
这个命令强制把系统时间写入CMOS

/etc/profile和/etc/bashrc都是系统级别的,修改后可以在所有用户中起作用; /bash_profile、 /bashrc和~/bash_logout都是用户级别的,修改后只会作用于当前用户。

带profile的文件都是需要重新进入用户时才会生效,带bashrc的则是打开新的shell时生效;

执行顺序:/etc/profile -> (~/bash_profile | ~/bash_login | ~/profile) -> ~/bashrc -> /etc/bashrc -> ~/bash_logout

$ echo $HOME

$ export HELLO="Hello"

$ env

¥ set

readonly TEST

之前介绍的使用 export 命令设置环境变量是在命令行中直接执行,这样设置的环境变量在退出shell时就会失效。要想设置永久有效的环境变量就需要修改之前提到的文件。

PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>
你可以自己加上指定的路径,中间用冒号隔开
需要注意的是,最好不要把当前路径”/”放到PATH里,这样可能会受到意想不到的攻击。

特点:所有用户;永久有效;生效需要重新进入用户
root权限:

要想修改完文件后就立即生效,可以在命令行中执行:
# source /etc/profile
Source命令也称为“点命令”,也就是一个点符号()。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录


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

原文地址: https://outofmemory.cn/yw/13330134.html

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

发表评论

登录后才能评论

评论列表(0条)

保存