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 格局压缩率高