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. Customize User Interfaces and Pass User Input to Installer Classes

    In this article I am going to demonstrate how to customize your MSI install to prompt the user for s ...

  2. 使用 dbdeploy.net 管理数据库变更

    使用 dbdeploy.net 管理数据库变更 没有包含数据库的持续集成都是假的.这可不是我说的.一直以来都没能找到一个理想的数据库变更管理工具.直到转了 java 再回来,才发现 dbdeploy ...

  3. Public Private Protect Inheritance and access specifiers

    In the previous lessons on inheritance, we've been making all of our data members public in order to ...

  4. Python 入门demo第二篇

    循环执行逻辑 #-*- coding: UTF-8 -*- import time import urllib2 def task(i): urlstr='http://baidu.com' html ...

  5. 04-hibernate注解-一对一双向外键关联

    一对一双向外键 1,主控方的配置同一对一单向外键关联. 2,@OneToOne(mappedBy="card") //被控方 @OneToOne(mappedBy="ca ...

  6. 默认权限umask

    什么是umask? 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情.umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,um ...

  7. 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级

    目录 一.前言: 二.回顾下OTA的流程: 三.lwip网络框架的知识的使用: 四.如何处理服务器返回的数据? 五.扇区的擦除和烧写? 六.如何调用? 七.好好享用吧! 八.下载: 九.工程截图: 代 ...

  8. 使用typescript开发js代码提升代码维护性

    function test() { var gs = new Greeter('ss'); alert( gs.greet()); } window.onload = test; class Gree ...

  9. jquery cookie操作方法

    1. 设置cookie的值,把name变量的值设为value     $.cookie(’name’, ‘value’);  2.新建一个cookie 包括有效期 路径 域名等 $.cookie(’n ...

  10. Atitit.php  nginx页面空白 并返回500的解决

    Atitit.php  nginx页面空白 并返回500的解决 1.1. 空白问题起源1 1.2. Php.ini 开启display_err1 1.3. 修改www.conf ,并重启动.重启php ...