Shell 详解

Shell 简介

Linux精髓在于命令行操作

Shell是一种特殊的程序

是内核与用户的一种接口

Shell命令解释器

Shell一种解释性的语言(内部命令/外部命令)

内部命令:系统自带的,随系统内核一起启动(56)

外部命令:一些额外的软件或者程序

sh (Borurne Shell)

csh

ksh

BASH: 是rhel中默认的一种

shell命令规范

命令字 [选项] [参数]

选项

作用:用于调节命令的具体功能

“-” 引导短格式选项(单个字符)ex: “-l”

“–” 引导长格式选项(多个字符) ex: “–color”

多个短格式选项可以写在一起

-a -l -z -x --> -alzx

参数

命令操作的对象

有文件、目录等

ex: ls -l /home

在Liunx当中严格区分大小写

在Linux当中一切皆文本

常用命令

su [-] username 切换当前登陆

有 - : 代表切换bash

无 - : 代表不切换bash

exit:退出

查看系统当前主机名

hostname

修改主机名并生效

hostnamectl set-hostname yourhostname

关机操作

poweroff

init 0

shutdown -h now

halt

重启命令

reboot

shutdown -r now # 现在重启

shutdown -r now # 15分钟后重启

查看当前系统时间

date

查看日历

cal

cal 年份 # 查看全年日历

cal 月份 年份 # 查看某年某月的日历

查看系统当前IP地址

ifconfig

ip addr show (rhel7)

测试网络连通性

ping 127.0.0.1

ping 127.0.0.1 -c 4 # 限制ping包次数

BASH 常用快捷方式

中断当前操作

CTRL + c

清屏

CTRL + l = clear

换行

\

光标跳到行首

CTRL + a

光标跳到行尾

CTRL + e

清空到光标所在位置的前面所有内容

CTRL + u

清空到光标所在位置的后面所有内容

CTRL + k

查看历史命令 (默认保留1000行)

history

调用历史命令

!n (ex: !22)

清空历史命令

history -c

字体放大

CTRL + SHIFT + +

字体缩小

CTRL + -

Linux 目录结构

boot:存放系统引导文件和内核文件

bin:存放可执行文件(二进制文件)(ls,cat,mkdir)

sbin:root用户执行命令

home:普通用户的家目录

root:root用户的家目录

dev:放置所有设备文件(外设 u盘、磁盘、光驱)/dev/md* /dev/sd* /dev/hd*

etc: 放置所有配置文件(服务)

lib/lib64:动态链接库文件(共享库) 类似于 .dll

media:媒体库文件

opt:文件安装目录,安装软件就在opt目录下

mnt:挂载点目录 mount * *

var: 存放一些需要改变数据的文件 日志,某些大文件的溢出区

proc:虚拟文件系统目录,放的是内存的一个映射

cat /proc/cpuinfo # 查看CPU运行状态

cat /proc/meminfo # 参看内存运行状态

cat /proc/version # 查看系统版本

uname -m # 查看CPU架构

uname -r # 查看内核版本

usr: 最大的目录 只要用到的目录或者文件都在这儿 /usr/sbin  /usr/doclinux

tmp: 共享文件夹,临时目录

lost+found:平时为空,只有系统在非正常关机时才会有,保存意外掉电内存数据

Linux中,如何获得命令帮助

help (内部命令) cd,kill 56条

- ex:help cd

–help (适用于大多数外部命令查找) ls

- ls --help

使用man手册进行命令查看(man:命令阅读手册)

“男人没有什么搞不定的”

man 命令字

上下键滚动文本

Page down & Page Up 上下翻页

空格也支持翻页,回车键走一行

输入 / ,可以查找

info 也可进行命令帮助查找(使用与man接近)

pinfo 命令字 以浏览器的形式查看详细的GUN信息

/usr/share/doc # 所有已安装软件的说明文件

firefox file:///usr/share/doc

Linux 常用命令

目录操作命名

cd命令: 切换工作目录

cd [目录位置]

