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