实验目的

学习使用xshell工具连接Linux服务器

在连上的服务器中进入用户目录

熟悉简单的文件操作命令

实验原理

  熟悉shell命令是熟悉使用linux环境进行开发的第一步,我们在linux的交互式命令行输入的每一个命令都是一个shell指令,Shell本质是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
  我们学习shell编程的第一步就是熟悉常见的shell命令,常见的shell命令包括文件管理、文档编辑、文件传输、磁盘管理、网络通讯、系统管理等多种,今天的实验让大家学会使用最基本的几个命令,能够在linux环境完成一些简单的工作。

1.常见的基本命令
  1)文件目录的表达方法:
  /根目录
  .当前目录
  .. 上一级目录
  ~用户主目录
  文件和文件夹(蓝色代表目录, 白色代表文件,黄色代表设备文件,红色代表压缩文件,绿色代表可执行文件,浅蓝色代表链接文件)linux是以属性来控制文件是否能执行

  2)改变目录cd命令:
  cd / 进入到系统根目录
  cd . 进入当前目录
  cd .. 进入当前目录的父目录,返回上层目录
  cd /tmp 进入指定目录/tmp
  cd ~ 进入当前用户的家目录
  cd 进入当前用户的家目录
  cd - 回到刚才所在的目录

  3) pwd命令:
  显示当前所在目录 pwd

  4)显示文件或目录的属性 ls (dir)
  dir 显示当前目录的内容(无颜色)
  ls 显示当前目录的内容(有颜色)
  ls /tmp 显示指定目录/tmp的内容
  ls -l 列出文件和文件夹的基本属性和详细信息
  ll 列出文件和文件夹的基本属性和详细信息
  ls -a 列出当前目录的全部内容,包括隐藏文件(在文件和文件夹前面加“.”隐藏)
  ls -l -a 列出当前目录的全部文件和文件夹的基本属性和详细信息
  ls -la 列出当前目录的全部文件和文件夹的基本属性和详细信息
  ll -a 列出当前目录的全部文件和文件夹的基本属性和详细信息
  ls -A 列出当前目录的全部内容,包括隐藏文件,不显示“.”和“..”
  ls --help 列出ls 命令的帮助内容
  ls a2* 列出以a2 开头的文件和文件夹
  ls -l a2* 列出以a2 开头的文件和文件夹的基本属性和详细信息

  5)创建目录mkdir
  mkdir dir1 在当前目录下创建dir 子目录
  mkdir /tmp/dir2 在指定目录/tmp下创建 dir2子目录
  mkdir -p dir3/dir4 在当前目录下创建2 级目录dir3和其子目录 dir4
  mkdir -p /dir5/dir6 在根目录下创建2 级目录dir5和其子目录 dir6
  mkdir dir7 dir8 dir9 在当前目录下创建3 个目录dir7 dir8 dir9,以空格隔开

  6)创建空文本文件 touch
  touch file1 在当前目录下创建file1 文件
  touch /tmp/file2 在指定目录/tmp下创建 file2文件

  7)复制文件命令 cp
  cp file2 /tmp 复制file2 文件到/tmp目录下
  cp /tmp/file2 /home 复制/tmp/file2文件到/home 目录下
  cp /home/file2 /tmp/file3 复制/home/file2到/tmp 目录下并改名为file3
  cp -p /tmp/file3 /home 复制/tmp/file3到/home 目录下并复制文件属性
  cp -r /dir5 /tmp 复制/dir5目录到/tmp 下

  8)移动文件或目录命令 mv
  mv file4 /tmp 移动file4 文件到/tmp目录下
  mv /home/file3 /tmp 移动/home/file3文件到/tmp目录下
  mv /home/file3 /tmp/file5 移动/home/file3文件到/tmp目录下并改名为file5
  mv file3 file4 将file3改名为file4
  mv dir10 /tmp 移动目录到/tmp下
  mv dir10 dir11 将dir10目录改名为dir11

  9)删除文件命令 rm
  rm file1 删除文件file1
  rm -f file1 不用确认直接删除file1
  rm -f file1 file2 file3 不用确认同时删除多个文件
  rm /tmp/file1 删除指定目录/tmp下的文件 file1
  rm fi* 删除以fi 开头的文件
  rmdir 删除空目录
  rm -r dir 递归的方式删除非空目录dir
  rm -rf dir 不用确认直接删除非空目录dir

  10)查看文件内容命令 cat
  cat /etc/passwd 查看/etc/passwd文件
  cat /etc/passwd |more 分屏查看文件内容
  cat /etc/passwd |less 分屏查看文件内容,可以上下翻页,输入“q”退出

  11)查找文件命令 find
  find pass* 在当前目录下查找以pass 开头的文件
  find /etc/pass* 在/etc目录中查找以 pass开头的文件
  find /etc/pass* -print 在/etc目录中查找以 pass开头的文件,并显示出来

