Linux系统基础(一)

Linux的基本原则:

  • 由目的单一的小程序组成,组合小程序完成复杂任务;
  • 一切皆文件;
  • 配置文件保存为纯文本格式。

1、shell

1.1 shell简介

Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

常见的shell有两种,一种是图形界面,即GUI,一种是命令行终端,即CLI。

常用的GUI:Graphic User Interface

  • Windows
  • X-Window
  • Gnome
  • KDE
  • Xfce

常用的CLI:Command Line Interface

  • bash
  • sh
  • csh
  • zsh
  • ksh
  • tcsh

Redhat 和 Centos使用的是:bash shell

1.2 命令行界面

命令行是可被用来输入指令到计算机系统中的基于文本的界面。 Linux的命令行是通过一个叫做shell程序提供。Redhat和Centos系统默认的shell为Bourne-Again Shell(bash)。 Bash是在类UNIX系统中,是Bourne shell(sh)使用的最成功的其中一个shell的改进版本。

当shell被交互使用时,它将显示一个字符串时,它从用户等待一个命令。这就是所谓的shell提示符。当一个普通用户启动一个shell,默认提示以$字符结束。

管理员用户:
[root@localhost ~]# 普通用户:
[zsl@localhost ~]$

2、Bash的特性:

  • 支持命令历史、命令补全
  • 支持管道、重定向
  • 支持命令别名
  • 支持命令行编辑
  • 支持命令行展开
  • 支持文件名通配
  • 支持变量
  • 支持编程

Bash支持的引号:

""	    //双引号,弱引用,可以实现变量替换
'' //单引号,强引用,不完成变量替换
`` //反引号,键盘左上角Esc下面的键,用于命令替换
$() //与反引号用法相同

Bash常用操作技巧之光标跳转

Ctrl+a 		跳到命令行首
Ctrl+e 跳到命令行尾
Ctrl+u 删除光标至命令行首的内容
Ctrl+k 删除光标至命令行尾的内容
Ctrl+l 清屏

Bash常用操作技巧

//命令历史
history //查看命令历史
-c //清空命令历史
-d OFFSET [n] //删除指定位置的命令历史
-w //保存命令历史至历史文件~/.bash_history中
//命令历史的使用技巧
!n //执行命令历史中的第n条命令
!-n //执行命令历史中倒数第n条命令
!! //执行上一条命令
!string //执行命令历史中最近一个以指定字符串开头的命令
!$ //引用前一个命令的最后一个参数
esc,. //按下esc松开后按.,引用前一个命令的最后一个参数 //tab键命令和路径补全
在命令行输入命令时,如果只记得命令的开头几个字母,可使用tab键补全命令;如果有多个命令都是以某字母开头,按两次tab,可以列出所有以该字母开头的命令,供用户选择。
在命令行输入文件路径时,如果忘记文件路径全称,则只需要输入文件路径开头几个字母,也可以使用tab键进行补全。 //命令别名
alias 别名='命令 [选项] [参数]’ 在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围为当前的shell进程。 //命令替换
把命令中某个子命令替换为其执行结果的过程被称作命令替换。
命令替换有两种方式:
$(命令)
'命令' //命令行展开
~:展开为用户的家目录
~USERNAME:展开为指定用户USERNAME的家目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi //文件名通配符
* //匹配任意长度的任意字符
? //匹配任意单个字符
[] //匹配指定范围内的任意单个字符
例如:[abc],[a-m],[0-9]
[[:space:]] //表示空白字符
[[:punct:]] //表示标点符号
[[:lower:]] //表示小写字母
[[:upper:]] //表示大写字母
[[:alpha:]] //表示大小写字母
[[:digit:]] //表示数字
[[:alnum:]] //表示数字和大小写字母
[^] //匹配指定范围之外的任意单个字符 //环境变量
PATH //命令搜索路径
HISTSIZE //命令历史缓冲区大小
SHELL //当前shell

3、 Linux基础命令

3.1命令格式

<命令>  [选项]  [参数]

选项:(可以有0个或多个)
短选项:-
多个选项可以组合: -a -b = -ab
长选项:--
长选项通常不能组合
参数:命令的作用对象(可以有0个或多个)

3.2命令类型

Linux命令分为两种类型:

  • 内部命令:shell内置
  • 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
type    //显示指定命令属于哪种类型
[root@localhost ~]# type cd
cd is a shell builtin

3.3基础命令

目录管理命令
 ls      //列出目录内容
