Linux终端

  进入编辑IP地址命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0

    按键“i”:进行编辑

    按键“ESC”:退出编辑

     按键“:”:输入wq,退出

  重启网络服务命令:/etc/init.d/network restart

  虚拟终端 mingetty 程序产生

  切换终端 ctrl+alt+FN N=1~6

  输入tty显示当前的那个终端

  模拟终端 使用ssh通过网络连接到Linux

  /dev/pts/0

  Secure shell    SSH TCP22端口连接到Linux

Linux的shell

  GUI

    Gnome C语言开发

    KDE C++开发

    Xface 轻量级图形界面

  CLI

    Bsh Unix提供的shell 功能弱

    sh 安全稳定

    csh Bill joy 研发Csh语法接近C语言 功能比sh强

    ksh 商业版的ksh改进了csh GNU组织开发了免费的ksh 比商业版的ksh功能少

    bash GNU组织融合了Ksh Csh 和sh特性重新开发 能够操纵Liunx和Unix

    zsh

    tcsh

查看当前使用的shell

[root@WebServer ~]# echo $0

-bash

查看Linux可用的shell

[root@WebServer ~]# cat /etc/shells

/bin/sh

/bin/bash

bash功能

  1. 命令行编辑
  2. 内部命令和外部命令
  3. 命令补全 路径补全
  4. 命令历史
  5. 文件名通配符
  6. 命令别名
  7. 命令替换
  8. 命令行展开{} 多项式
  9. 管道和重定向

命令行编辑

  光标快速移动

  CTRL+a    快速跳转到行首

  CTRL+e    快读跳转到行尾

  删除命令行中的内容

  CTRL+w   删除光标前一个单词

  CTRL+u    删除光标到行首的字符

  CTRL+k     删除光标到行尾的字符

  清屏

  CTRL+l      Windows命令提示符 cls

  取消不执行的命令

  CTRL+c

内部命令和外部命令

内部命令         shell程序自带的命令

外部命令         在系统的某个路径下的可执行程序

外部命令查找         依赖于PATH变量

查看外部命令搜索路径 查看PATH变量

echo $PATH

  [root@localhost ~]# echo $PATH

  /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

type pwd 查看是否是内部命令还是外部命令

[root@localhost ~]# type pwd

  pwd is a shell builtin

命令补全和路径补全

命令补全         按tab键补全命令          连按tab键 列出所有可能的命令

hash表缓存命令所在位置

hash –d wc 删除wc命令缓存

hash –r     清空hash缓存表

路径补全         按tab键补全路径          连按tab键 列出所有可能的命令

命令历史

  查看命令历史:history

  缓存中的命令覆盖历史文件中:history –w

  将缓存的新命令 追加到历史文件中:history –a

  查看缓存大小命令:echo $HISTSIZE

  [root@localhost ~]# echo $HISTSIZE

  1000

  查看历史文件大小命令:echo $HISTFILESIZE

  [root@localhost ~]# echo $HISTFILESIZE

  1000

  查看历史文件命令:echo $HISTFILE

  [root@localhost ~]# echo $HISTFILE

  /root/.bash_history

查看$HISTCONTROL变量的值

  echo $HISTCONTROL=ignoreups

  [root@localhost ~]# echo $HISTCONTROL

  Ignoredups       不记录后面重复的命令,只记录第一个

  export HISTCONTROL=ignorespace

  [root@localhost ~]# export HISTCONTROL=ignorespace

  [root@localhost ~]# echo $HISTCONTROL

  Ignorespace     不记录以空格开始的命令

  export HISTCONTROL=ignoreboth

  [root@localhost ~]# export HISTCONTROL=ignoreboth

  [root@localhost ~]# echo $HISTCONTROL

  Ignoreboth       不记录以空格开始的命令,也不记录后面重复的命令

  执行之前的命令

  History 查看命令历史

  !10   可以执行命令历史中第10行命令

  !-1    可以执行命令历史中倒数第1行命令

  上下键可以翻命令历史

  Ctrl+p       向上翻

  Ctrl+n       向下翻

  当前命令 调用上一条命令的最后一个参数

  第一种方法:

  ESC松开 再按“.”

  第二种方法:

  输入“!$”

  清空命令历史:history -c

  [root@localhost ~]# history -c

  [root@localhost ~]# history

  1         history

  History 命令参数

  -c      清空命令历史

  -w     保存命令历史到历史文件

  -a      附加命令历史到历史文件

  -d 4  删除命令历史的第4条命令

