Linux shell 1-初步认识
1.什么是linux
linux是一种操作系统,它可划分为以下四部分
1.linux内核(Linux系统的核心,负责管理系统内存,硬件驱动,文件系统等)
2.GNU工具(一组软件工具,提供一些类UNIX系统命令)
3.图形化桌面环境
4.应用软件
2.linux shell
shell是GNU工具包下的一个交互式工具。它为用户提供了启动程序、管理文件系统中的文 件以及运行在Linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell负责 交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。shell作为一种程序,反应在linux中就是一个进程。shell顾名思义就是壳,有区别于内核,用于人机交互。GUI桌面也是一种shell,shell不一定是命令行。
3.linux 文件系统
文件系统是用户最直观最平凡接触的部分,因此有必要先了解一下Linux的文件系统,特别是长期使用windows操作系统的人。
Linux的目录与windows最直观的区别在于-没有盘符,Linux的目录结构是单目录结构以‘/’为根目录节点。

linux其实是靠‘挂载点’来实现分区的功能。如上图的例子,/根目录挂载到disk1分区上,/home挂载到disk2分区上(简单理解就是/home这个目录的所有文件都存储在disk2分区上)。按windows的逻辑来理解就是‘c’这个盘符挂载到disk1分区,‘d’这个盘符挂载到disk2分区。
4.一些常用的文件操作命令
cd 切换目录
ls 显示当前目录下的文件或子目录list
pwd 显示当前所在的目录路径
touch 创建空文件
mkdir 创建目录
cp 复制文件 例子:cp test_one.txt test_two.txt cp -R Scripts/ Cpoy/(-R参数拷贝目录)
mv 重命名或移动文件或目录 移动到同一目录下就相当于重命名
rm 删除文件 rm -f 强制删除(不会有任何提示信息)
5.linux命令
从用户的角度来看linux命令,这些命令不过是一些字符,如上面提到的cd,ls,如果用户想要切换目录,那么必须在shell终端敲入cd这两个字符。但从操作系统的角度来看,这些命令其实就是一些程序,cd就是名字为cd,功能是切换目录的一个程序。上文提到shell也是一个程序,用来进行人机交互,当用户敲下cd命令时,shell作为父进程会创建一个子进程来执行cd这个程序。在windows中用鼠标双击打开某个程序的过程也是类似的,也需要创建一个子进程。区别不过在于linux是在键盘上敲命令,windows是用鼠标双击,只不过命令的方式对用户不太友好,需要记住一大堆的命令(程序的名称)和相应命令的参数。

linux命令分为外建命令和内建命令。外建命令就像上文所说的是存在于bash shell之外的程序。它们并不是shell 程序的一部分。外部命令程序通常位于/bin、/usr/bin、/sbin或/usr/sbin中。而内建命令其实就是shell程序的一部分,被编译在一个程序之中。所以使用内建命令不需要创建子进程,内建命令的使用要比外部命令的开销要小。
6.linux环境变量
无论是在linux还是windows中安装一些软件(如JAVA,Maven)都需要配置环境变量。特别是在GUI的windows中配置,使得环境变量特别难于理解是个什么东西。其实环境变量说白了就是key=value形式的一组变量而已,就像java编程中的properties文件一样。Linux环境变量会存储在一个配置文件之中,shell程序启动的时候会去读取这个文件(/etc/profile),然后作为shell进程中的变量。环境变量分为局部变量和全局变量,/etc/profile这个配置文件中的变量一般作为全局变量,也可以在shell中自己定义局部变量,但是局部变量只是存在于内存中,是没有保存到/etc/profile文件中的,所以重启shell之后局部变量就没有了。抓住本质,其实环境变量就是配置文件中的数据而已,最常见的用途就是让shell知道去哪个目录下去查找外部命令程序,例如吧java/bin这个路径配置到PATH变量中,shell在执行的时候才能找到java这个外部命令。就像java编程时要配置数据库的datasoure.properties文件一样。
7.重定向和管道
命令执行的结果往往输出在控制台上,但是我们可以通过重定向的方式将结果输出到另一个位置(如文件)。重定向可以用于输出也可以用于输入。例子:ls > file.list 这样就把ls命令执行的结果输出到了file.list文件中。
我们还可以通过管道将一个命令的输出作为另一个命令的输入。当然这个操作我们也可以通过重定向的方式来实现,只是重定向的方式略显复杂
重定向:rpm -qa > rpm.list sort < rpm.list
管 道:rpm -qa | sort
查询日志时我们常常可以使用管道来达到‘并且’的效果。
grep '关键字1' info.log | grep '关键字2' info.log 这样可以达到搜索同时包含关键字1和关键字2的日志信息。
Linux shell 1-初步认识的更多相关文章
- [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门
坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ 索引: 什么是shell shell的分类 shell脚本的执行方式 ...
- Linux服务器的初步配置流程
作者: 阮一峰 日期: 2014年3月14日 开发网站的时候,常常需要自己配置Linux服务器. 本文记录配置Linux服务器的初步流程,也就是系统安装完成后,下一步要做的事情.这主要是我自己的总结和 ...
- 第5天(半天)【shell编程初步、grep及正则表达式】
第5天(半天)[shell编程初步.grep及正则表达式] shell编程初步(01)_recv shell脚本:文本文件 #!:/bin/bash #!:/usr/bin/python #!:/us ...
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- Linux Shell 流程控制语句
* 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...
- Linux Shell 截取字符串
Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
随机推荐
- Tomcat源代码解析系列
学web也有一段时间了.为了从底层了解web应用在Tomcat中的执行,决定看一下Tomcat的源代码參见<How Tomcat works> 和大牛博客.对大体架构有了一定的了解, ...
- Zoho CEO:云计算泡沫巨大 Salesforce仅仅是新的Siebel
最近Zoho CEO - Sridhar Vembu接受科技博客媒体Diginomica的专訪,从独特的眼光和见解.讲述了云计算行业环境.SaaS公司的生存状态.商业观念以及Zoho的商业模式. Sr ...
- jpush推送
1.下载这个压缩包,vendo文件夹,复制里面的vendo到该文件夹下. 解压 2.修改AppKey和MasterSecret就ok 了
- 微信小程序入门 第一个页面搭建
首先搭建首页 微信小程序与web程序非常相似 有非常多的组件 多个组件形成一个页面 每个组件有自己一些特殊的属性来控制显示效果 通过js注册事件控制响应 首先使用swiper实现一个banner轮 ...
- 浅析C#中 ConcurrentDictionary的实现
简单画了一张图 (灵魂画手 →_→) 如图 ConcurrentDictionary 其中有个tables 对象主要存储,而这个 tables 是一个 很多区块的 数组 ,每个区块 又是一个node的 ...
- MQTT Client软件-MQTTBox
最近发现了一个连接mqtt broker的软件:MQTTBox.GitHub地址:https://github.com/workswithweb/MQTTBox 官网网站的介绍为:使用MQTTBox增 ...
- javascirpt 用英文逗号替换英文分号、中英文逗号或者回车
function ReplaceSeperator(mobiles) { var i; var result = ""; var c; for (i = 0; i < mob ...
- ss - float浮动模块的高度问题 解决方案
当一个Div中的子元素都是浮动元素时,该div是没有高度的.通常会带来很多困扰,解决方案如下: 低版本统配兼容: overflow: hidden; 下面是不支持低配浏览器,而且似乎该效果对 P 标签 ...
- POJ 1258:Agri-Net(最小生成树&&prim)
Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 38918 Accepted: 15751 Descri ...
- C# DateTime 时间格式
//2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...