Linux的人际交互分为图形界面方式和命令行方式。

  Linux本身只是一个操作系统内核,而由X Window图形用户接口为Linux提供图形用户界面功能。可以把X Window理解为一个运行在Linux操作系统上的应用程序,不同用户根据自己需要为自己配置不同的X Window。X Window可分为KDE和Gnome两大类,此外 ubuntu还提供了Unity图形界面。

  shell,俗称“壳”,用以和“核”区别,是指“提供使用者使用界面”的软件(命令解释器),类似于windows下的cmd,用来接受用户命令。实际上,X Window也是shell的一种,只不过狭义的shell只用来表示以命令行形式提供的shell。

  常见的shell包括ash/bash/ksh/csh/zsh 5种。ubuntu发行版本使用的bash。

  启动shell时,先读取/etc/bash.bashrc文件对整个linux系统进行配置,再读取~/.bashrc文件对当前用户进行配置,如果这两个文件有冲突,后者为准。(这类似于vim的配置文件/etc/vim/vimrc和~/.vimrc)

  用户可以安装多个shell。与Linux内核类似,shell只提供一个计算机和用户交互的”内核“,其具体的命令输入输出交流还是要通过终端(Terminal)完成。系统在启动时,会自动启动多个终端,如ubuntu会启用7个终端,1~6号终端是直接运行的一个”真实终端“,7号终端交给X Window使用,是图形界面下的终端,使用Ctrl+Alt+Fn在不同终端间切换(Fn=F1~F6)。注意,真实终端下通常无法显示中文字符。

  ——还可用通过SSH/Telnet实现远程控制shell。Telnet是一种TCP/IP协议,是Internet远程登录服务的标准协议和主要方式,SSH协议则为Telnet提供的远程主机工作能力提供安全保障。远程登录工具:PuttyMan。

  shell的工作方式:1--作为命令行提供用户控制内核完成工作——“交互式”

          2--作为一种编程语言供开发者使用

  第一种方式很简单,与windows cmd类似,介绍一下第二种方式:Linux下存在一种特殊的可执行文件,内容是各种命令组成的纯文本文件(脚本文件),用以完成重复性较强的工作,shell对这种文件进行时别,并自动执行,是一种”非交互式“的工作方式。

  shell和用户交互是在终端以字符串形式的输入命令和输出反馈实现的。输入命令格式为:

      命令 选项 参数

  选项必须以减号开头,Linux以此区分选项和参数。

  shell的通配符主要用于模式匹配,比如文件名匹配、路径名搜索、字符串查找等,常用的有*、?和括在[ ]里的字符序列。*表示任意字符串,?表示任意一个字符,[ ]里的字序列表示文件名中[ ]处的字符必须在字符序列的指示范围内。

  例如:*.c 表示所有当前目录下所有.c文件,??表示当前目录下所有文件名长为2个字符的文件,a[bc]d指示文件名为abd或acd的文件,a[b-d]e指示文件名为abe,ace,ade的文件。

  shell中的引号有单引号、双引号、和反引号三种,单引号内部的字符序列全部作为普通字符被处理,双引号没有单引号那么“绝”,它还是会识别一些引号内的特殊字符,例如“$"、”\"、“`”,即当双引号中的字符序列中含有这几种特殊字符时,这些特殊字符的含义仍会被解释。反引号括起来的字符序列会被shell解释为命令行,在执行时,首先执行该命令行,并将其输出结果取代整个反引号部分(包括两个反引号)。

  例如:特殊字符$用以引用变量的值,则对于环境变量PATH,$PATH获取了PATH的值,即一系列目录。而若定义一个字符串string,将$PATH用单引号括起来赋给string,那么$string就仅获取了“$PATH”这个单纯的字符串,而不会将PAT解释为一系列目录。可以用echo命令来查看这些它们的获取结果。

  反引号的嵌套使用,内层的反引号需要用反斜杠转义:

    string="-a"

    abc=`ls \`echo $string\``

    echo $abc

  

  Linux的一些常用命令(只做一下整理):

    mkdir 文件名 ——创建目录

    rmdir 文件名 ——删除目录,只能删除空目录,若要删除非空目录,需要用“ rm -rf 文件名”;使用选项-p可以同时删除空目录上的空父目录。

    pwd ——当前工作目录

    cd 目录 ——切换当前工作目录 ,其中,.表示当前工作目录,..表示当前工作目录的上一级目录,/表示根目录,~表示当前用户home目录。

    ls 选项 文件目录列表 ——显示目录下的文件信息,-a显示全部文件(包括隐藏文件),-l显示文件详细信息,-p在输出文件名的后面加上一个字符说明该文件类型,-1一行只输出一个文件

    find 目录列表 匹配标准 ——用于查找文件。常用的有"find 目录 -name 文件名",查找目录下的指定文件名文件,该文件名中加入通配符可实现模糊查找;(我在测试 find -name选项时出现了错误提示“路径必须在表达式之前”,解释如下图)

    

    cat 选项 文件列表 ——用以在命令行显示文件内容,-n可以在文件每行前显示行号;-v 以特殊形式显示控制字符,配以-T表示将TAB显示为uI,配以-E表示在每一行末尾显示一个$字符。其次,“cat 文件a 文件b > 文件c”还可以把文件b的内容连接到文件a后并将连接后的内容写入到新文件c中。

    cp 选项 源文件或目录 目标文件或目录 ——用于文件和目录复制。-i可以在复制操作会导致已有文件被覆盖时发出提示请求确认操作,是一种交互式拷贝,更安全。

    mv …… ——移动(相当于剪切操作)或者重命名。

    wc …… ——统计文件内容

    rm …… ——删除文件

    ps …… ——显示进程列表,-aux详细输出,-w加宽显示,以完整显示进程信息,可叠加写 如www表示加宽三次,通常最多写三次

    kill …… ——输出特定指令给指定进程号PID的进程,默认为终止该进程

    ifconfig …… ——IP地址管理

    man ——帮助

    shutdown、halt、reboot ——用于关机和重启

    uname ——查看内核

    lsb_release ——查看发行版版本号,该命令需要安装lsb_core

    

    

    

