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-初步认识的更多相关文章

  1. [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/   索引: 什么是shell shell的分类 shell脚本的执行方式   ...

  2. Linux服务器的初步配置流程

    作者: 阮一峰 日期: 2014年3月14日 开发网站的时候,常常需要自己配置Linux服务器. 本文记录配置Linux服务器的初步流程,也就是系统安装完成后,下一步要做的事情.这主要是我自己的总结和 ...

  3. 第5天(半天)【shell编程初步、grep及正则表达式】

    第5天(半天)[shell编程初步.grep及正则表达式] shell编程初步(01)_recv shell脚本:文本文件 #!:/bin/bash #!:/usr/bin/python #!:/us ...

  4. linux shell 中的sleep命令

    开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...

  5. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  6. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  7. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  8. Linux Shell 流程控制语句

    * 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...

  9. Linux Shell 截取字符串

    Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...

  10. Linux Shell 重定向与管道【转帖】

    by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...

随机推荐

  1. ionicframework(二)

    Start building with Ionic! Follow these quick steps and start building high quality mobile apps in m ...

  2. js实现回放拖拽轨迹-------Day48

    今天有点小高兴,csdn博客浏览量过万了,在过去还从来没有过这么高的浏览量呢.不得不说.太多时候还是有些矫情.可看到这些鼓舞还是忍不住高兴啊,至少,这样让我有一种行内人员的感觉,吾道不孤啊. 闲话不多 ...

  3. 【Datastage】函数大全

    一. 类型转换函数 类型转换函数用于更改参数的类型. 以下函数位于表达式编辑器的"类型转换"类别中.方括号表示参数是可选的.缺省日期格式为 %yyyy-%mm-%dd. 以下示例按 ...

  4. 关于ThreadLocal变量的一个坑

    每个线程都有一个ThreadLocalMap对象,ThreadLocalMap是Thread的一个内部类,可以把ThreadLocalMap理解成一个Map,这个Map里存放这一个Thread的所有线 ...

  5. 【Shiro】Apache Shiro架构之集成web

    Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shi ...

  6. java基础讲解10-----类的高级特性

    一.final关键字 1.final关键字修饰变量,表示变量不可以被改变,如果想修改,编译器不会接受的. 注意:final关键字定义的变量必须赋值 public  static final 修饰  白 ...

  7. SSE,MSE,RMSE,R-square 指标讲解

    SSE(和方差.误差平方和):The sum of squares due to error MSE(均方差.方差):Mean squared errorRMSE(均方根.标准差):Root mean ...

  8. FreeSWITCH小结:关于sip的UDP、TCP与MTU

    1.关于SIP的UDP与MTU的关系 如果sip消息的大小超过了MTU,则有可能被网络中的某一节点分片,而UDP处理分片会有很大的问题,从而导致sip消息传输失败.要解决该问题的话,两种方案: 1)减 ...

  9. 在Linux下如何查CC攻击?

    什么是CC攻击?CC攻击就是利用大量代理服务器对目标计算机发起大量连接,导致目标服务器资源枯竭造成拒绝服务.那么如何判断查询CC攻击呢?本文主要介绍了一些Linux下判断CC攻击的命令. AD:201 ...

  10. RSAProtectedConfigurationProvider加密web.config

    上一篇文章介绍了用 DataProtectionConfigurationProvider加密web.config文件的方法,不过他有一个缺陷,加密的文件只有在本机才能解密,如果有多台服务器的话,则需 ...