一. 启动,关机,登入,登出相关命令
<login> 登录
<logout> 登出
<exit> 登出
<shutdown> 停止系统
<halt> 停止系统
<reboot> 重启动
<poweroff> 切断电源
<sync> 把内存里的内容写入磁盘
<lilo> 安装lilo启动管理程序
<grub> 安装lilo启动管理程序
二. Shell相关命令
<chsh> 切换Shell
<history> 显示命令履历
<alias> 设置命令别名
<unalias> 取消命令别名
<which> 显示命令所在位置
<type> 查询命令种类
<echo> 显示字符串或者变量内容
<set> 设置/显示Shell变量
<printenv> 显示环境变量
<export> 设置环境变量
<env> 设置临时环境变量
<unset> 释放环境变量
<setenv> 设置环境变量
<unsetenv> 释放环境变量
<source> 执行文件当中的命令
<man> 查询命令手册
<info> 查询超文本命令手册
<whatis> 显示命令简介
<apropos> 通过关键字查询手册
三. 用户管理相关命令
<su> 切换到其他用户
<useradd> 追加用户
<adser> 追加用户
<userdel> 删除用户
<usermod> 修改用户设置
<chfn> 修改用户私人信息
<groupadd> 追加组
<groupdel> 删除组
<groupmod> 修改组设置
<passwd> 更改密码
<whoami> 显示用户名
<logname> 显示登录用户帐号
<users> 显示所有登录用户信息
<who> 查询登录用户信息
<w> 查询登录用户信息
<id> 显示指定用户的ID信息
<groups> 显示指定用户的所属组
<finger> 显示指定用户的个人信息
<mesg> 开关与他人收发消息
<write> 给其他用户发消息
<wall> 给所有用户发消息
<talk> 和其他用户聊天
四. 系统消息相关命令
<date> 显示/设置当前时间
<uptime> 显示系统运行时间
<arch> 显示机器的核心构架(如i386)
<uname> 显示操作系统信息
<tty> 显示终端名
<last> 显示登录/登出在履历
<lastb> 显示非法登录信息
<mpkeys> 显示当前键盘配置
<loadkeys> 变更键盘配置
<df> 查询磁盘使用信息
<> 查询磁盘使用信息
<dmesg> 显示系统启动消息
<script> 保存输入输出到文件
五. 文件操作相关命令
<ls> 显示文件列表
<tree> 显示目录树
<pwd> 显示当前路径
<cd> 更改当前路径
<pushd> 追加路径到目录堆栈
<popd> 从目录堆栈删除路径
<dirs> 显示目录堆栈的内容
<mkdir> 创建路径
<rmdir> 删除路径
<cp> 复制文件/目录
<rm> 删除文件/目录
<mv> 移动文件/目录,修改文件名
<chown> 更改文件/目录的所有者
<chgrp> 修改文件/目录的所有组
<chmod> 修改文件/目录的权限
<touch> 更改文件时间
<ln> 建立文件/目录链接
<find> 查找文件
<whereis> 显示文件存在的路径名
<file> 查询文件种类
<size> 查询文件大小
六. 文件编辑相关命令
<cat> 显示文件内容
<tee> 输出到文件和屏幕
<more> 分屏显示文件内容
<less> 分屏显示文件内容
<head> 显示文件头部内容
<tail> 显示文件尾部内容
<fold> 折叠显示长行
<sort> 排列文件的行
<cmp> 比较文件内容
<diff> 显示文件差异
<nkf> 更改日语文件编码
<dd> 变更文件之后复制
<wc> 统计文本单词数,文件大小等
<split> 分割文件
<paste> 以行连接文件
<join> 以字段连接文件
<grep> 查询文字
<uniq> 过滤重复部分显示文件内容
<tr> 替换文字
<sed> 替换文字
七. 压缩/解压缩相关命令
<ar> 压缩/解压缩文件
<tar> 压缩/解压缩文件
<compress> 压缩/解压缩文件
<uncompress> 解压缩
<gzip> 压缩/解压缩文件
<gunzip> 解压缩
<zcat> 显示压缩文件的内容
<lha> 压缩/解压缩文件
<uuencode> 把二进制文件编码为文本文件
<uudecode> 把经过编码的文本文件还原为二进制文件
八. MS-DOS工具集[mtools]命令
<mdir> 显示文件列表
<mcd> 改变当前目录
<mmd> 新建目录
<mrd> 删除目录
<mdeltree> 删除目录树
<m> 复制文件
<mdel> 删除文件
<mmove> 移动文件
<mren> 更改文件或目录名
<mattrib> 修改文件属性
<mtype> 显示文件内容
<m> 查询文件或目录大小
<minfo> 显示磁盘信息
<mformat> 以MS-DOS方式格式化磁盘
<mlabel> 设置磁盘标签
九. 控制外部设备相关命令
<mount> mount上设备
<umount> 解除已经mount上的设备
<eject> 弹出(CD/DVD等)
<fdformat> 格式化软盘
<fdisk> 配置/显示硬盘分区
<mkfs> 格式化磁盘分区
<fsck> 检查/修复磁盘错误
<lpr> 打印到打印机
<lprm> 中断打印任务
<lpq> 显示打印任务的状态
<lpc> 管理/控制打印任务
<ifconfig> 显示/设定NIC配置
十. 进程及任务管理相关命令
<ps> 显示正在运行的进程
<jobs> 显示后台运行任务
<fg> 把任务切换到前台
<bg> 把任务切换到后台
<kill> 中止进程或任务
<killall> 中止进程或任务
<wait> 等待进程或任务的结束
<at> 设置定时执行任务
<atq> 显示尚未执行的任务
<atrm> 删除定时执行任务
<batch> 在系统负荷减轻的时候执行任务
<nice> 改变优先度并执行任务
<nohup> 在后台执行任务,Logout之后也不退出
<sleep> 休眠一定的时间
十一. 网络管理相关命令
<netstat> 显示当前网络连接状况
<route> 显示/设置路由
<host> 显示网络主机情况
<hostname> 显示/设置当前主机的名字
<ping> 确认和远程机器的连接情况
<traceroute> 显示路由信息
<rwho> 查询网上机器的登陆用户
<ruptime> 查询网上机器的系统运行时间
<rlogin> 登陆到远程机器
<telnet> 用telnet登陆到远程机器
<rsh> 给远程机器发送命令
<rcp> 在远程机器之间复制文件
<mail> 收取邮件
<sendmail> 发送邮件
<mailq> 确认邮件队列
<ftp> 用ftp传输文件
十二. 其他命令
<cal> 显示日历
<clear> 清屏
<gcc> 编译C语言代码
<as> 汇编
<bc> 计算
<rpm> Redhat的包管理
<dpkg> Debian的包管理
<installpkg> Slackware的包安装(删除命令则是removepkg)
<XF86Setup,turboxfg,Xconfigurator> 配置 X 服务器
<startx> 启动 X-Window 系统
附:组合命令
重定向,如
$ ls -l /bin > ls-output
$ more ls-output
管道命令,如
$ cat file1 file2 | sort | uniq
经常被用于管道的命令
awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wc
㈡ 如何在windows上运行使用linux下面的命令
让windows cmd也用上linux命令
使用Linux时间长了 还是对Linux强大的命令折服,虽说Windows中doc肯定也会有命令,但是感觉一个是熟悉程度不佳,另一个就是不够强大。所以想在Windows下使用Linux命令,进行一些问题处理
我遇到一个在Windows下想看下文件的格式,因为是别人从数据库中导出的大文件,上几个G的文件,打开就报内存不够,要不就是txt好久无响应。
有这个想到了Linux的more命令 由此想装个支持Linux命令的工具(当然另外的解决办法也有装一个Linux虚拟机,但是还需要再上传,不是好的解决办法)
先,下载Cygwin安装程序
安装:
1. 双击setup.exe
2. 按照安装提示“下一步”
3. 选择从“互联网”安装:
4. 选择安装的路径,一般是C:\Cygwin,选择本地临时目录,用于存放下载的软件;选择您连接互联网的方式,一般选“直接连接”就可以了。
5. 选择下载源.
6. 根据安装提示,选择需要安装的软件包,完成安装。
使用
1. 双击桌面的Cygwin图标,即可启动Cygwin里的Bash。
2. 或者,你可将C:/Cygwin/bin加到%PATH%当中,您就可以直接在cmd.exe里面使用Linux命令了,比如less, cat, wc , wget
3. 如果您有一个Bash脚本,您可以直接用C:/Cygwin/bin/bash.exe X:/scripts/Monitor.sh的形式调用。
/////////////////////////////////////////////////////
(gnuwin32首页:http://gnuwin32.sourceforge.net/)
1.先下载wget,下下来放到C:\WINDOWS下,就能像linux下一样直接用了
2.本地语言支持库LibIntl(以下软件包用wget下载比较好,迅雷等下载器对付http\ftp不稳定):
3.字符编码切换库
4.Linux核心命令库:
5.安装说明:
1)解压文件coreutils-5.3.0-bin.zip到C:\WINDOWS\coreutils-5.3.0-bin
2)解压文件libiconv-1.9.2-1-bin.zip,并且把目bin下的文件复制到C:\WINDOWS\coreutils-5.3.0-bin\bin下
3)解压文件libintl-0.14.4-bin.zip,并且把目bin下的文件复制到C:\WINDOWS\coreutils-5.3.0-bin\bin下
4)我的电脑上右键--属性--高级环境变量
在环境变量Path中增加最后一句";C:\WINDOWS\coreutils-5.3.0-bin\bin"(不包含引号,别把原来的删了)
装好后有以下命令可用了(“[”是什么命令,没见过。。):
[,basename,cat,chgrp,chmod,chown,chroot,cksum,comm,cp,csplit,cut,date,dd,
df,dir,dircolors,dirname,,echo,env,expand,expr,factor,false,fmt,fold,
gdate,gecho,ginstall,gln,gmkdir,grmdir,groupsgsort,head,hostid,hostname,id,
install,join,kill,link,ln,logname,ls,md5sum,mkdir,mkfifo,mknod,mv,nice,
nl,nohup,od,paste,pathchk,pinky,pr,printenv,printf,ptx,pwd,readlink,rm,
rmdir,seq,setuidgid,sha1sum,shred,sleep,sort,split,stat,stty,su,sum,sync,
tac,tail,tee,test,touch,tr,true,tsort,tty,uname,unexpand,uniq,unlink,
uptime,users,vdir,wc,who,whoami,yes
6.缺少的命令:
1)
grep
wget -c http://downloads.sourceforge.net/gnuwin32/grep-2.5.4-bin.zip
解压后把bin下的三个文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin,可见egrep、fgrep也有了
现在grep还不能用,需要几个dll文件
wget -c http://gnuwin32.sourceforge.net/downlinks/pcre-bin-zip.php
解压后把bin下的几个文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin
2)
tree(gnuwin32.sourceforge.net的都要用wget下,我用其他下载器下载未遂)
wget -c http://downloads.sourceforge.net/gnuwin32/tree-1.5.2.2-bin.zip
解压后把bin下的tree.exe放到C:\WINDOWS\coreutils-5.3.0-bin\bin下
3)
file
wget -c http://downloads.sourceforge.net/gnuwin32/file-5.03-bin.zip
解压把bin下的两个文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin
把share\misc目录放到C:\WINDOWS\coreutils-5.3.0-bin\share下
wget -c http://gnuwin32.sourceforge.net/downlinks/filetype-bin-zip.php
解压把bin下的两个文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin
然后下载file依赖的两个dll
wget -c http://gnuwin32.sourceforge.net/downlinks/regex-bin-zip.php
解压,把bin下文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin下
wget -c http://gnuwin32.sourceforge.net/downlinks/zlib-bin-zip.php
解压,把bin下文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin下
4)
find、locate和xargs
wget -c http://gnuwin32.sourceforge.net/downlinks/fintils-bin-zip.php
解压,把bin下文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin下,它们依赖的dll在前面装libint跟libiconv时装好了
5)less
wget -c http://ncu.dl.sourceforge.net/sourceforge/gnuwin32/less-394-bin.zip
解压,把bin下文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin下
6)
gzip,bzip2,tar
wget -c http://gnuwin32.sourceforge.net/downlinks/gzip-bin-zip.php
wget -c http://gnuwin32.sourceforge.net/downlinks/bzip2-bin-zip.php
wget -c http://gnuwin32.sourceforge.net/downlinks/tar-bin-zip.php
解压,把bin下文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin下
7)
which
wget -c http://downloads.sourceforge.net/gnuwin32/which-2.20-bin.zip
解压,把bin下文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin下
8)
make
wget -c http://gnuwin32.sourceforge.net/downlinks/make-bin-zip.php
㈢ Linux系统与设置命令
在前面的两个章节中,我们主要介绍了Linux基本知识和虚拟机的安装,从当前章节开始,我们一起学习下Linux的基本命令,在当前章节,我们先简单的学习下一些系统的基本命令,慢慢的由浅入深,在后面的章节中我们将学习其他的命令比如文件操作、备份压缩等
命令我们可以理解成在Windows中我们常常为了查看ip输入的ipconfig,在Linux中也有很多的命令,比如操作目录、文件、网络、磁盘等等命令
使用者权限:管理员用户
参数说明:
添加用户czbk(传智播客的首拼)执行
我们使用useradd命令创建了一个用户czbk
useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。
执行如下
由上图我们发现,我们在使用useradd新增用户的时候,出现了权限不足,也就是说我们使用用户itcast没有创建用户的权限。
我们通过管理员账号root进行创建,首先我们从控制台中切换到root
在 密码的地方输入我们的root密码【root】即可进入到root用户下。
我们在root下继续创建czbk用户
以下是useradd常用选项
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用
使用者权限:管理员用户
指定和修改用户口令的Shell命令是 passwd 。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
可使用的选项:
设置当前用户的口令
此处我们设置密码和itcast账号密码一致,为【Itheima888】
usermod 命令通过修改系统帐户文件来修改用户账户信息
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
使用者权限:管理员用户
修改已有用户的信息使用 usermod 命令,其格式如下:
下面命令将用户czbk用户名修改成czbk2019
以下是usermod常用选项
假如我们其中一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
使用者权限:管理员用户
删除一个已有的用户账号使用 userdel 命令,其格式如下:
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件
此命令删除用户czbk2019
成功删除用户czbk2019
以下是userdel常用选项
引子:
为了方便用户管理, 提出了 组 的概念, 如下图所示
比如新建账户【张三】,那么它默认对应的组就是张三
一个用户可以有一个或者多个组
假如说(如上图),我们在企业级开发过程中,我们有多个组,其中一个开发组对应三个账户,张三、李四、王五、如果就像上面提到的,一个用户默认对应一个组,那么三个账户张三、李四、王五就有了三个不同的组,如果大家都操做一个文件,在进行权限分配的时候,就要对不同的三个组进行授权,显然这样是不合理的,因为太过繁琐。
所以,才有了组(新建组)的概念,我们把张三、李四、王五统一放到【开发组】,在对文件授权的时候,我们只对【开发组】进行授权由此,这样的话【张三、李四、王五】都有相等的权利操作了。
新增一个用户组(组名可见名知意,符合规范即可),然后将用户添加到组中
使用者权限:管理员用户
使用的选项有:
新增用户组czbk-it
上面的命令向系统中增加了一个新组czbk-it,新组的组标识号是在当前已有的最大组标识号的基础上加1
以下是groupadd常用选项
使用者权限:管理员用户
常用的选项有:
上面的命令将组czbk-it的组名修改为czbk-it-2019。
以下是groupmod常用选项
在查询用户所属的用户组前,我们先增加一个用户ituser-groups
要查询一个用户属于哪个用户组,使用groups命令,其格式如下
查询用户ituser-groups属于某个用户组,执行groups命令
由此可见,ituser-groups用户属于用户组ituser-groups(用户组默认与用户名一样)
使用者权限:管理员用户
要删除一个已有的用户组,使用groupdel命令,其格式如下
删除czbk-it-2019用户组
删除成功
以下是groupdel常用选项
1、创建一个新的组,并添加组ID(需要切换到root用户)
执行效果如下
2、创建3个用户(需要切换到root用户)
3、将上面三个用户添加到组itbj2020group
我们通过passwd命令将三个用户添加到组
什么是gpasswd:
gpasswd 是 Linux 下工作组文件 /etc/group 和 /etc/gshadow 管理工具,用于将一个用户添加到组或者从组中删除。
语法
将上面的三个用户使用gpasswd添加到组(需要切换到root用户)
执行如下
查看用户组下所有用户(所有用户)
执行效果如下(或者直接打开/etc/group文件都可以)
由上图可知:三个用户全部都加入到了itbj2020group组。
date 可以用来显示或设定系统的日期与时间
使用者权限:所有用户
语法如下:
参数
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息
1、设置时间
用 -s选项可以设置系统时间,如下:
2、显示时间
协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。。
(2)GMT
即 格林尼治 平太阳时间,是指格林尼治所在地的标准时间,也是表示地球自转速率的一种形式
外文名: Universal Time
其他外文名 G.M.T.(Greenwich Mean Time)
(3)CST
北京时间 (中国国家标准时间) 北京时间是中国采用国际时区东八时区的区时作为标准时间 。 北京时间并不是北京(东经116.4°)的地方时间,而是东经120°的地方时间,故东经120度地方时比北京的地方时早约14分半钟。因为北京处于国际时区划分中的东八区,同格林尼治时间(世界时)整整相差8小时(即北京时间=世界时+8小时),故命名为“北京时间”。东八区包括的范围从东经112.5°到东经127.5°,以东经120°为中心线,东西各延伸7.5°,总宽度为15°的区域。 而中国幅员辽阔,东西相跨5个时区(即东五区、东六区、东七区、东八区、东九区5个时区)授时台必须建在地理中心地带,从而也就产生了长短波授。“北京时间”与“北京当地时间”是两个概念, “北京时间”的发播不在北京,而在陕西蒲城(处于东七区)
(4)东八区
东八区( UTC / GMT +08:00)是比 世界协调时间 (UTC)/ 格林尼治时间 (GMT)快8小时的时区,理论上的位置是位于 东经 112.5度至127.5度之间,是东盟标准的其中一个候选时区。当格林尼治标准时间为0:00时,东八区的标准时间为08:00
<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" cid="n486" mdtype="fences" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); position: relative !important; background-position: inherit; background-repeat: inherit;">总结:
上面提到了很多知识:即UTC/GMT/CST/东八区
总结一下就是,北京时间(中国国家标准时间CST)采用东八区区时,即:
协调世界时(UTC)+8 / 格林尼治时间(GMT)+8
也就是说+8后的时间才是北京时间</pre>
logname命令用于显示用户名称。
执行logname指令,它会显示目前用户的名称
语法为如下:
参数 :
显示登录账号的信息
su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
语法如下:
变更帐号为 root 并在执行 ls 指令后退出返回原使用者
切换到root
这样的话,我们就进入到了root用户下。
id命令用于显示用户的ID,以及所属群组的ID。
id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
使用者权限:所有用户
语法
参数说明:
显示当前用户信息
执行效果如下
sudo:控制用户对系统命令的使用权限,root允许的操作。
通过sudo可以提高普通用户的操作权限
使用者权限:普通用户
语法如下:
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command
参数说明 :
sudo命令使用
指定root用户执行指令
修改网卡配置文件
比如,在下面的例子中,我们使用普通用户修改网卡的配置文件,在进行保存的时候,提示我们【无法打开并写入文件】,那么此时,我们可以通过sudo命令来提升自己的写入权限
执行:
执行效果如下(保存)
然后点击回车
执行效果如下(键入itcast密码)
执行保存
top命令用于实时显示 process 的动态。
使用权限:所有使用者。
显示进程信息
执行效果如下
显示完整命令,与top命令不同的就是command属性像是进行了命令补全
执行效果如下
执行效果如下
Linux ps命令用于显示当前进程 (process) 的状态信息
使用者权限:所有用户
语法如下:
显示进程信息
显示指定用户信息
显示所有进程信息
Linux kill命令用于删除执行中的程序或工作(可强制中断)
使用者权限:所有用户
语法如下:
参数说明 :
杀死一个进程
强制杀死进程
彻底杀死进程
杀死指定用户所有进程
1.方法一 过滤出itcast用户进程
2.方法二,直接杀死
shutdown命令可以用来进行关闭系统,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机
使用者权限:管理员用户
语法如下:
参数说明 :
立即关机
指定1分钟后关机,1分钟关机并显示警告信息
指定1分钟后重启,并发出警告信息
reboot命令用于用来重新启动计算机
使用者权限:管理员、普通(需要验证)用户
语法如下:
参数 :
开始重新启动
重启效果如下
who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等
使用者权限:所有使用者都可使用。
语法如下:
参数说明 :
显示当前登录系统的用户
显示明细(标题)信息
由上图可知,截止到现在只有itcast在线。
引子:
timedatectl是用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。
在实际开发过程中,系统时间的显示会和实际出现不同步;我们一般为了校正服务器时间、时区的时候会使用timedatectl命令</pre>
使用者权限:所有使用者都可使用,设置时间需要管理员,下面会标注。
几个常见的概念,进行总结如下:
显示系统的当前时间和日期,使用命令行中的timedatectl命令
执行效果如下
上图显示中国时区
㈣ linux非root权限配置环境变量
Linux的变量种类
按变量的生存周期来划分,Linux变量可分为两类:
1 永久的:需要修改配置文件,变量永久生效。
2 临时的:使用export命令声明即可,变量在关闭shell时失效。
设置变量的三种方法
1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。
2 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑guok用户目录(/home/guok)下的.bash_profile
命令用法如下
$ cd (进入用户登陆目录)
$ls –al .bash_profile(.bash_profile为隐藏文件,因此要用ls –a命令查找)
$vi .bash_profile(用vi编辑.bash_profile)
vi/home/guok/.bash.profile添加如下内容:exportCLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。
3 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export 变量名=变量值] 定义变量,
该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,
shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
环境变量的查看
1 使用echo命令查看单个环境变量。例如:
echo $PATH
2 使用env查看所有环境变量。例如:
env
3 使用set查看所有本地定义的环境变量。
使用unset删除指定的环境变量
set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:
export TEST="Test..." #增加一个环境变量TEST env|grep TEST #此命令有输入,证明环境变量TEST已经存在了
TEST=Test...
unset TEST #删除环境变量TEST
$ env|grep TEST #此命令没有输出,证明环境变量TEST已经删除
常用的环境变量
PATH 决定了shell将到哪些目录中寻找命令或程序
HOME 当前用户主目录
HISTSIZE历史记录数
LOGNAME 当前用户的登录名
HOSTNAME指主机的名称
SHELL 当前用户Shell类型
LANGUGE 语言相关的环境变量,多语言可以修改此环境变量
MAIL当前用户的邮件存放目录
PS1基本提示符,对于root用户是#,对于普通用户是$
Linux下设置和查看环境变量
https://www.cnblogs.com/qiuhong10/p/7815943.html
Linux下修改.bash_profile 文件改变PATH变量的值
https://blog.csdn.net/u011323949/article/details/79045788
㈤ Linux中显示自己登录的用户用那个命令
login name:登录用户名; terminal line:使用终端设备; login time:登录到系统的时间。 下面对who命令的常用参数进行说明。 -m 它的效果同who am i显示出自己在系统中的用户名,登录终端,登录时间 -q 只显示用户的登录帐号和登录用户的数量 -s 忽略,它同于who -r 可以查看当前系统的运行级别 run-level 3 Apr 21 09:37 last=S -H,--heading 显示一行列标题。常用的标题如表4-2所示。 三, whoami 命令只显示出自己在系统中的用户名 四, who am i 命令显示出自己在系统中的用户名,登录终端,登录时间 可以查看自己登录到系统中的用户名,它同logname一样。 五, logname 命令可以显示自己登录到系统中的用户名 六, last 命令可以查看上次自己登录的时间,当然root可以查看其他用户登录的情况。 last -n user 可以看user前n次登录的情况 七, tty命令 可以使用tty来报告所连接的设备或终端 。《Linux就该这么学》里有相关介绍,建议看看。