Shell基础命令(一)

 

Shell 教程

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

Shell 在线工具


Shell 脚本

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。

由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。


Shell 环境

Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

Linux 的 Shell 种类众多,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

Shell 基本命令

快捷键

  1. 1.tab 用于自动补全命令/文件名/目录名
  2. 2.ctrl + l  清理终端显示
  3. 3.clear/cls 清理终端显示
  4. 4.ctrl + c 终止当前操作
  5. echo命令

普通用户跟root切换 su:

  1. # 切换到普通用户:su 用户名
  2. # 切换到root用户:su
  3. [root@localhost test]# su lrj
  4. [lrj@localhost /]$ su
  5. Password:
  6. [root@localhost /]#

创建目录:

  1. [root@localhost /]# mkdir qiyue
  2. [root@localhost /]# ls
  3. bin boot dev etc home lib lib64 media mnt oldboy opt proc qiyue root run sbin srv sys tmp usr var
    # 在qiyue目录下递归创建目录 a/b c/d /子目录

 [root@localhost /]# cd qiyue/
 [root@localhost qiyue]# mkdir a/b c/d
 [root@localhost qiyue]# mkdir -p a/b c/d
 [root@localhost qiyue]# ls
 a c
 [root@localhost qiyue]# cd a  # 改变当前的目录/位置
 [root@localhost a]# ls
 b
 [root@localhost a]# cd ../c
 [root@localhost c]# ls
 d

  1. #递归创建test/a,b,c,d四个目录 {}同级

 [root@localhost qiyue]# mkdir -p test/{a,b,c,d}
 [root@localhost qiyue]# ls  # 查看当前目录下的所有文件
 a c test
 [root@localhost qiyue]# ls test #显示/test下的内容(查看指定目录下的所有内容)

 a b c d

  1. [root@localhost qiyue]# pwd # 打印当前工作目录
    /qiyue
  1.  
  1.  

  1. 文本编辑:
  1. vi # 记事本打开
  2. vim # notepad++ 打开
  3. 使用vi打开oldboy.py,默认是命令模式,需要输入a/i进入编辑模式,然后输入文本"Life is short,i use python"
  4. 按下esc键,回到命令模式
  5. 输入 :wq! 强制保存退出
  6. w write 写入
  7. q quit 退出
  8. ! 强制
  9. 或者 :x 保存退出
  10. ------
  11. :q 不保存退出
  12. :q! 不保存强制退出

查看纯文本内容: cat

  1. [root@localhost qiyue]# cat liu.txt
  2. 今天学习linux中的Shell命令.
  3. [root@localhost qiyue]#

more命令

1.more命令用于查看内容较多的文本,例如要看一个很长的配置文件,cat查看内容屏幕会快速翻滚到结尾。

2.more命令查看文本会以百分比形式告知已经看到了多少,使用回车键向下读取内容

  1. more /etc/passwd
  2. 按下空格space是翻页
  3. 按下b键是上一页
  4. 回车键向下读取内容

移动, 改名:mv

将liu.txt 移动到test目录下, 将test目录下的a改成aa

  1. [root@localhost qiyue]# ls
  2. a c liu.txt test
  3. [root@localhost qiyue]# mv liu.txt test
  4. [root@localhost qiyue]# ls
  5. a c test
  6. [root@localhost qiyue]# ls test
  7. a b c d liu.txt
    [root@localhost qiyue]# cd test/
  8. [root@localhost test]# mv a aa
  9. [root@localhost test]# ls
  10. aa b c d liu.txt
  11. [root@localhost test]#

