重点:内核 是用来识别二进制的(相当于操作系统)
(特殊程序:即软件eg:吃鸡、qq) Shell为什么能自动加载【以上解释】
用户输入命令——解释命令(翻译成计算机能识别的语言)是用户和内核之间的翻译官——进入内核(内核执行调用我们的硬件)【之前是shell的运行过程】——用户登录Linux系统之后——shell自动加载一个程序——这个程序是在/bin/bash下的。
1.Linux系统中运行的一种特殊程序
2.在用户和内核之间充当翻译官
3.用户登录Linux系统是自动加载一个Shell程序
4.Bash是Linux系统中默认使用的Shell程序
5.文件位于/bin/bash
shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。
用户使用应用程序发布指令比如(使用浏览器访问网页)
shell去通知操作系统需要进行什么样的操作(相当于解释层)
内核相当于操作系统去指挥硬件,硬件才能工作,否则无法交互。
1.一切都是一个文件。(包括硬件)
2.系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
当遇到复杂任务,通过不同功能用途的程序组合起来完成。
3.避免令人困惑的用户界面就是没有复杂的图形界面。
4.连配置文件都存储在文本中,方便增删改查。
5.不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
type -a可以显示所有可能的类型,比如有些命令如pwd是shell内建命令,也可以是外部命令;
type -p只返回外部命令的信息,相当于which命令;
type -f只返回shell函数的信息;
type -t只返回指定类型的信息
help
Enable
type
禁用内部命令enable -n
[ root@localhost / ]# type cd
cd是shell 内嵌 //内嵌代表内部命令
[root@testl ﹔ ]type ls
Ls 是ls--color=auto 的别名
[root@testl ﹔ ]type -a ls
Ls 是ls--color=auto 的别名 //别名代表外部命令
ls是/usr/bin/ ls //外部命令会有程序路径
[root@localhost / ]# where is //whereis可以查找命令具体的位置所在
ls: /usr/bin/ls /usr/share / man/ man1/ls.1.gz / usr/share/ man/ man1p/ls.1p .gz
[ root@localhost~]type -a echo
echo是shell内嵌
echo 是/usr/bin/echo
外部命令就相当于开启一个进程
,这个可想而知,那我们平时又怎么区分内部命令和外部命令呢?只需要在命令前加上一个type和空格
。
外部命令存放于echo $PATH一个一个找,找到为止,找不到就报无命令
[root @localhost~] # echo $PATH
/usr/local/sbin:/ usr/local/sbin:/ usr /sbin : /root/bin
外部命令使用过后会被记录在内存(缓存,但是会占用内存,临时性的)加快读取速度
[ root@localhost~]# Lype useradd
useradd是/ usr / sbin/ useradd
[root@localhost~]useradd wu
[root@localhost~]# type useradd
useradd`己被哈希`(/usr/sbin/useradd)[root@localhost~]# hash //或者使用hash
[root@localhost~]#hash //清楚dd命令缓存-r全清
[root@localhost~]#hash
[root@localhost~]which ping//外部命令的磁盘路径-a所有
/usr/bin/[root@localhost ~jt which help//内部命令找不到
/ usr/bin/ which: no help in (/usr/local/sbin:/usr/local/sbin:/ usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost~]# **where is echo** //相关文档的帮助的命令
echo: /usr/bin/echo / usr/ share/man/man1/echo.1.gz /usr/share / man/ manlp/ echo.lp.gz
通用的命令行使用格式**:
命令字 (空格) {选项} (空格) {参数}
命令字
1)是整条命令中最关键的一部分
2)唯一确定一条命令
选项
1)短格式选项:使用-符号引导 通常引导一个字母
2)长格式选项:使用- -符号引导 通常引导一个完整的单词
参数
1)命令字的处理对象
2)可以是文件名、目录(路径)名或用户名等内容
编辑Linux命令行
编辑Linux命令行的辅助操作
Tab建:自动补齐
反斜杠\:强制换行
Ctrl+U组合键:清空至行首
Ctrl+K组合键:清空至行尾
Ctrl+L组合键:清屏
Ctrl+C组合键:取消本次命令编辑
Ctrl+E组合键:光标到尾
Ctrl+A组合键:光标到首
获取命令的帮助方法
内部命令help
查看Shell内部命令的帮助信息
eg:help cd
命令的- -help选项
适用于大多数Linux外部命令
eg:ls - -help
使用man命令阅读手册页
使用↑、↓方向键滚动一行文本
使用Page Up和Page Down键翻页
按Q或q键退出阅读环境
按\键查找内容
1、命令帮助help和--help
显示命令的帮助信息,命令的参数和用法等
```bash
2、 man手册的使用
linux的命令手册大全
用法:man cd
**查找翻页**
n向下 ; N问上
Man ls |col -b > lshelp.txt
在这个例子中,col是个命令程序,用于过滤文本中的一些特殊控制字符:
另外还使用了"|"和"">"符号
管道: 用竖杠符号"|“表示,用于将前面命令的屏幕输出结果作为后面命令的操作对象(输入),就好像一根管道一样
重定向输出: 用大于符号”>“表示,前面的命令成功执行以后,其屏幕输出结果将保存到”>"号后边指定的文件中。
目录和文件的管理命令
查看当前工作目录: pwd
[ root@localhost ~]#pwd/ root
切换工作目录: cd(相对路径、绝对路径)
cd /home #后面跟绝对路径,切换到home目录
cd ./home #后面跟相对路径,切换到home目录
cd ~ #切换到当前用户的家目录
cd #切换到当前用户的家目录
cd ~user #切换到某个用户的家目录,只有root才行,别的用户只能在自已家。
cd - #切换到上一次执行操作的目录
cd .. #切换到上一层目录(父目录)
"."表示当前目录 cd 代表移动到后面指定的目录位置
cd . 就表示的意思是移动到当前目录
eg:而".." 代表上一层目录,比如我现在在/opt/abc/bc/c 这个位置,那么cd ..就是到/opt/abc/bc/目录(我以绝对路径方式解释)
思考:如何切换到父目录的父目录(cd …/ …/)
绝对路径:eg:/home/kgc
相对路径:eg: cd|home|cd kgc
操作 功能 要执行的对象
-l#将文件信息属性详细列出,通常直接使用ll因为设置了别名
-R#递归现实,比如一个目录下还有文件,则把那个文件也一起列出
-d#查看目录本身信息,不显示目录下的内容
-i#显示inode值
-h#友好显示文件大小
-a#遍历所有文件及目录
(ls内定将文件名或目录名称开头为“.”的视为隐藏档,不会列出)
-A#跟-a唯一的把不同是不列出当前目录和上一层目录
eg1: ls -lh /dev/sd?1
?代表一个未知字符;显示Dev下的sd?1的文件
e:2:ls -lh /etc/ns * .conf
*代表:任意多个未知字符;显示ns开头的.conf文件
eg3:
drwxr-xr-x 3 root root 16 8月 21 10:39 aa
其中d 代表文件类型 eg:d是目录 -是普通文件
第2-9(rwxr-xr-x)字母表示该文件的权限
root表示 文件所有者
root表示 文件所属组
16 表示 文件大小
21 10:39 表示 文件的最近使用时间
aa 表示 文件或目录名称
扩充:
- 普通文件
d 目录文件directory
b 块设备文件block
p 管道文件pipe
s 套接字文件 socket
l 符号链接文件link
黑色 代表数据文件
黄色 块设备文件
白色 数据文件TXT
绿色 可执行文件
红色 压缩包
蓝色 目录(文件夹)
天蓝色 连接文件(快捷方式)
粉色 图片
?:匹配文件名中的一个未知字符 eg:f?.txt
* :匹配文件名中的任意多个字符[常用]
{1..10}:1到10
{a..z} ;a b c...z
{A..Z} :A B C ..Z
【123】:取其中之一;有就显示没有也无所谓
【a-z】:范围需要注意
【0-9】:匹配数字范围(0123456789)
\:转义符,表示原来的意思
[[:lower:]] :小写字母表示 a-z
[[:upper:]] : 大写字母表示A-Z
[^zhou] :匹配列表中的所有字符以外的字符
[[:diqit:]] :任意数字,相当于 0-9
通过别名机制简化常用的比较长的命令
1.alias
别名=’原命令 -选项/参数’
需要临时修改别名以便于使用时,格式为:alias(空格)命令名=‘别名’。
[root@localhost ~]# alias net='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@localhost ~]# net
做完这个操作之后需要重新启动网卡:
systemctl restart network #重启所有的网卡
alias //查看系统当前所有可用别名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias ll='ls -lt' ###设置别名
这样设置了ls -lt命令的别名是ll,在终端输入ll时,则相当于输入了ls -lt命令。
注意: 在定义别名时,等号两边不能有空格,否则shell不能决定您需要做什么。仅在命令中包含空格或特殊字符时才需要引号。如果键入不带任何参数的alias 命令,将显示所有已定义的别名。
2.查看已经设置的别名列表
alias -p1
3.删除别名
格式:unalias 别名1
eg:unalias ll #删除别名
永久生效
vim/root/.bashrc
临时修改
- alias命令别名=命令
- unalias 别名命令 //删除别名
- \加命令 原始命令
示例
设置myls为ls-alh的别名
alias myls=‘ls -alh’
统计指定目录所占磁盘空间的大小
du【选项】【文件或目录…】
常用选项
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只同级目录
-h 以更人性化的方式显示出统计结果
-s 只统计所占用空间总的大小而不是统计每个子目录文件的大小
du -a 统计所以文件目录
Du -ah 以更友好的方式统计出结果
Du -sh 显示当前目录大小
Du -sh kgc/ 查看课工场目录大小
Du -sh * 看某个文件多大
Du -sh /etc/ 查看所有文件大小
**示例**
统计出/var/log目录所占用空间的大小
du -sh /var/log/
创建新的空目录
mkdir【选项】目录位置及名称...
p:一次性创建嵌套的多层目录
eg:在当前目录下创建名为public_zzh的子目录
mkdir public_zzh
2.创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc
mkdir -p /aa/bb/cc
-p 是从属关系是嵌套的,没有-p就是在同一目录下
若想用tree命令查看树形结构
首先应该 ping www.baidu.com
yum install
pwd
ls -R ky19/ 或者 tree ky19/
1.更新文件的时间标记
2经常用于创建多个新的空文件
touch 文件...
eg:创建两个空文件,文件名分别为aa和bb
touch aa bb
为文件或目录建立链接文件,类似于Windows系统的快捷方式
链接文件类型
软连接(又称为符号链接)
硬链接
ln 【-s】源文件或目录...链接文件或目标位置
源文件复制到目标文件
cp【选项】…源文件或目录…目标文件或目录…
常用选项
-f 覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i 覆盖目标同名文件或目录时提醒用户确认
-p 复制时保持源文件的权限、属主及时间表及等属性不变
-r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
-i 删除文件或目录时提醒用户确认
-r 删除目录时必须使用此选项,表示递归删除整个目录树
-f 删除文件或目录是不进行提醒而直接强制删除
常用的用法:rm -rf /*
删除空目录 :rmdir
格式: mv [选项] 源文件或目录 目标文件或目录
情况1
:源位置与目标位置相同时,相当于执行重命名操作
情况2
:跨目录移动(把原本根目录下的7.log移动到home的zzh目录下)
采用递归方式根据目标的名称、类型、大小等不同属性进行精细查找
格式:find [查找范围] [查找条件表达式](查找范围必须在前面)
及时查找、精确查找、支持查找的条件比较多
同时使用多个条件查找时,可用逻辑运算符
各表达式之间使用的逻辑运算符
-a 表示而且 (and)
-o 表示或者(or)
常用查找条件类型
按名称查找 -name 根据目标文件的名称进行查找允许使用通配符
按文件大小查找 -size 根据目标文件的大小进行查找,使用+ - 设置超过或小于指定的大小为查找条件
按文件属主查找-user 根据文件是否属于目标用户进行查找
按文件类型查找 -type 文件类型包括普通文件(f)目录(d)块设备文件(b)字符设备文件(c)等
案例1:
-name :根据目标文件进行查找,允许使用“*”及“?”通配符
-type: 根据目录文件的大小进行查找,一般使用“+“ “-”号设置超过或小于你指定的大小作为查询条件。
-user: /home 是非管理员用户的家目录,管理员用户的家目录在/root
在boot目录里查找尺寸大于1的 **-o代表或者**
或者 名字里面包含root的
-ok ? -ecec?
格式:
-exec COMMAND {} \: (查找到的每个文件执行COMMAND指定的命令)
-ok COMMAND {} \: (对于每个执行文件之前,都会交互式要求用户确认)
{}:用于引用查找到的文件名本身
find /var/ -mtime +10 -name “*.tar.gz” -exec rm -rf {} \ ;
格式:which 命令/程序名 或者 which -a 命令|程序名
搜索环境变量由PATH决定,默认找到第一个后就不再继续
**`当我们不知道一个命令是什么意思的时候就可以用whatis(空格)命令查询,查询命令名称——whatis **
ping
traceroute (静态跟踪)
mtr (动态跟踪)
重启系统
reboot
init 6
shutdown -r now
关机
poweroff
init 0
shutdown -h now
shutdown -c
小知识:
给命令行提示字符加颜色
PS1="\[\e[1;34m\][\u@\h \W]\\$\[\e[0m\] "
PS1="\[\e[1;35m\][\[\e[1;34m\]\u\[\e[1;36m\]@\[\e[1;34m\]\h \[\e[1;31m\]\w\[\e[1;35m\]]\[\e[1;36m\]\\$\[\e[0m\] "
\[\e[1;35m\][ ====> 定义左边的"["
\[\e[1;34m\]\u ====> 定义用户名
\[\e[1;36m\]@ ====> 定义"@"
\[\e[1;34m\]\h ====> 定义第一个点(.)之前的主机名
\[\e[1;31m]\w ====> 定义目录完整路径
\[\e[1;35m]] ====> 定义"]"
\[\e[1;36m\]\\$ ====> 定义"#"或"$"
\[\e[0m\] ====> 一段不显示字串的结束
【总结】
cp的高级用法:cp -v file.txt{,.bak}用于备份
sudo yum -y install tree下载树状图命令
Linux常用命令:
查看及切换目录(pwd、 cd、 ls、 du)
创建目录和文件(mkdir、 touch、 ln)
复制、删除、移动目录和文件(cp、 rm、 mv)
查找目录和文件(which、 find)
重启(init 6)
喜欢记得给小编点个小心心哦!
记得关注我哦!