绝对路径: cd /home/ruochen

相对路径:

cd . 切换到当前目录

cd … 返回到上一级目录

cd - 返回上一次所在的工作路径

cd …/…/ 返回到上一级目录的上一级目录

cd ~ 返回到用户的家目录

pwd: 查看当前所在的工作目录

ls: 列出当前目录下的文件或者目录

在Liunx中,以.开头的文件是隐藏文件

- 格式: ls [选项] [目录或文件名]

- 选项:

- -l 以长格式显示

- -a 显示所有文件目录信息,包括隐藏文件

- -d 显示目录本身的属性

- -h 显示详情信息,变换了统计单位

- --color 以颜色区分不同类型的文件

- ll == ls -l

mkdir: 创建一个新目录

格式: mkdir [选项-p] [路径] 目录名

-p: 递归创建多级目录

mkdir -p b/c/e/f/g

rmdir: 删除一个空目录

-p: 递归删除

文件操作命令

touch,cp,mv,rm,find

touch: 创建一个空文件,更新文件时间标记

格式: touch filename

在Linux中,不以后缀区分文件

echo: 打印某个东西

重定向写

echo “hello world” > a.txt

cp: 复制文件或者目录

格式: cp [选项] 源文件/目录 目标文件/目录

-r: 递归复制整个目录树

cp /root/aa/a.txt /root/bb

cp …/aa/a.txt .

rm: 删除文件或目录

rm -rf * 从删库到跑路

- 格式: rm [选项] 文件或者目录

- -r: 递归删除整个目录树

- -f: 强制删除不给任何提示

mv:移动文件或者目录

格式: mv [选项] 源文件/目录 目标文件/目录

mv text/b.txt text-2/

注: 若移动目标位置与原位置相同(当前下操作),则此操作相当于重命名

mv text text-1

find: 用于查找文件或者目录

格式: find [查找范围] [查找条件]

查找条件

-name: 按文件名查找 [root@localhost ~]# find / -name initial-setup-ks.cfg

/root/initial-setup-ks.cfg

[root@localhost ~]# find / -name initial-*

/root/initial-setup-ks.cfg

[root@localhost ~]# find / -name initial-*-*

/root/initial-setup-ks.cfg

[root@localhost ~]#

-type: 按文件类型查找

f: 普通文件

d: 目录

b: 块设备文件

c: 字符设备文件 [root@localhost ~]# find / -name text -type d

-user: 按文件属主查找(这个文件是谁的) [root@localhost ~]# find / -user ruochen -name initial-setup-ks.cfg -type f

[root@localhost ~]# find / -user ruochen -type f -name ruochen.initial-setup-ks.cfg

-size: 按文件大小进行查找 [root@localhost ~]# find /var/ -size +10k -type f

[root@localhost ~]# find /var/ -size -1k -type f

[root@localhost ~]# find /var/ -size +10k -size -11k -type f

-a: 逻辑与

-o: 逻辑或 [root@localhost ~]# find / -name anaconda-ks.cfg -o -name initial-setup-ks.cfg

/root/anaconda-ks.cfg

/root/initial-setup-ks.cfg

!: 逻辑非 [root@localhost ~]# find / ! -name temp -type f

alias 别名; 为使用频率较高的命令设置简短的调用名称

查看当前用户所有别名

alias [别名]

设置别名

alias 别名=“实际执行的命令” grep -c 'boot' initial-setup-ks.cfg

7

[root@localhost ~]# alias aa="grep -c 'boot' initial-setup-ks.cfg "

[root@localhost ~]# alias aa

alias aa='grep -c '\''boot'\'' initial-setup-ks.cfg '

[root@localhost ~]# aa

7

取消别名: unalias [别名/-a]

-a: 取消所有别名 [root@localhost ~]# unalias aa

让别名永久生效

将别名设置在~/.bashrc文件中

vim .bashrc

cd cd. cd…

针对目录来说 . 当前位置/目录 pwd

针对文件来讲 . 在Linux中代表隐藏文件