2.熟悉vi/vim文本编辑器命令
  1)vi/vim是linux平台强大的文本编辑工具,vi有三种模式:

命令模式:vi的默认进入状态(不可以输入字符,但可以对字符进行操作复制,移动、删除等操作)

插入模式:可以使用键盘输入和使用del和退格backspace键删除文字

编辑模式:可以输入查找替换等命令,也可以保存退出

  如果文件存在就编辑,不存在就创建文件,然后编辑。vi下有三种模式,输入vi命令进去后,不能编辑,只能使用复制、删除、粘贴等命令,称为命令模式;命令模式下按一下键盘上的字母i,就进入插入模式,可以使用键盘进行编辑,编辑完成后,按Esc进入命令模式,再按shift+:进入编辑模式,输入wq,按enter键保存退出。输入q,按enter键直接退出。

 2)默认进入命令模式
  命令模式下输入i、o等字符可以进入插入模式,插入模式下按Esc进入命令模式,命令模式下按shift+:进入编辑模式

  3)命令模式下

q:退出

wq:修改后保存退出

q!:强制退出,不保存修改的内容

3. 其他常用命令
  1)wc命令:用于计算字数。
  利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

wc -c filename 只显示fileneme文件的Bytes数。

wc -l filename 只显示filename文件的列数。

wc -w filename 只显示filename文件的字数。

  2)cut命令:用于显示每行从开头算起 num1 到 num2 的文字。

-b :以字节为单位进行分割。

-c :以字符为单位进行分割。

-d :自定义分隔符,默认为制表符。

-f :与-d一起使用,指定显示哪个区域。

  3)awk命令:一种处理文本文件的语言,是一个强大的文本分析工具。
  每行按空格或TAB分割,输出log.txt文本中的1、4项。

$ awk '\{print $1,$4\}' log\.txt

实验环境

1.操作系统
操作机1:Linux_Centos
操作机2:Windows_7
操作机1默认用户名:root,密码:123456
操作机2默认用户名:hongya,密码:123456

步骤1:使用xshell建立连接

  1.1首先输入相应的用户名和密码进入实验机,然后进入操作机2(Windows_7),点击运行桌面上的“xshell”,连接操作机1,如图:

命令(IP以实验为准):ssh 90.10.10.27

图1

  1.2输入正确的用户名和密码,进行远程连接。见下图,连接成功:

用户名:root

密码:123456

图2

步骤2:基本的命令

  2.1whoami,显示当前用户名

命令:whoami

图3

  2.2pwd,显示当前所在文件目录

命令:pwd

图4

  2.3ls,列出当前文件夹,加上“-l”参数列表。

命令:ls

命令:ls -l

图5

  2.4mkdir,创建目录,父目录必须存在,如果父目录不存在,加上“-p”参数递归创建父目录。

建立目录hongya:mkdir hongya

建立目录hongya2以及其自目录hongya(会发现出现警告,无法创建):mkdir hongya2/hongya

使用命令“-p”递归创建父目录:mkdir -p hongya2/hongya

显示当前目录下内容:ls

显示目录hognya下内容:ls hongya

显示目录hongya2下的内容:ls hongya2

图6

  2.5cd,进入目录,输入的参数中,“.”代表当前目录,“..”代表上级目录。

进入目录:cd hongya2/hongya

返回上一层:cd ..

图7

  2.6rm,删除文件,加上“-rf”会递归删除目录及文件。

查看当前目录内容:ls

删除非空目录(可以发现,并不能直接删除hongya2,因为其目录下还有文件):rm hongya2

直接删除非空目录:rm -rf hongya2

再次查看当前目录内容,可以看到hongya2已经删除:ls

图8

  2.7touch,创建文件。

命令:touch hongya3

图9

步骤3:vi/vim命令

  3.1使用vim+文件名,创建文件。

命令:vi hongyaa

图10

  3.2进入到命令模式,见下图,可以看到信息为新文件hongyaa。

图11

  3.3在命令模式之中,只要按下“i”键就可以进入插入模式了。在插入模式当中,你可以发现在左下角状态栏中会出现“--INSERT--”的字样,那就是可以输入任意字符的提示。这个时候,键盘上除了“Esc“键都可以视作为一般的输入按钮了,可以进行任何的编辑。

图12

  3.4编辑完成之后,按“Esc”键进入命令模式,再按“shift+:”进入编辑模式,输入要编辑的内容,输入“wq”然后回车保存退出。

图13

  3.5使用命令直接查看文件内容。