-l //长格式
//以长格式显示的第一段含义:
第一个字符:文件类型
- //普通文件(f)
d //目录文件
b //块设备文件(block)
c //字符设备文件(character)
l //符号链接文件(symbolic link file)
p //命令管道(pipe)
s //套接字文件(socket)
后面九位字符:文件权限
9位,每3位一组,每一组:rwx(读,写,执行)
//以长格式显示的第二段含义:
文件硬链接的次数
//以长格式显示的第三段含义:
文件的属主(owner)
//以长格式显示的第四段含义:
文件的属组(group)
//以长格式显示的第五段含义:
文件大小(size),单位是字节
//以长格式显示的第六,七,八段含义:
时间戳(timestamp),最近一次被修改的时间
访问 //access,访问的时间
修改 //modify,文件内容被修改的时间
改变 //change,metadata(元数据)变化的时间
-h //做单位转换
-a //显示以.开头的隐藏文件
. //表示当前目录
.. //表示父目录
-d //显示目录自身属性
-i //显示文件的inode(index node)
-r //逆序显示
-R //递归(recursive)显示 cd //切换目录 pwd //查看当前所在目录路径 tree //查看目录树
-d //只显示目录
-L level //指定显示的层级数目
-P 字符串 //显示指定字符串匹配到的文件
文件管理命令
 mkdir   //创建目录
-p //创建目录时若父目录不存在则自动创建
-v //显示目录创建过程 rmdir //删除目录,只能删除空目录 touch //创建一个空文件,touch还有一个作用是修改文件的时间戮 stat //显示文件或文件系统的状态 rm //删除文件,删除命令默认会提示是否需要删除,如果要使用命令本身可以在命令前加一个\。
例如:\rm,这样删除就不会有提示了
-r //递归删除,删除目录时必须使用此选项
-f //强制删除,不询问 cp //复制文件,一个文件到一个文件,多个文件到一个目录
-r //递归拷贝,拷贝目录时必须使用此选项
-p //拷贝时保留原权限
-a //相当于-rp mv //移动文件
文本内容查看命令
cat     //将文件内容输出至标准输出(屏幕)
-n //显示行号
注意:使用cat查看文件内容时会将文件的所有内容加载至内存,所以应避免使用cat打开巨大文件 tac //倒序打印文件内容至标准输出 more //全屏查看文本文件内容,只能从前往后,不能从后往前。
//文件内容显示完后自动退出 less //全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用 head //从头部开始打印文件内容,默认打印10行
-n //指定要打印的行数,-n 可以是15也可以是-15 tail //查看文本文件尾部内容
-n //指定要打印的行数,可以是-n 15也可以是-15
-f //实时监测文件末尾内容
主机管理命令
//主机名管理

    hostname    //查看或临时修改主机名,重开终端有效,重启失效
如:hostname zsl
hostnamectl //查看或永久修改主机名,重开终端生效,重启依然有效
如:hostnamectl set-hostname zsl //其它 time //显示命令的执行时间,例如time ls /etc clear //清屏 whoami //显示当前登录用户 who //查看当前在线用户 w //显示当前在线用户并显示其在运行的命令 which //显示指定命令的绝对路径 date //显示或设置日期与时间
//不带参数的date用于显示当前系统日期与时间
//格式化输出时间:+
%Y //年
%m //月
%d //日
%F //年-月-日
%H //时
%M //分
%S //秒
-s //以字符串方式设置时间 cal //打印日历 ldd //查看指定程序有哪些依赖库文件
程序组成:
二进制程序
库文件
配置文件
帮助文件

3.4如何获取命令帮助

内部命令:
help COMMAND
外部命令:
COMMAND –help
man手册:
man COMMAND
//man手册注意事项
[]:可选
<>:必选
…:可出现多次
|:多选一
{}:分组
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS:说明每一个选项的意义
FILES:此命令相关的配置文件
BUGS:报告bug
EXAMPLES:命令示例
SEE ALSO:另外参照
翻屏:空格(向后翻一屏),b键(向前翻一屏)
查找:
/KEYWORD:从前往后查找KEYWORD
?KEYWORD:从后往前查找KEYWORD
n:下一个匹配的行
N:前一个匹配的行
q:退出

