欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux Shell 与Linux常用命令

程序员文章站 2022-09-24 11:28:39
Linux的人际交互分为图形界面方式和命令行方式。 Linux本身只是一个操作系统内核,而由X Window图形用户接口为Linux提供图形用户界面功能。可以把X Window理解为一个运行在Linux操作系统上的应用程序,不同用户根据自己需要为自己配置不同的X Window。X Window可分为 ......

  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选项时出现了错误提示“路径必须在表达式之前”,解释如下图)

    Linux Shell 与Linux常用命令

 

    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