文章目录
Shell
linux系统中运行的一种特殊程序
在用户和内核之间充当“翻译官”
在用户登录linux系统时,自动加载一个shell程序
Bash是Linux系统中默认使用的shell程序
附加软件在linux中叫目录
上图的部分解释
OS(操作系统)组成结构及作用
内核:面向硬件 外壳:面向用户
linux常用shell种类
不同的shell具备不同的功能,shell还决定了linux中默认的是/bin/bash,流行的shell有ash、bash、ksh、csh、zsh等不同的shell都有自己的特点以及作用
bash(Bash相当于启用了一个子shell hostnamectl才生效 主机重命名关键词)
大多数linux系统默认使用的shell,bash shell是Bourne shell的一个免费版本,她是最早的Unix shell,bash还有一个特点,可以通过help命令来查看帮助。包含的功能几乎可以涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径。
csh
C shell使用的是“类C”语法,csh是具有C语言风格的一种shell,其内部命令有52个,较为庞大。目前使用的并不多,已经被/bin/tcsh所取代。
ksh
Korn shell的语法与Bourne shell相同,同时具备了C shell的易用特点。许多安装脚本都使用ksh,ksh有42条内部命令,与bash相比有一定的限制性。
tcsh
tcsh是csh的增强版,与C shell完全兼容。
sh
是一个快捷方式,已经被/bin/bash所取代
nologin
指用户不能登录
zsh
目前linux里最庞大的一种shell:zsh。它有84个内部命令,使用起来也比较复杂。一般情况下不会使用
附加: Xmanager中Xshell使用方法
首先创建Xshell
设置名称如和主机号一致20.0.0.10 设置主机20.0.0.10 其余不变
点击左侧用户身份验证 输入用户名root 密码 123456 点击确定
此时想保持连接需打开虚拟机
当Xshell无法连接时首先ping虚拟机10.0.0.20 能回包直接将虚拟机的网络断开重连
不会包则输入关闭防火墙 和重启网卡的命令
查找路径命令 which
[root@server1 ~]# which bash 回车
/usr/bin/bash
Which bash 找命令的一个路径 which 找命令
/usr/bin 存用户命令 /usr/sbin 存管理员使用的命令
[root@server1 ~]# cd /bin/ 验证是否有该文件
[root@server1 bin]# ls -lh
linux命令的分类
内部命令与外部命令的区别
内部命令:即用户登录liunx系统时自动加载的一个shell程序
外部命令:#!/bin/bash告诉别人我是通过调用哪个shell来解释脚本
shell脚本第一步(#!/bin/bash)
Linux命令行的格式
通用的命令行使用格式
命令字 [选项] [参数] (英文字符区分大小写)选项和参数可以不选
命令字 —— 命令
是整条命令中最关键的一部分
唯一确定的一条命令
选项 —— 功能(多个单字节选项可以组合在一起使用)
短格式选项:使用“_”符号引导
长格式选项:使用“_ _”符号引导
参数 —— 对象
命令字处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
--一般表示帮助 [ ]:表示可选 ls -l /root ls --help
编辑linux命令行
Tab键:自动补全
反斜杠“\”:强制换行 (但是此时Tab键使用无效)
Ctrl + U 组合键:清空当前光标位置前的前一个字符至行首
Ctrl + K 组合键:清空当前光标位置开始至行尾
Ctrl + L 组合键:清屏
Ctrl + C 组合键:取消本次命令编辑
附加: Wget表示下载
获得命令的帮助的方法
内部命令 help
查看Shell内部命令的帮助信息
命令的“--help”选项
适用于大多数linux外部命令
使用man命令阅读手册页
使用“↑”、“↓”方向键滚动一行文本
使用Page Up 和Page Down键翻页
按Q或q键退出阅读环境
按“\”键查找内容
help pwd (内部命令) ls --help(外部命令) 来查看帮助信息 外部与内部
使用man :例如可以通过man ls 来尝试操作 /ls查找man里面的ls
Linux基础命令
查找当前的工作目录-pwd
显示用户当前所在的工作目录位置
例如
[root@server1 ~]# pwd
/rood (当前工作目录)
切换工作目录-cd
将用户的工作目录更改到其他位置
绝对路径——完整路径(从根目录开始的路径)
相对路径——从当前路径出发到达的目标路径
.当前路径 ..当前路径上一级路径 ../..当前路径的上一级路径的上一级
~ 家目录或宿主目录
/ 根目录
相对路径要保证文件在同一文件夹中 网页网站尽量做相对路径
文件建议做绝对路径
相对路径的表示形式
附加root的宿主用户为/root (管理员)
其他用户的宿主用户为/home(普通用户)
举例
su xwy 切换用户(以xwy用户登录)
列表显示目录内容-ls
ls命令主要用于显示目录中的内容,包括子目录和文件的相关属性信息等。使用的参数可以时目录名,也可以是文件名,允许在同一条命令中同时使用多个参数。
ls [选项] [文件或目录...]
常用选项
-l 、-a、-A、-d、-h、-R、--color
结合通配符
“?”:匹配文件名中的一个未知字符
“*”:匹配文件名中的任意多个字符
ls --help 查看常用选项
ls -lh 查看 rm -rf 删除
ls -l简称ll
-l:以长格式(Long)显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。不适用-l选项时,ls命令默认以短格式显示目录名或文件名信息。
-a:显示所有(ALL)子目录和文件的信息,包括名称以点号“.”开头的隐藏目录和隐藏文件。
-A:与-a选项的作用基本类似,但有两个特殊隐藏目录不会显示,即标识当前目录的“.”和表述父目录的“…”。
-d:显示目录(Directory)本身的属性,而不是显示目录中的内容。
-h:以更人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节(B),使用-h选项后将显示为KB、MB等单位。此选项需要结合-l选项一起使用。
-R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容。
–color:在字符模式中以颜色区分不通的文件,如果使用“–color=tty”,在表示使用终端预定义的颜色方案。通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色表示设备文件,红色表示压缩文件。
执行不带任何选项、参数的ls命令,可显示当前目录中包含的子目录、文件列表信息(不包括隐藏目录、文件)。
举例
[root@server1 ~]#ls -R /opt
/opt:
a rh
/opt/a:
/opt/rh:
[root@server1 ~]#ls /opt
a rh
[root@server1 ~]#mkdir -p /aa/bb/cc/dd
[root@server1 ~]#ls -R /aa
/aa:
bb
/aa.bb
/cc
/aa/bb/cc
dd
/aa/bb/cc/dd:
删除
[root@server1 ~]#touch a1.txt
[root@server1 ~]#touch a12.txt
[root@server1 ~]#rm a?.txt
rm: 是否删除普通空文件“a1.txt”?^C
[root@server1 ~]#rm a*.txt
rm: 是否删除普通空文件“a12t”?^C
rm: 是否删除普通空文件“a1.txt”?^C 相对路径
列出
[root@server1 ~]#ls /root/a?.txt
/root/a1.txt
[root@server1 ~]#ls /root/a*.txt
/root/a12.txt /root/a1.txt 绝对路径
设置别名-alias
通过别名机制简化常用的、比较长的命令
alias 命令别名 = 命令
示例
设置myls为‘ls -alh’
alias myls =‘ls -alh’ 别名是myls
统计目录及文件空间占用情况-du
统计指定目录(或文件)所占用的磁盘大小
du [选项] [文件或目录...]
常用选项
示例:
统计出/var/log目录所占空间的大小
du -sh /var/log/ (var/log日志文件)
[root@server1 ~]#du -sh /var/log/
4.2M /var/log/
所有文件统计(合计)
[root@server1 ~]#du -ah /var/log/
会列出所有文件(分开)
[root@server1 ~]#du -ash /var/log/ 不能放在一起使用 该命令无效
创建新目录-mkdir
创建新的空目录
mkdir[选项]目录位置及名称... [选项]中若是[-p],则一次性创建嵌套的多层目录
示例
在当前目录下创建名为public_html的子目录
mkdir publi_html
创建目录/aa,在/aa下面创建子目录bb,在/aa/bb目录下创建子目录cc
mkdir -p /aa/bb/cc
目录=文件夹
文件夹最外层的叫父文件夹 里面其他的为子文件夹
默认没有-p不能创建父子关系文件夹
父子文件夹 父目录存在不需要-p 不存在需要-p
若创建一个子目录,则mkdir public_html 在当前目录下创建名为public_html的子目录 默认为当前路径
举例
[root@server1 ~]#mkdir -p /a/b/c
[root@server1 ~]#ls -R /a 验证目录是否生效
/a:
b
/a/b
:c
/a/b/c
创建空文件-touch命令
更新文件的时间标记
经常用于创建多个新的空文件
touch 文件...
示例
创建两个空文件,名字分别为aa和bb
touch aa bb
附件vi 同时具有创建编辑的功能
ls / 查看根 表示目录
- 开头表示文件 字体较浅
d开头表示目录 字体较深
文件和目录不能相同
在家目录下 ~ ----------------/root 家目录
创建 touch a —— 存储在 /root/a 家目录下
创建 touch /a —— /a存储在根目录下 绝对路径
touch /a/b 表示在a目录下创建一个b的文件
touch /aa tt 表示创建了aa tt 两个文件 aa /aa根目录下 绝对路径
tt /root/tt家目录下 相对路径
/ 根目录
/root 家目录 ~
创建链接文件-ln
为文件或目录建立链接文件,类似于windows系统的快捷方式
链接文件类型
软链接(又称符合链接)
硬链接
ln [-s] 源文件或目录... 链接文件或目标位置
示例
ln -s /bin/bzip2/bin/wx/
软链接:有 -s 只是一个连接地址
硬链接:有真实的文件存在 创建连接时创建文件(多个) 下面图片中文件应改为源文件
此时 b的文件存在 ac已失效
复制(Copy)文件或目录–cp
将需要复制的文件或目录(源)重建一份,并保存新的文件或目录
cp [选项] … 源文件或目录… 目标文件或目录…
常用选项
将var/log/中文件拷贝到家目录
加上-p时间等属性不变 不加-p,cp /aa /root 则时间等属性变为现在的创建时间
删除文件或目录-rm
删除指定的文件或目录
rm[选项]要删除的文件或目录...
常用选项
-f、-i、-r
示例
rm -rf pubic_html/grub/
rm -i public_html/apg.conf
产生提示信息
示例:rm -rf * 直接递归删除整个目录树
直接删除 没有提示信息
只能二选一
移动文件或目录-mv
将指定的文件或目录转移位置
如果目标位置与源位置相同,则相当于执行重命名操作
mv [选项] ... 源文件或目录... 目标文件或目录
示例
mv mytouch mkifile
mv mkifile public_html/
将a12.txt替换为aaa.txt 因为在目标位置和源位置相同 则为重命名
mv a12.txt aaa.txt
目标位置与源位置不同,则为移动
mv aaa.txt /opt
查找命令/文件存放目录-which
搜索范围由环境变量(存储路径)PATH决定(echo$PATH)
which 命令|程序名
或
which -a 命令|程序名
示例
which ls
which cd
PATH:绝对路径
输入echo $PATH
/usr/local/sbin /root/bin /usr/sbin管理员命令存储路径
/usr/bin /usr/local/bin普通用户命令存储路径
只能查询shell下的命令 软件上的命令安装之后 路径进行变更才能查询到
查找文件或目录-find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
find [查找范围] [查找条件表达式] [查找范围]:查找文件或子目录的目录位置
[查找条件表达式]:查找条件类型
常用查找条件类型
附加:?匹配任意一个字符
* 匹配0个和任意个字符
使用find命令实现多个查找条件
各表达式之间使用逻辑运算符
“-a”表示 而且(and)
“-o”表示 或者(or)
示例
find /boot -size +1024 -a -name “vmlinuz*”
find /boot -size -1024 -o -name “vmlinuz*”
查找root下文件 -a需要不仅满足在root下 ,还要满足超过1000k
-0 只需满足在root或者超过1000k任意一个条件即可