Linux Shell 与Linux常用命令的更多相关文章

  1. Linux Shell 编程 教程 常用命令

    概述: Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户 ...

  2. Linux Shell sort排序常用命令(转载)

    转载自:http://blog.csdn.net/monkeyduck/article/details/10097829 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则 ...

  3. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  4. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  5. Linux文件管理和编辑常用命令

    Linux文件管理和编辑常用命令 mkdir 命令 功能说明 mkdir 命令用于创建一个目录,mkdir是make directory的缩写 格式: mkdir [选项] 目录名 mkdir 命令的 ...

  6. Linux系统管理和维护常用命令

    Linux系统管理和维护常用命令 ls 命令 功能说明 ls 命令显示指定工作目录下的内容,列出工作目录所包含的文件及子目录. 语法结构: ls [选项] [路径或文件] ls 选项及说明 -a 显示 ...

  7. [转帖]「日常小记」linux中强大且常用命令:find、grep

    「日常小记」linux中强大且常用命令:find.grep https://zhuanlan.zhihu.com/p/74379265 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍 ...

  8. linux shell 中的sleep命令

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

  9. Linux 文件夹相关常用命令

    Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf  -r  就是向下递归,不管有多少级目录,一并删 ...

  10. Linux课程---4、Linux目录结构及常用命令(目录结构)

    Linux课程---4.Linux目录结构及常用命令(目录结构) 一.总结 一句话总结: 家目录:./root:root用户的家目录 能执行的程序:./bin:所有用户都能执行的程序:./sbin:只 ...

随机推荐

  1. C# winform 跨线程修改界面

    我们可以使用invoke和bengininvoke invoke同步执行一个委托 begininvoke异步执行一个委托

  2. javascript typeof()的用法与运算符用法

    typeof 运算符 返回一个用来表示表达式的数据类型的字符串. typeof[()expression[]] ; expression 参数是需要查找类型信息的任意表达式. 说明 typeof 运算 ...

  3. 多设备同时安装apk(安卓)

    前几天在做安卓设备的多个设备同时安装的小脚本.因为目前我这边设备有点多,想顺便做一下安装的测试.而且因为公司的app测试人手上有点不足,就想通过这个办法去在安装的时候更方便省事一点. 本来是想弄个复杂 ...

  4. Nginx AWS ELB 域名解析后端502问题

    转载:http://liyangliang.me/posts/2016/04/nginx-aws-elb-name-resolution/

  5. 实验,暂停oracle后台进程

    有时出于测试需求,需要暂停oracle的某些后台进程,此时以暂停lgwr进程为例 使用sysdba连接到数据库查询到LGWR进程的PID:SQL> select prc.pid from v$b ...

  6. STC12C5A60S2 51单片机最小系统

                                                                                    STC12C5A60S2 一.根据芯片文 ...

  7. 团队第三次scrum

    长大一条龙之课表查询 一.设计概要 本次内容主要是实现了长大一条龙系统的课表查询功能,我们的这个项目严格遵守MVC架构,采用前后端分离的策略.我们将课表查询分为二层,DAO层:负责与数据进行交互,读写 ...

  8. Arcgis Javascript中geometryEngine报错’hq‘of undefined的解决方法

    这个问题困扰了我一个星期,原因是使用geomagicbuffer时候,有的线可正常使用,有的就直接报错,一直没有解决,后来发现是api自己的bug导致的 干脆直接读代码,在geometryEngine ...

  9. Android(java)学习笔记34:Android原理揭秘系列之View、ViewGroup

    1. 作过Android 应用开发的朋友都知道,Android的UI界面都是由View和ViewGroup及其派生类组合而成的.其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的 ...

  10. kiwi installation

    Mainly the installstion methods follow the url: https://github.com/emolch/kiwi/wiki/Installation the ...