文件名通配符

通配符 特殊的字符       不表示字符的表面意思         而是能够匹配符合指定特征的字符

“*”       代表任意长度的字符

“?”       代表任意单个字符

“[]”

“[^]”

“[‘ ‘]”

查看当前目录下所有的文件名字

[root@WebServer tmp]# ls

   a1c  a5b  a b  acb  bac  bca  cab         yum.log

   a3d  a7c  abc  b9c  bba  caa  lost+found

  通配符“*”

  [root@WebServer tmp]# ls a*

  a1c  a3d  a5b  a7c  a b  abc  acb

  通配符“?”

  [root@WebServer tmp]# ls a?b

  a5b  a b  acb

  通配符“[字母区间]”

  [root@WebServer tmp]# ls a[a-z]b

  Acb

  通配符“[数字区间]”

  [root@WebServer tmp]# ls a[1-9]c

  a1c  a7c

通配符“[‘ ‘]” 查找文件名中间有空格的文件

[root@WebServer tmp]# ls a[' ']b

a b

[:digit:]     代表数字 [0-9]

[root@WebServer tmp]# ls a[[:digit:]]c

a1c  a7c

[:space:]  代表空格

[root@WebServer tmp]# ls a[[:space:]]b

a b

[:lower:]   代表[a-z]

[:upper:]  代表[A-Z]

[:alpha:]   代表[a-Z]

通配符“[^ ]”排除所选范围内的文件

[root@WebServer tmp]# ls a[^1-5]c

a7c  abc

命令别名

alias cmdalias=’command [option][argument]’

查看alias命令为shell内部命令

[root@WebServer ~]# type alias

alias is a shell builtin

查看定义的别名

[root@WebServer ~]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

定义命令别名

[root@WebServer ~]# alias if1='ifconfig eth0'

调用定义命令

[root@WebServer ~]# if1

eth0      Link encap:Ethernet  HWaddr 00:0C:29:5B:9F:95

inet addr:192.168.80.222  Bcast:192.168.80.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe5b:9f95/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:1413 errors:0 dropped:0 overruns:0 frame:0

TX packets:552 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:108205 (105.6 KiB)  TX bytes:60165 (58.7 KiB)

调用命令本身

[root@WebServer ~]# \ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:5B:9F:95

inet addr:192.168.80.222  Bcast:192.168.80.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe5b:9f95/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:1648 errors:0 dropped:0 overruns:0 frame:0

TX packets:667 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:127043 (124.0 KiB)  TX bytes:74955 (73.1 KiB)

lo        Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:16436  Metric:1

RX packets:5 errors:0 dropped:0 overruns:0 frame:0

TX packets:5 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:490 (490.0 b)  TX bytes:490 (490.0 b)

查看当前目录下所有隐藏文件

[root@WebServer ~]# ls –a

将命令别名添加到用户环境配置文件

[root@WebServer ~]# vi .bashrc

# .bashrc

# User specific aliases and functions

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

编辑/etc/bashrc 添加命令别名对所有用户生效

[root@WebServer ~]# vi /etc/bashrc

删除别名unalias cmdalias

命令替换

使用命令执行的结果替换该命令

使用“反引号”命令替换`命令`

[root@WebServer tmp]# touch file-`date +%Y-%m-%d-%H-%M-%S`

使用$(命令)替换命令

[root@WebServer tmp]# echo "The current directory is $(pwd)"

The current directory is /tmp

[root@WebServer ~]# date --help

[root@WebServer tmp]# touch file-$(date +%Y-%m-%d-%H-%M-%S)

在bash中反引号` `弱引用 能够实现命令替换,单引号‘ ‘强引用不能够实现命令替换

路径展开

