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语言操作文件时候的句柄,通过句柄就可以 ...
随机推荐
- ionicframework(二)
Start building with Ionic! Follow these quick steps and start building high quality mobile apps in m ...
- js实现回放拖拽轨迹-------Day48
今天有点小高兴,csdn博客浏览量过万了,在过去还从来没有过这么高的浏览量呢.不得不说.太多时候还是有些矫情.可看到这些鼓舞还是忍不住高兴啊,至少,这样让我有一种行内人员的感觉,吾道不孤啊. 闲话不多 ...
- 【Datastage】函数大全
一. 类型转换函数 类型转换函数用于更改参数的类型. 以下函数位于表达式编辑器的"类型转换"类别中.方括号表示参数是可选的.缺省日期格式为 %yyyy-%mm-%dd. 以下示例按 ...
- 关于ThreadLocal变量的一个坑
每个线程都有一个ThreadLocalMap对象,ThreadLocalMap是Thread的一个内部类,可以把ThreadLocalMap理解成一个Map,这个Map里存放这一个Thread的所有线 ...
- 【Shiro】Apache Shiro架构之集成web
Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shi ...
- java基础讲解10-----类的高级特性
一.final关键字 1.final关键字修饰变量,表示变量不可以被改变,如果想修改,编译器不会接受的. 注意:final关键字定义的变量必须赋值 public static final 修饰 白 ...
- SSE,MSE,RMSE,R-square 指标讲解
SSE(和方差.误差平方和):The sum of squares due to error MSE(均方差.方差):Mean squared errorRMSE(均方根.标准差):Root mean ...
- FreeSWITCH小结:关于sip的UDP、TCP与MTU
1.关于SIP的UDP与MTU的关系 如果sip消息的大小超过了MTU,则有可能被网络中的某一节点分片,而UDP处理分片会有很大的问题,从而导致sip消息传输失败.要解决该问题的话,两种方案: 1)减 ...
- 在Linux下如何查CC攻击?
什么是CC攻击?CC攻击就是利用大量代理服务器对目标计算机发起大量连接,导致目标服务器资源枯竭造成拒绝服务.那么如何判断查询CC攻击呢?本文主要介绍了一些Linux下判断CC攻击的命令. AD:201 ...
- RSAProtectedConfigurationProvider加密web.config
上一篇文章介绍了用 DataProtectionConfigurationProvider加密web.config文件的方法,不过他有一个缺陷,加密的文件只有在本机才能解密,如果有多台服务器的话,则需 ...