
什么是 LINUX SHELL环境?shell在会话中会保存着大量信息,而这些信息就是shell环境。LINNX命令程序通过获取SHELL环境中的数据(此处的数据通常称为环境变量)来输出本机相应的配置数据。
LINUX环境变量
Linux shell环境中存储了两种基本类型的数据:环境变量和shell变量。当然,除了变量,shell也存储了一些可编程的数据,即别名和shell 函数。
如何查看环境变量呢?
我们可以用bash命令set,或者使用printenv命令程序来查看环境变量。
它们的区别是:set 命令不仅显示shell数据,而且可以显示环境变量列表,而printenv命令仅仅显示环境变量列表。
鉴于环境变量列表比较长,我们可以将每个命令的输出通过管道符传递给less 来输出列表,例如:
//执行命令
[test@linuxprobe ~]$ printenv | less
//输出内容:环境变量及其数值的列表
KDE_MULTIHEAD=false
SSH_AGENT_PID=6666
HOSTNAME= linuxprobe
GPG_AGENT_INFO=/tmp/gpg-PdOt7g/S.gpg-agent:6689:1
SHELL=/bin/bash
TERM=xterm
XDG_MENU_PREFIX=kde-
HISTSIZE=1000
XDG_SESSION_COOKIE=6d7b05c65846c3eaf3101b0046bd2b00-1208521990.996705
-1177056199
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/me/.gtkrc-2.0:/home/me/.kde/sh
are/config/gtkrc-2.0
GTK_RC_FILES=/etc/gtk/gtkrc:/home/me/.gtkrc:/home/me/.kde/share/confi
g/gtkrc
GS_LIB=/home/me/.fonts
WINDOWID=29360136
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
KDE_FULL_SESSION=true
USER=test
LS_COLORS=no=00:fi=00:di=0034:ln=0036:pi=4033:so=0035:bd=403301
:cd=403301:or=01053741:mi=01053741:ex=0032:*.cmd=0032:*.exe:
//printenv 命令也可输出特定变量- USER的数值:
[test@linuxprobe ~]$ printenv USER
test
建立LINUX shell 环境
每当我们登录系统后,bash 程序就会自动启动,且会读取一系列配置脚本,这些配置脚本被称为启动文件。这些启动文件定义了可供所有用户共享的默认shell 环境。
那么位于家目录中的启动文件,定义了用户个人的shell 环境。
确切的启动顺序取决于shell 会话类型模式。有两种shell 会话类型模式:一个是登录shell 会话模式,另一个是非登录shell 会话模式。
登录shell 会话模式中会提示用户输入用户名和密码;非登录shell 会话模式通常在GUI下启动终端会话时出现。
登录shell 会话模式下启动文件内容:
非登录shell 会话模式下启动文件内容:
修改linux shell环境
依据通常的 *** 作思路,通过添加目录到PATH 变量或定义新的环境变量,再把这些更改存放至.bash_profile 文件中;那么对于其它的更改呢,需要存放至.bashrc 文件中。
除了系统管理员具将系统中的所有用户修改默认设置的权限外,其他用户只能限定对个人家目录下的文件进行修改。
我们通过使用一个叫做文本编辑器的程序来编辑(或读、写)shell 的启动文件以及其它配置文件。文本编辑器是一个类似于文字处理器的程序,允许使用移动光标在屏幕上编辑。但不同之处在于文本编辑器不仅支持纯文本,而且常包含为便于写程序而设计的特性。由此可见,文本编辑器是开发人员用来写代码,以及系统管理员用来管理控制系统的配置文件的重要工具之一。
文本编辑器通常分为两种基本类型:图形化的和非图形化的(基于文本)编辑器。
一些典型的图形化编辑器有GNOME 和KDE。GNOME编辑器自带了gedit 的编辑器,它通常在GNOME 菜单中称为“文本编辑器”。KDE自带了三种编辑器,分别是kedit,kwrite,kate。
那么基于文本的编辑器有nano、vi 和emacs。
nano 编辑器是一个简单易用的编辑器。vi 编辑器(目前已被vim (“Vi IMproved” 的简写)替代)是类Unix *** 作系统的传统编辑器。emacs 编辑器属于庞大的、多用途的,可做任何 *** 作的编程环境。
无论哪种类型的文本编辑器都可以在命令行中输入编辑器的名字及想要编辑的文件名,执行文本编辑 *** 作。在这篇文章中,我们学到了用文本编辑器来编辑配置文件的基本技巧。
这篇文章主要讨论了linux SHELL环境的一些基础知识及基本的 *** 作技巧。在编写这篇文章过程中我还参考了 《Linux就该这么学(第2版)》 这本书,基于红帽8编写,内容很贴近实践,很有理论指导实践价值的一本书籍。
显示所有的环境变量,如果你想获取某个变量的详细信息,使用echo $VARIABLE_NAME .
Example:
whereis使用系统自动构建的数据库来搜索可执行文件,源文件和手册页面。
Example:
它在环境变量PATH指定的目录中搜索可执行文件。此命令将打印可执行文件的完整路径。
Example:
清除窗口上的内容。
列出您的文件。 ls 有很多选项: -l 列出“长格式”的文件,其中包含文件的确切大小,拥有该文件的人员,有权查看该文件,以及何时进行上次修改。 -a 列出所有文件,包括隐藏文件。有关此命令的更多信息,请检查此链接。
Example:
创建或更新您的文件。
Example:
它可以在UNIX或Linux下用于以下目的。
显示文件的第一部分(用空格移动并键入q以退出)。
输出文件的前10行。
输出最后10行文件。用于-f在文件增长时输出附加数据。
将文件从一个位置移动到另一个位置。
filename1 文件的源路径, filename2 是目标路径。
将文件从一个位置复制到另一个位置。
filename1 文件的源路径, filename2 是目标路径。
删除文件。在目录上使用此命令会给您显示一个错误:rm: directory: is a directory 。 为了删除目录,你必须传递 -rf 去递归删除目录中的所有内容。
比较文件,并列出他们的差异。
让您更改文件的读取,写入和执行权限。
压缩文件。
解压缩gzip压缩的文件。
让你查看gzip压缩文件,而不需要gunzip它。
打印文件。
查看打印机队列。
Example:
从打印队列移除某些内容。
awk是处理文本文件最有用的命令。它一行一行地在整个文件上运行。默认情况下,它使用空格分隔字段。awk命令最常用的语法是
让我们采取以下文件/etc/passwd 。以下是此文件包含的示例数据:
所以现在让我们从这个文件只获取用户名。-F 指定在我们要基于哪个分隔字段。在我们的例子中 : 。 { print $1 } 意味着打印出第一个匹配字段。
运行上述命令后,您将获得以下输出。
有关如何使用 awk 的更多细节,请查看以下链接。
查找文件内的文本。您可以使用grep搜索与一个或多个正则表达式匹配的文本行,并仅输出匹配的行。
Example:
您还可以通过使用 -i 选项强制grep忽略单词大小写。 -r 可用于搜索指定目录下的所有文件,例如:
-w 只搜索单词。有关 grep 详细信息,请查看以下链接。
告诉你一个文件中有多少行,多少单词和多少字符。
Example:
7459 是行数, 15915 是单词数, 398400 是字符数.
用于过滤和转换文本的流编辑器。
example.txt
用连字符替换所有空格
使用"d"替换所有的数字
排序文本文件的行
example.txt
sort example.txt
随机化一个排序的example.txt
报告或省略重复的行
example.txt
只显示example.txt的唯一行(首先你需要排序,否则看不到重叠)
显示每行的唯一项,并告诉我找到了多少个实例
从每行文件中删除部分。
example.txt
显示第2,7和9栏的空格作为分隔符
显示一行文字
显示 "Hello World"
用字母之间的换行显示 "Hello World"
简单的最佳文本格式化程序
example: example.txt (1 line)
将example.txt的行输出为20个字符的宽度
翻译或删除字符
example.txt
把所有小写字母变成为大写
把所有的空格变成换行符
显示文件的行数
example.txt
带行号显示 example.txt
打印匹配模式的行 - 扩展表达式(别名为:'grep -E')
example.txt
在其中显示“Lorem”或“dolor”的行
打印匹配模式到的行 - FIXED模式匹配(别名为:'grep -F')
example.txt
在example.txt中找到具体的字符串'(Lorem | doloar)'
生成一个新的目录。
执行这个,从一个目录转移到另外一个目录。
将你移动到主目录。此命令接受可选的 dirname ,将你移动到该目录。
告诉你你目前所在的目录。
ssh (SSH client) 是一个用来在登录到远程机器并执行的命令的程序。
此命令还接受 -p 可用于连接到特定端口的选项。
返回当前登录用户名。
允许当前登录的用户更改其密码。
显示您的磁盘配额。
显示当前日期和时间。
显示月份的日历。
显示当前的正常运行时间。
显示谁在线
Displays information about user.
显示内核信息。
显示指定命令的手册。
显示磁盘使用情况。
显示文件名中文件和目录的磁盘使用情况(du -s只给出一个总数)。
列出您最后登录的指定用户。
列出您的进程。
使用您所提供的ID杀死(结束)进程。
用名称杀死所有进程。
显示当前活动的进程。
列出停止的或后台工作的Job恢复在后台停止的Job。
前台化最近的Job。
Brings the most recent job in the foreground.
Pings主机并输出结果。
获取域的whois信息。
获取域的DNS信息。
下载文件。
在本地主机和远程主机之间或两台远程主机之间传输文件。
从本地主机复制到远程主机
从远程主机复制到本地主机
此命令还接受 -P 选项可用于连接到特定的端口。
在bash中你将编写第一行脚本文件,被叫做 shebang 。任何脚本中的这一行来确定脚本的执行能力,如独立的可执行文件,而不是在终端中预先键入sh,bash,python,php等。
Example:
上面的一行创建一个变量str并给它赋值“hello world”。通过 $ 放在变量名的开头来检索变量的值。
Example:
像其他语言一样,bash也有数组。数组是包含多个值的变量。数组的大小没有最大限制。bash中的数组为零。第一个元素被索引为元素0.在bash中创建数组有几种方法。以下给出了哪些。
Examples:
要在特定索引处显示值,请使用以下语法:
如果没有提供索引,则假定为数组元素0。要了解数组中有多少值,请使用以下语法:
Bash也支持三元条件。下面是一些例子。
检查一些关于如何 *** 作字符串的语法
Example:
当您运行上述示例时,该hello函数将输出“world!”。上述两个功能 hello 和 say 是相同的。主要区别是功能 say 。此功能打印其接收到的第一个参数。函数内的参数以与给脚本的参数相同的方式进行处理。
bash中的条件语句与其他编程语言相似。条件有许多形式,如最基本的形式是 if 表达式 then 语句,其中语句只有在表达式为真时执行。
有时,如果条件变得混乱,所以你可以使用相同的条件 case statements 。
Expression Examples:
bash 中有三种不同类型的循环。for , while 和 until .
for 语法:
while 语法:
until 语法:
bash_profile 可以通过运行后面的命令打开。 nano ~/.bash_profile
nano ~/.bashrc
source ~/.bashrc
cd hotellogs
您可以通过传递不同的选项来轻松地调试bash脚本bash。例如-n,不会运行命令并仅检查语法错误。-vecho命令在运行它们之前。-x命令行处理后的echo命令。
Linux bash命令行:bash命令行解释器或者翻译官,命令行输入命令都是由bash解释执行的。
一、命令行
二、查询当前登录的用户:
root
三、查询当前用户主机名:
oldboy
四、查询当前用户所在的路径:
/root
五、切换用户:
#切换到oldboy用户
(#$是普通用户的提示符。一般大臣,布衣。)
oldboy
六、符号的意思
~ 用户家目录
- 上一次所在的目录
. 表示当前目录
.. 上一级目录
../.. 表示上一级的上一级目录
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)