Linux—系统基础一的更多相关文章

  1. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

  2. Linux系统基础命令

    这是看itercast的学习笔记 Linux系统基础命令 日期时间 命令date用以查看.设置当前系统时间:格式化显示时间: +%Y--%m--%d 命令hwclock(clock)用以显示硬件时钟时 ...

  3. linux系统基础入门

    使用工具:源码管理,自动部署,web服务器(linux) linux系统基础入门 1.下载地址 2.本文介绍的是一个基于Ubuntu的开源操作系统 下载优麒麟 Ubuntu是一个广泛应用于个人电脑,云 ...

  4. Linu之linux系统基础优化和基本命令

    Linux系统基础优化和基本命令 网络参数设定命令 ifconfig: 查询,设置网卡和ip等参数 ifup,ifdown: 脚本命令,更简单的方式 ip: 符合指令,直接修改上述功能 编辑网卡配置文 ...

  5. (转)Linux系统基础网络配置老鸟精华篇

    Linux系统基础网络配置老鸟精华篇 原文:http://blog.51cto.com/oldboy/784625 对于linux高手看似简单的网络配置问题,也许要说出所以然来也并不轻松,因此仍然有太 ...

  6. Linux 系统基础优化和常用命令

    目录 Linux 系统基础优化和常用命令 软连接 tar解压命令 gzip命令 netstart命令 ps命令 kill命令 killall命令 SELinux功能 iptables防火墙 Linux ...

  7. Linux系统基础

    Linux系统基础 目录   简介 0x01 Linux文件与目录管理 0x02 Linux系统用户以及用户组管理 0x03文档的压缩与打包 0x04 apt安装软件 0x05 进程管理 标签 Lin ...

  8. 运维 07 Linux系统基础优化及常用命令

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

  9. linux系统基础(一)

    Linux简介与安装Unix ;windows; linux; apple(mac) linux=kernel (内核)=OSlinux全是文件============================ ...

随机推荐

  1. python操作MySQL、事务、SQL注入问题

    python操作MySQL python中支持操作MySQl的模块很多 其中最常见就是'pymysql' # 属于第三方模块 pip3 install pymysql # 基本使用 import py ...

  2. scanf需要多输入一行是什么问题

    有大佬知道用scanf输入,执行程序要多输入一行才能运行一般是什么问题呢 scanf的问题,其中多了\n. scanf如果加入\n,会导致需要多输入一次数据. 错误实例:

  3. 好客租房8-React基础阶段总结

    React总结 1react是构建用户组件的javascript库 2使用react是,推荐使用脚手架方式 3初始化项目命令:npx create-react-app my-app 4启动项目命令:y ...

  4. 111_Power Pivot 24小时维度:累计、同比、环比相关

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 今天有朋友讨论怎么做每天24小时维度的工作量计算(运营类企业,每天24小时都在运营)需求如下: 1.从0时到23 ...

  5. Fastflow——基于golang的轻量级工作流框架

    Fastflow 是什么?用一句话来定义它:一个 基于golang协程.支持水平扩容的分布式高性能工作流框架. 它具有以下特点: 易用性:工作流模型基于 DAG 来定义,同时还提供开箱即用的 API, ...

  6. mysql外键与表查询

    目录 自增特性 外键 外键关系 外键创建 外键的约束效果 级联更新级联删除 多对多关系 一对一关系 表查询关键字 select与from where筛选 group by分组 练习 关系练习 查询练习 ...

  7. Vue基础之 动态组件

    为什么会有动态组件> vue 通过组件机制 实现的页面功能的模块化处理,通常情况下 我们在vue中使用组件  就是先定义组件 然后再需要的地方 插入组件即可 但是在某些情况下 需要根据不同的需求 ...

  8. ASP.NET MVC 处理管线模型

    MVC管道整体处理模型 1.在ASP.NET MVC处理管线中的第一站就是路由模块.当请求到达路由模块后,MVC框架就会根据Route Table中配置的路由模板来匹配当前请求以获得对应的contro ...

  9. 【Spring】事务的执行原理(二)

    前置知识 事务的执行步骤如下: 获取事务管理器 创建事务 执行目标方法 捕捉异常,如果出现异常进行回滚 提交事务 public abstract class TransactionAspectSupp ...

  10. [二进制漏洞]栈(Stack)溢出漏洞 Linux篇

    目录 [二进制漏洞]栈(Stack)溢出漏洞 Linux篇 前言 堆栈 堆栈(Stack)概念 堆栈数据存储方式 函数调用 函数调用C语言代码 函数调用过程GDB调试 函数Call返回原理 函数栈帧 ...