mkdir /tmp/zz/a/b /tmp/yy/a/b等于mkdir /tmp/{zz,yy}/a/b

[root@WebServer ~]# mkdir /tmp/{a,b}{c,d} -v

mkdir: 已创建目录 "/tmp/ac"

mkdir: 已创建目录 "/tmp/ad"

mkdir: 已创建目录 "/tmp/bc"

mkdir: 已创建目录 "/tmp/bd"

[root@WebServer ~]# mkdir /tmp/{zz,yy}/a/b -pv

mkdir: 已创建目录 "/tmp/zz"

mkdir: 已创建目录 "/tmp/zz/a"

mkdir: 已创建目录 "/tmp/zz/a/b"

mkdir: 已创建目录 "/tmp/yy"

mkdir: 已创建目录 "/tmp/yy/a"

mkdir: 已创建目录 "/tmp/yy/a/b

mkdir /tmp/{etc/{init.d,sysconfig},usr/{lib,bin,include},var/{spool,run},proc,sys,bin,lib}

输入输出重定向

标准输入(stdin)

标准输出(stdout)

标准错误输出(stderr)

查看标准输入输出设备

ls –l /dev/std*

查看文件内容

tail –f /etc/passwd

ctrl+z 将进程转到后台

ps 查看运行的进程

ls –l /proc/进程号/fd       查看进程下的文件描述符

[root@WebServer ~]# ps

PID TTY          TIME CMD

1235 pts/0    00:00:00 bash

1253 pts/0    00:00:00 tail

1274 pts/0    00:00:00 ps

[root@WebServer ~]# ls -l /proc/1253/fd

总用量 0

lrwx------. 1 root root 64 3月  11 04:47 0 -> /dev/pts/0

lrwx------. 1 root root 64 3月  11 04:47 1 -> /dev/pts/0

lrwx------. 1 root root 64 3月  11 04:47 2 -> /dev/pts/0

lr-x------. 1 root root 64 3月  11 04:47 3 -> /etc/passwd

lr-x------. 1 root root 64 3月  11 04:47 4 -> inotify

重定向:改变标准输入、标准输出的方向叫做重定向

重定向标准输出

操作符“>”将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上

将标准输出和标准错误输出重定向到同一个文件

[zzy@WebServer ~]$ find /etc/ -name "*.conf" &>ab

[zzy@WebServer ~]$ cat ab

将标准输出和标准错误输出重定向到不同文件

[zzy@WebServer ~]$ find /etc/ -name "*.conf" 1>a 2>b

[zzy@WebServer ~]$ cat a

操作符“>>”将命令执行的结果追加输出到指定文件

[zzy@WebServer ~]$ echo "12345">hn

[zzy@WebServer ~]$ cat hn

[zzy@WebServer ~]$ echo "abcde">>hn

[zzy@WebServer ~]$ cat hn

abcde

重定向标准输入

操作符“<”将命令中接受输入的途径由默认的键盘更改为指定的文件

Here document

操作符“<<”指定输入结束符

重定向     标准输出

Ifconfig eth0 1>123

[root@WebServer ~]# ifconfig eth0 1>123

[root@WebServer ~]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:5B:9F:95

inet addr:192.168.80.222  Bcast:192.168.80.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe5b:9f95/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:775 errors:0 dropped:0 overruns:0 frame:0

TX packets:309 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:59300 (57.9 KiB)  TX bytes:37335 (36.4 KiB)

重定向     标准错误输出

Ifconfig eth1 2>234

[root@WebServer ~]# ifconfig eth1 2>234

[root@WebServer ~]# cat 234

eth1: error fetching interface information: Device not found

[zzy@WebServer ~]$ find /etc/ -name "*.conf"

/etc/security/group.conf

find: “/etc/audit”: 权限不够

管道技术

1、  在管道后面的命令,都不应该再加文件名

2、  再管道中只有标准输出才能传递给下一个命令 标准错误输出直接输出到终端

可以把标准错误输出给重定向

[worker@WebServer ~]$ find /etc –name “*.conf” 2>/dev/null | grep rc