cd

cd.

cd …

什么都不跟,代表切换到当前用户家目录

当前目录

代表切换到上级目录

~ 代表用户家目录

- 上次所操作的目录

文件内容操作命令

cat,less,head,tail,grep,wc

cat: 文件内容查看,显示出文件的全部内容

格式: cat filename

less(more): 全屏方式分页显示文件内容

格式: less/more filename

按回车Enter逐行滚动

按空格键向下翻页

按b键向上翻页

按q键退出

more用法与less一致,只是多了一个百分比显示

head(头部): 显示文件头部若干行,默认10行

格式: head [选项] filename [root@localhost ~]# head -n 5 initial-setup-ks.cfg

tail(尾部): 显示文件尾部若干行,默认10行

格式: tail [选项] filename [root@localhost ~]# tail -n 5 initial-setup-ks.cfg

wc: 统计文件内容的,默认情况下统计结果为: 行数 词数 字节数

格式: wc [选项] filename [root@localhost ~]# wc initial-setup-ks.cfg

选项:

-w: 统计字数 一个字被定义为由空白,跳格(制表符),换行以这些为分割字符串

-l: 行数

-c: 字节数

-m: 字符数 -m -c不能一起使用

-L: 打印最长行的长度 [root@localhost ~]# wc -l -c -w -L initial-setup-ks.cfg

grep: 在文件中查找并显示包含指定字符串的行

格式: grep [选项] 查找条件 目标文件

选项:

-c: 显示匹配行的数量

-i: 查找时不区分大小写

-v: 反转查找 [root@localhost ~]# grep -c 'boot' initial-setup-ks.cfg

7

[root@localhost ~]# grep -c -v 'boot' initial-setup-ks.cfg

42

[root@localhost ~]# grep -i 'agent' initial-setup-ks.cfg

查找条件设置:

查找条件用引号引起来

“^…”: 表示以… 开头

“…$”: 表示以… 结尾

“^$”: 匹配空行 [root@localhost ~]# grep -c '^$' anaconda-ks.cfg

[root@localhost ~]# grep -cv '^$' anaconda-ks.cfg

[root@localhost ~]# grep -c '^#' anaconda-ks.cfg

12

[root@localhost ~]# grep -c 'ation$' anaconda-ks.cfg

5

归档及压缩命令

tar: 压缩与解压缩 制作归档文件和释放归档文件

格式:

制作归档文件

tar [选项] [目录]/归档文件名 原文件/目录

释放归档文件

tar [选项] 归档文件 [-C 目标文件]

命令:

压缩:

tar -czvf [存放路径]归档文件名.tar.gz 原文件/目录

tar -cjvf [存放路径]归档文件名.tar.bz2 原文件/目录

-c 压缩

-z 压缩为.gz 格式

vf 显示详情信息

-j 压缩为.bz2格式

解压缩:

tar -xzvf [存放路径]归档文件名.tar.gz [-C 解压目录]

tar -xjvf [存放路径]归档文件名.tar.bz2 [-C 解压目录]

-x 解压 tar -czvf text.tar.gz text

tar -cjvf text.tar.bz2 text

tar -czvf /root/var.tar.gz /var/

tar -cjvf /root/var.tar.bz2 /var/

tar -czvf a.tar.gz text-1 text-2

[root@localhost ~]# tar -xzvf text.tar.gz

[root@localhost ~]# tar -xjvf text.tar.bz2

[root@localhost ~]# tar -xjvf text.tar.bz2 -C test

.gz格式

.bz2格式

.bz2格式压缩率比.gz格式压缩率高