删除命令rm:

  1. [root@localhost test]# rm liu.txt # #默认有提示删除,需要输入y, 加上参数-f 不提醒
  2. rm: remove regular file liu.txt’? y
  3. [root@localhost test]# ls
  4. aa b c d
  5. [root@localhost test]# rm -rf b #rm默认无法删除目录,需要跟上参数-r
  6. [root@localhost test]# ls
  7. aa c d
  8.  
  9. rm -rf /* # 跑路跑路跑路跑路跑路跑路跑路跑路跑路跑路
  1.  

echo命令

echo命令用于在终端输出字符串或变量提取后的值,格式是“echo 【字符串|$变量】”

  1. #默认吧内容显示到终端上
  2. echo "七月"
  3. #把“七月”写入到文件里!
  4. echo "七月" > /tmp/qiyue.txt
  5. echo $PATH #取出打印PATH的值

查找

  1. #Linux里如何找到需要的文件 例如 oldboy.py
  2. find 在哪里(目录) 什么类型(文件类型) 叫什么名字(文件名)
  3. 参数
  4.  
  5. -name 按照文件名查找文件
  6. -type 查找某一类型的文件,诸如:
  7. b - 块设备文件。
  8. d - 目录。
  9. c - 字符设备文件。
  10. p - 管道文件。
  11. l - 符号链接文件。
  12. f - 普通文件。
  13. s - socket文件
  14.  
  15. find /tmp/ -type f -name "oldboy.py"
  16.  
  17. #找出/tmp所有以 .txt 结尾的文件
  18. find /tmp/ -type f -name "*.txt"
  19.  
  20. #找到/etc下所有名字以host开头的文件
  21. find /etc -name 'host*'
  22.  
  23. #找到/opt上一个名为settings.py
  24. find /opt -name 'settings.py'

管道命令: |

  1. Linux提供的管道符“|”讲两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入。
  2. 常见用法:
  3. #检查python程序是否启动
  4. ps -ef|grep "python"
  5.  
  6. #找到/tmp目录下所有txt文件
  7. ls /tmp|grep '.txt'
  8.  
  9. #检查nginx的端口是否存活
  10. netstat -tunlp |grep nginx

grep

  1. 语法:
  2. grep [参数] [--color=auto] [字符串] filename
  3. 参数详解:
  4. -i : 忽略大小写
  5. -n : 输出行号
  6. -v : 反向选择
  7. --color = auto : 给关键词部分添加颜色
  8.  
  9. grep "我要找什么" /tmp/oldboy.txt
  10. #排除 -v,排除我要找的东西
  11. grep -v "我要找什么 /tmp/oldboy.txt

head、tail命令

  1. head显示文件前几行,默认前10
  2. tail显示文件后几行,默认后10
  3. #查看前两行
  4. head -2 /tmp/oldboy.txt
  5. #查看后两行
  6. tail -2 /tmp/oldboy.txt
  7. #持续刷新显示
  8. tail -f xx.log
  9.  
  10. #显示文件10-30行
  11. head -30 /tmp/oldboy.txt |tail -21
 
 
标签: Linux
 

运维02 Shell基础命令(一)的更多相关文章

  1. 运维 04 Shell基础命令(二)

    Shell基础命令(二)   查看Linux的发行版 cat /etc/redhat-release cat /etc/os-release 查看系统用户的id信息 id 用户名 id root id ...

  2. 自动化运维工具-Ansible基础

    目录 自动化运维工具-Ansible基础 什么是Ansible 同类型软件对比 Ansible的功能及优点 Ansible的架构 Ansible的执行流程 安装Ansible ansible配置文件 ...

  3. CentOS 下运维自动化 Shell 脚本之 expect

    CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...

  4. IT运维的五大基础知识

    IT运维的五大基础知识 | 浏览:331 | 更新:2014-09-25 11:36 IT运维对于很多企业都很重要,接下来运维的一些基础知识天天客服IT运维总监龙少文,就给大家介绍下IT运维的基础知识 ...

  5. 运维之linux基础知识(一)

    运维之linux基础知识(一) 1.GUI:Graphic User Interface 图形用户界面 2.CLI:Command line Interface 命令行界面 3 dll:Dynamic ...

  6. 运维之Linux基础(二)

    运维之Linux基础(二) 1. file 命令基期用法 2. 文件系统 Linux的文件系统结构是树状结构,所有的文件都在/root跟目录下 /boot:系统启动相关的文件, 如:内核.initrd ...

  7. 运维之Linux基础知识(三)

    运维之Linux基础知识(三) 1. 查看文本 cat tac more less head tail 1.1 cat 连接并显示文件 cat -n:在显示的时候,将每一行编号 -E:显示结束符$ - ...

  8. Linux运维常用150个命令

    Linux运维常用150个命令 转载自:www.cnblogs.com/bananaaa/p/7774467.html 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更 ...

  9. Windows服务器Pyton辅助运维--02.远程重启IIS服务器

    Windows服务器Pyton辅助运维 02.远程重启IIS服务器 开发环境: u  Web服务器: Windows Server 2008 R2 SP1 IIS 7.5 u  运维服务器: Pyth ...

随机推荐

  1. 测开之路三十四:html常用标签

    网页的结构: HTML:超文本标记语言是迄今为止网络上应用最为广泛的语言,也是构成网页文档的主要语言.HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字.图形.动画.声音.表格.链 ...

  2. Selenium:三种等待方式详解

    我们在做WEB自动化时,一般要等待页面元素加载完成后,才能执行操作,否则会报找不到元素的错误,这样就要求我们在有些场景下加等待时间. 我们平常用到的有三种等待方式: 强制等待 隐式等待 显示等待 一. ...

  3. Python3下安装Scrapy

    在windows下安装Scrapy的错误挺多的, 我将我安装成功的步骤发出来,供更多的人参考. 首先,直接进入Scrapy网站的文档Installation guide下的 Installing Sc ...

  4. 如何用Mybatis分库分表

    分库 在分库的时候 有时候为了方便 一些表需要存放所有库的信息,称为全局库.如:用户表存放所有的用户. 此时分库的思路 数据库分为全局库和业务库,其中业务库又分为N多个库,全局库只放个别表方便开发. ...

  5. kubernetes容器集群部署Etcd集群

    安装etcd 二进制包下载地址:https://github.com/etcd-io/etcd/releases/tag/v3.2.12 [root@master ~]# GOOGLE_URL=htt ...

  6. linux 用户空间与内核空间——高端内存了解

    Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...

  7. 力扣——Linked List Cycle(环形链表) python实现

    题目描述: 中文: 给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. ...

  8. java输出当前文件所在路径

    System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径

  9. Update Vim to 8.0 in Ubuntu

    add PPA sudo add-apt-repository ppa:jonathonf/vim Update and Install sudo apt-get update sudo apt-ge ...

  10. boost string algorithm

    The Boost.StringAlgorithms library provides many free-standing functions for string manipulation. 1. ...