3、  有些命令不支持管道技术

xargs 让ls支持管道技术

[root@WebServer ~]# which cat | xargs ls –l

谢谢韩立辉老师

Linux基础入门 第二章 Linux终端和shell的更多相关文章

  1. Linux 基础入门 第二周9.21~9.27

    一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴 ...

  2. Linux基础入门 第一章:Linux环境搭建——Redhat 6.4图文安装教程

    1.创建新的虚拟机 2.选择自定义 3.选择Workstation 10.0 4.选择稍后安装操作系统 5.选择Red Hat 6 64位 6.对虚拟机命名和选择安装位置 7.选择处理器配置 8.选择 ...

  3. Linux 基础入门(新版)”实验报告一~十二

    实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...

  4. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  5. Linux基础入门教程

    Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...

  6. Linux基础入门 - 3

    第四节 Linux 目录结构及文件基本操作 4-1.Linux目录结构 Linux 的目录与 Windows 的目录的实现机制是完全不同的.一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关 ...

  7. Linux基础入门 - 2

    第三节 用户及文件权限管理 3-1.Linux用户管理 Linux 是一个可以实现多用户登陆的操作系统,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是 ...

  8. Linux基础入门 - 1

    第一节 Linux简介 Linux 就是一个操作系统,也就是系统调用和内核那两层,Linux 本身只是操作系统的内核(内核是使其他程序能够运行的基础.它实现了多任务和硬件管理,用户或者系统管理员交互运 ...

  9. 在学习linux基础入门时的一些问题总结(1)

    本周在实验楼完成了<linux基础入门>的21个实验,虽然之前已经学习过linux的相关课程,对linux下的命令也有一些了解和实践,但完成这21个实验以及35个练习题仍然遇到了许多的问题 ...

随机推荐

  1. OpenGL学习--05--纹理立方体--BMP文件格式详解(转载)

    http://blog.csdn.net/o_sun_o/article/details/8351037 BMP文件格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称 ...

  2. linux_kernel_uaf漏洞利用实战

    前言 好像是国赛的一道题.一个 linux 的内核题目.漏洞比较简单,可以作为入门. 题目链接: 在这里 正文 题目给了3个文件 分配是 根文件系统 , 内核镜像, 启动脚本.解压运行 boot.sh ...

  3. mysql 客户端

    MySQL是基于C/S模式的数据库管理系统.MySQL公司开发了众多的客户端软件来帮助用户管理MySQL软件,最著名的就是 MySQL Command Line Client 和 MySQL-Work ...

  4. Mysql中的delimiter详解

    初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程.触发器.函数等. 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其 ...

  5. SQLSERVER数据库备份操作和还原操作做了什么

    SQLSERVER数据库备份操作和还原操作做了什么 看了这篇文章:还原/备份时做了些什么 自己也测试了一下,下面说的错误日志指的是SQLSERVER ERRORLOG 一般在C:\Program Fi ...

  6. C# 运行 C#代码脚本文件

    https://files.cnblogs.com/files/LittleJin/CSScriptRun.zip

  7. [C++] 用Xcode来写C++程序[6] Name visibility

    用Xcode来写C++程序[6] Name visibility 此小结包括了命名空间的一些使用细节 命名空间 #include <iostream> using namespace st ...

  8. 屏蔽响应事件继续向父视图传递的category

    屏蔽响应事件继续向父视图传递的category 这篇教程是上一篇教程的升级版,将复杂的代码封装成了category,更便于使用:) 效果: 源码: UIGestureRecognizer+EnvetI ...

  9. SQL server数据库的部署

    一.实验目标 1.安装一台SQL  SERVER(第一台),然后克隆再一台(第二台),一共两台,修改两台的主机和IP地址. 2.使用注册的方式,用第二台远程连接第一台 二.实验步骤 1)先打开一台Wi ...

  10. 缓存知识整理(包含Redis)

    一.缓存知识 1.buffer和cache的区别 Buffer 缓冲 写操作 写缓冲    Cache 缓存 读操作 读缓存 磁盘-->内存-->CPU 2.PHP的缓存方案 官方文档:h ...