命令:cat hongyaa

图14

注意事项:
  1、每个命令的执行失败,可能原因是当前用户权限不够,可以学习linux权限管理相关内容。
  2、第一次接触vi/vim的同学,可能一时不太理解vim操作,一定要搞清楚vim的几种模式,以及当前是出于哪一种模式

吴裕雄--天生自然HADOOP学习笔记:Shell工具使用的更多相关文章

  1. 吴裕雄--天生自然HADOOP学习笔记:hadoop集群实现PageRank算法实验报告

    实验课程名称:大数据处理技术 实验项目名称:hadoop集群实现PageRank算法 实验类型:综合性 实验日期:2018年 6 月4日-6月14日 学生姓名 吴裕雄 学号 15210120331 班 ...

  2. 吴裕雄--天生自然HADOOP学习笔记:基本环境配置

    实验目的 学习安装Java 学习配置环境变量 学习设置免密码登陆的方法 掌握Linux环境下时间同步的配置 实验原理 1.Java的安装 java是大数据的黄金语言,这和java跨平台的特性是密不可分 ...

  3. 吴裕雄--天生自然HADOOP学习笔记:使用yum安装更新软件

    实验目的 了解yum的原理及配置 学习软件的更新与安装 学习源代码编译安装 实验原理 1.编译安装 前面我们讲到了安装软件的方式,因为linux是开放源码的,我们可以直接获得源码,自己编译安装.例如: ...

  4. 吴裕雄--天生自然Hadoop学习笔记:Hadoop简介

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储.Hadoop实现了一个分布式文件系统(H ...

  5. 吴裕雄--天生自然ShellX学习笔记:Shell 文件包含

    和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空 ...

  6. 吴裕雄--天生自然ShellX学习笔记:Shell 输入/输出重定向

    大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默 ...

  7. 吴裕雄--天生自然ShellX学习笔记:Shell 函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action; [return ...

  8. 吴裕雄--天生自然ShellX学习笔记:Shell 流程控制

    和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); ...

  9. 吴裕雄--天生自然ShellX学习笔记:Shell test 命令

    Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 实例演示: num1=100 num2=100 if test $[num1] -eq $[num2 ...

随机推荐

  1. Yii2.0 引入外部js css

    <script src="<?= Yii::$app->request->baseUrl . '/js/jquery-2.1.1.min.js'?>" ...

  2. 「BJWC2010」模板严格次小生成树

    题目描述 小 \(C\) 最近学了很多最小生成树的算法,\(Prim\) 算法.\(Kruskal\) 算法.消圈算法等等.正当小\(C\)洋洋得意之时,小\(P\)又来泼小\(C\)冷水了.小\(P ...

  3. 4_2 刽子手游戏(UVa489)<自顶向下逐步求精法>

    Hangman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下:1.答案单字写在纸上(每个字元一张纸),并且被盖起来,玩家每次猜一个英文字元(letter).2.如果这个英文 ...

  4. typo3 网站迁移

    最近再弄这个typo3,虽然说看不怎么动,但是迁移嘛,最笨的办法就是整体过去,就是数据量太大了,哈哈,我先写一下我的笨办法: 注意:每个版本的typo3对php,mysql,apache的版本都有要求 ...

  5. 关于vscode的配置

    Git插件 通过GitLens -- Git supercharged可以很方便的查看历史作者 Setting.json(谨慎使用,因为对import进行排序改变后可能导致类的循环引用,因此不要轻易改 ...

  6. 结对编程任意Android App Demo

    一.产品说明 1.编写目的:用于获取百度图标. 2.情景设计:本产品用于展示图标.随着21世纪各类元素的普及,大部分的人群想下载各类网站的图标,也为了方便用户更便捷的下载而开发的. 3.Demo主要实 ...

  7. 【PAT甲级】1047 Student List for Course (25 分)

    题意: 输入两个正整数N和K(N<=40000,K<=2500),接下来输入N行,每行包括一个学生的名字和所选课程的门数,接着输入每门所选课程的序号.输出每门课程有多少学生选择并按字典序输 ...

  8. .hpp 文件

    .hpp 是 Header Plus Plus 的简写,是 C++程序头文件. 其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp ...

  9. 【Android多线程】Thread和线程池

    https://www.bilibili.com/video/av65170691?p=3 (本文为此视频听课笔记) 一.为什么要使用多线程 二.Thread 2.1 通过继承Thread类 2.2 ...

  10. golang的io.copy使用

    net/http 下载 在golang中,如果我们要下载一个文件,最简单的就是先用http.get()方法创建一个远程的请求后,后面可使用ioutil.WriteFile()等将请求内容直接写到文件中 ...