华为linux基础入门,Linux入门篇 —— Shell详解相关推荐

  1. 学习linux命令,看这篇命令详解就够了

    序言 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了一些日常使用较为频繁的命令进行讲解,但还是免不了 ...

  2. 【Linux基础】 diff命令的参数详解和实例

    diff命令参数: diff - 找出两个文件的不同点 总览 diff [选项] 源文件 目标文件 描述 在最简单的情况是, diff 比较两个文件的内容 (源文件 和 目标文件). 文件名可以是 - ...

  3. Linux基础命令之:top命令详解以及VIRT,RES,SHR,DATA

    top 1.界面详解 第一行:系统运行时间和平均负载 当前时间.系统已运行时间.当前登录用户的数量.最近5.10.15分钟内的平均负载 第二行:任务 任务的总数.运行中(running)的任务.休眠( ...

  4. Mysql高手系列 - 第8篇:详解排序和分页(order by limit),及存在的坑

    这是Mysql系列第8篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符号分开的表示可选其一. 本章内容 详解排序查询 详解limit limit存在的坑 分 ...

  5. 玩转Mysql系列 - 第8篇:详解排序和分页(order by limit),及存在的坑

    打算提升sql技能的,可以加我微信itsoku,带你成为sql高手. 这是Mysql系列第8篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符号分开的表示可选 ...

  6. Linux 基础命令快速入门

    Linux 基础命令快速入门: 目录 Linux 基础命令快速入门: 1.vim 命令记录 2.开机.重启和用户登录注销 3.用户管理 4.用户组相关 5.用户信息文件 6.实用指令 7.帮助指令 8 ...

  7. linux基础(四):shell简单命令;文件系统命令,系统操作命令,文本操作命令;文本处理命令

    目录 一.shell简单命令 1.1命令入门 1.1.1命令提示符详解 1.1.2命令格式 1.2 获取命令的帮助 1.2.1 help 1.2.2 命令 --help 1.2.3 查手册&搜 ...

  8. 前端linux基础,这一篇就够了

    前端linux基础,这一篇就够了 退出当前操作 清理命令窗口 关闭命令窗口 创建文件 创建文件夹 删除文件 删除文件夹 重命名文件 发起请求(curl) 切换工作目录 查看当前完整路径 查看当前目录下 ...

  9. 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)

    本系列导航: 高通平台8953  Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...

最新文章

  1. mysql远程连接授权
  2. 【Android 安全】DEX 加密 ( DEX 加密原理 | DEX 加密简介 | APK 文件分析 | DEX 分割 )
  3. HttpRequest获取文件流,HttpResponse输出文件流
  4. 在pycharm里做echarts_用 ECharts 做出漂亮的数据统计图
  5. 提醒ASP.NET的初学者们注意加深以下方面的技术了解
  6. nodejs request module里的json参数的一个坑
  7. Springboot 项目启动后执行某些自定义代码
  8. 解析H.264视频编解码DSP实现与优化
  9. sql 除以_刷完这些SQL练习题,简单查询就熟能生巧了
  10. 上海技术计算机学校学费多少,上海web前端学校学费一般是多少
  11. [转载] python模板字符串和格式化字符串
  12. taro 微信公众号_Taro 如何开始微信小程序的开发
  13. iOS系统自带的视频播放器
  14. 算法进阶之BFS 算法
  15. C语言实现通过日期计算这是一年中的第几天
  16. 吴恩达机器学习15-异常检测
  17. 关于对接支付接口遇到的问题(微信和支付宝)
  18. 【品牌DTC增长力】私域,你做的可能是“假的”
  19. springboot(九)--统一异常处理(500)、错误页处理(404)
  20. 黑客与画家 读书笔记

热门文章

  1. 三菱FX2N系列PLC如何进行远程上下载和调试
  2. 点线面体:视觉元素与信息传达
  3. 腾讯qq中奖是真的吗_腾讯推出绝版QQ靓号选购,大家想买吗?
  4. html5字体转换器,仿手写字体转换器
  5. semver 源码解析(Npm library)
  6. 【python基础】——python 复数运算
  7. 逻辑推理——弟弟的编程课
  8. swift和python哪个好_单从语法角度讲,Swift 完爆 Java Python 和 C#吗?
  9. 抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(二)
  10. 2022年起重机司机(限桥式起重机)考试报名及起重机司机(限桥式起重机)免费试题