1.什么是Shell?
shell是linux的外壳。是一个内核的解释器,让我们跟内核交流翻译的工具。命令的解释:可以解析我们给shell终端的命令,来控制操作系统做相关的功能。保护操作系统:可以帮助我们通过一条简单的命令来调用系统函数或者系统接口,来依次完成我们需要的功能,不会导致调用错误或者其他问题导致系统不能正常使用。
2.Linux目录结构
根目录 “/”
/bin目录:存放基础系统所需的命令。
/sbin目录:存放超级权限用户root的可执行命令。
/etc目录:存放系统程序或者一般工具的配置文件。
/dev:设备文件存储目录。
/proc:操作系统运行时,进程信息及内核信息。
/var:存放内容可能增长的文件(如日志)。
/tmp:临时文件包含系统和用户创建的临时文件。
/usr:用户程序包含二进制文件、库文件、文档和二级程序的源代码。
/home:所有用户用home目录来存储他们的个人档案。
/boot:引导加载程序文件包含引导加载程序相关的文件。
/lib:系统库包含支持位于/bin和/sbin下的二进制文件的库文件。
/opt:可选的附加应用程序包含从个别厂商的附加应用程序。
/mnt:挂载目录临时安装目录,系统管理员可以挂载文件系统。
/media:可移动媒体设备。
/srv:存服务数据。
3.基本指令
1. 关机命令
指令:shutdown
shutdown [选项] 时间 [消息]
选项:
-r 表示重启
-h 表示系统服务停滞(halt)后,立刻关机
-f 表示快速重启
时间: 为shutdown指定时间。
消息:表示系统的广播信息
含义:
关闭系统使用Shutdown命令,确保用户和系统的资料完整。只有root用户才能使用这个命令。一般的用户是不允许执行这个命令的。
案例:
shutdown -h now 立刻关机
shutdown -h 21:30 今天21:30关机
shutdown -r now 立刻重启
2.当前工作目录
指令:pwd
pwd [选项] [文件或目录]
选项: 无
文件或目录:无
含义:
显示当前工作目录
3.查看目录内容
指令:ls
ls [选项] [文件或目录]
选项:
-l : 每列仅显示一个文件或目录名称。
-a 或--all : 下所有文件和目录。
-i 或--inode: 显示文件和目录的inode编号。
文件或目录: 制定的目录或这文件,如果没有这一项,默认当前目录。
含义:
执行ls指令可列出目录的内容,包括文件和子目录的名称。
案例:
ls -l 以列的方式显示
ls -a 显示所有包括隐藏目录
ls -a /bin 显示/bin下的所有文件
4.改变工作目录
指令:cd
cd [选项] [文件或目录]
选项: 无
文件或目录:
绝对路径:一定由根目录 / 写起
相对路径:相对于某一路径,其中.代表当前目录,..代表上一级目录,~:表示家目录
含义:
在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录
案例:
cd /etc 到根目录下的etc目录
cd .. 到上一级目录
cd ~ 到当前用户的家目录
5.显示系统重要信息
指令:uname
uname [选项] [文件或目录]
选项:
-r:内核版本
-n: 主机名
-a: 所有信息
文件或目录:无
备注:查看发行版的版本 cat /etc/redhat-release
含义:
会显示出关于系统的重要信息,如内核名称,主机名,内核版本,处理机类型等
案例:
uname -r 内核版本
uname -n 主机名
uname -a 显示所有系统重要信息
6.改变文件的时间
指令:touch
touch [选项] [文件或目录]
选项:
-t:使用指定的时间,而非现在的时间
文件或目录:要改变的文件的路径。
含义:
使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间。注意的是如果文件不存在则创建文件。
案例:
touch file 改变file文件的时间
touch -t1801311830 file 指定时间改变
7.创建目录
指令:mkdir
mkdir [选项] [文件或目录]
选项:
-p:递归创建目录,嵌套目录
文件或目录:跟目录的路径
注意&#xff1a;文件名大小写敏感&#xff0c;不可超过255字符&#xff0c;不可以使用/,建议不要~ \ <> ( ) $ * ? " &#39;
含义&#xff1a;
创建目录
案例&#xff1a;
mkdir aa 创建一个aa目录
mkdir -p aa/bb/cc 创建一个嵌套的目录
8.拷贝文件或目录
指令&#xff1a;cp
cp [选项] [源文件或目录] [目的文件或目录]
选项:
-i&#xff1a;在拷贝过程中询问是否要拷贝
-f&#xff1a;在拷贝过程中不询问直接拷贝
-r&#xff1a;拷贝目录中的所有文件和目录
文件或目录&#xff1a;
源文件或目录&#xff1a;指的是需要拷贝哪个文件的路径
目的文件或目录&#xff1a;指要把源文件或目录拷贝到哪里的路径
含义&#xff1a;
将文件和目录从一个目录拷贝到另一个目录
案例&#xff1a;
cp /aa /home/king 将根下的aa拷贝到home下的king中
9.删除空目录
指令&#xff1a;rmdir
rmdir [选项] [目录]
选项:
-p&#xff1a;删除指定目录上的所有目录
文件或目录&#xff1a;
要删除的文件目录的路径
含义&#xff1a;
删除空的文件目录
案例&#xff1a;
rmdir /aa 删除根下aa空目录
10.删除文件或目录
指令&#xff1a;rm
rm [选项] [文件或目录]
选项:
-i&#xff1a;删除时询问是否要删除
-f: 删除时不询问直接删除
-r: 递归删除目录下的所有文件或目录
文件或目录&#xff1a;
文件或目录&#xff1a;所要删除的文件或目录的路径
含义&#xff1a;
删除文件或目录&#xff0c;执行rm指令可删除文件或目录&#xff0c;如欲删除目录必须加上参数"-r"&#xff0c;否则预设仅会删除文件。
案例&#xff1a;
rm file 删除文件file
rm -r /aa 删除aa目录下的所有文件或目录
11.移动或更名
指令&#xff1a;mv
mv [选项] [源文件或目录] [目标文件或目录]
选项:
-i&#xff1a;在移动时有覆盖是询问是否要覆盖
-f: 在移动时有覆盖不询问直接覆盖
文件或目录&#xff1a;
源文件或目录&#xff1a;要移动或更名的文件或目录目标文件或目录&#xff1a;如果有不是当前路径的路径就是要移动&#xff0c;如果是当前路径下就是更名
含义&#xff1a;
可移动文件或目录&#xff0c;或是更改文件或目录的名称
案例&#xff1a;
mv /aa ~/ 将aa移动到家目录下
mv aa bb 将aa更名bb
12.打包
指令&#xff1a;tar
tar [选项] [目标包名] [源文件或目录]
选项:
-c&#xff1a;创建一个包
-f: 定义目标包
目标包名&#xff1a;
要打成的包名
源文件名或目录名&#xff1a;
哪些文件要被打成包
含义&#xff1a;
是要是用来打包或这解包&#xff0c;压缩或这是解压缩的一个命令&#xff0c;常常用作备份文件使用&#xff0c;或将许多文件打成一个包并压缩。
案例&#xff1a;
tar -cf xxx.tar /aa 将aa 打成xxx.tar包
13.查看
指令&#xff1a;tar
tar [选项] [包名]
选项: -t&#xff1a;查看 包 里面的文件&#xff01;
-f: 定义目标包
目标包名&#xff1a;
查看xxx.tar 的包的路径
案例&#xff1a;
tar -tf xxx.tar 在不解包的情况下查看里面的文件或目录
14.添加
指令&#xff1a;tar
tar [选项] [包名] [源文件或目录]
选项:
-r&#xff1a;将文件追加到包中
-f: 定义目标包
包名&#xff1a;
查看xxx.tar 的包的路径
源文件或目录&#xff1a;
要添加的文件或这目录
案例&#xff1a;
tar -rf xxx.tar bb 将bb文件追加到xxx.tar包中
15.解包
指令&#xff1a;tar
tar [选项] [包名]
选项:
-x&#xff1a;将包 解包
-f: 定义目标包
包名&#xff1a;查看xxx.tar 的包的路径
案例&#xff1a;
tar -xf xxx.tar 将xxx.tar中的文件解包
16.压缩
指令&#xff1a;tar
tar [选项] [压缩名] [源文件]
选项:
-c&#xff1a;打包
-z&#xff1a;将打包的文件用gzip格式压缩
-v&#xff1a;显示过程
-f: 定义目标包
压缩名&#xff1a;
指定压缩的名字
源文件&#xff1a;
要打包压缩的文件
案例&#xff1a;
tar -czvf xxx.tar.gz /aaa bb 将/aaa bb 文件 打包压缩为 xxx.tar.gz
17.解压缩
指令&#xff1a;tar
tar [选项] [包名]
选项:
-x: 解包解压
-z:以gzip的格式进行解压
-v:显示过程
-f:定义目标包
包名&#xff1a;
查看xxx.tar 的包的路径
案例&#xff1a;
tar -xzvf xxx.tar.gz 将 xxx.tar.gz解包解压到当前目录下
基本命令总结&#xff1a;
Linux的基本操作命令。如&#xff1a;shutdown&#xff0c;ls&#xff0c;cd&#xff0c;uname&#xff0c;pwd
Linux的基本命令对文件的管理。如&#xff1a;touch&#xff0c;mkdir&#xff0c;cp&#xff0c;rmdir&#xff0c;rm&#xff0c;mv&#xff0c;tar。
要注意的时tar命令的使用&#xff0c;因为参数较多&#xff0c;在参数的下达中&#xff0c; c/x/t/r 仅能存在一个&#xff0c;不可同时存在&#xff0c;因为不可能同时压缩与解压缩。z--gzip
4.进程
1.当前用户进程
指令&#xff1a;ps
ps [选项] [参数]
选项&#xff1a;
-a:显示所有用户的进程
-u:显示用户名和启动时间
-x:显示 没有控制终端的进程
-e:显示所有进程&#xff0c;包括没有控制终端的进程
-l:长格式显示
含义&#xff1a;
用于报告当前系统的进程状态
案例&#xff1a;
ps 只显示隶属于自己的进程状态
ps -aux 显示所有进程
ps –aux | grep xxx 过滤出要查看的进程
2.进程杀死命令
指令&#xff1a;kill
kill [选项] [参数]
选项&#xff1a;
-1&#xff1a;重启进程
-9&#xff1a;强制杀死
参数&#xff1a;
pid进程编号
含义&#xff1a;
终止一个进程
案例&#xff1a;
Kill pid 杀死进程进程编号为pid的进程
Kill -1 pid 重新启动pid的进程
Kill -9 pid 强制杀死pid进程
3.查看进程的信息
指令&#xff1a;top
top [选项] [参数]
提示:退出top按q
含义&#xff1a;
进程状态显示和控制&#xff0c;每5s中自动刷新一次(动态显示)
案例&#xff1a;
top 动态的显示进程状态
对于shell来说执行程序产生的进程分为前台进程和后台进程执行一个程序的时候如果需要将它变为后台进程时 在执行命令后加 &
5.权限
用户分类
权限分类
1.改变文件的所属
指令&#xff1a;chown
chown [选项] [参数]
选项&#xff1a;
-R&#xff1a;递归处理&#xff0c;将指定目录下的所有文件及
子目录一并处理。
参数&#xff1a;
所属用户&#xff1a;要改变的所属用户。
所属组&#xff1a;要改变的所属组。
含义&#xff1a;
chown命令改变某个文件或目录的所有者和所属的组&#xff0c;该命令可以向某个用户授权&#xff0c;使该用户变成指定文件的所有者或者改变文件所属的组。
案例&#xff1a;
chown -R test /kk 将/kk目录下的所有文件改为test用户所有
2.改变文件的权限
指令&#xff1a;chmod
chmod [选项] [参数]
选项&#xff1a;权限&#xff1a;权限值。
参数&#xff1a;文件名&#xff1a;设置权限的文件名。
含义&#xff1a;
chmod命令用来变更文件或目录的权限。在Linux系统家族里&#xff0c;文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分。
案例&#xff1a;
chmod u&#43;x,g&#43;w kk 文件kk设置权限
chmod u&#61;rwx,g&#61;rw,o&#61;r kk 给kk文件设置权限
chmod 764 kk 文件kk设置权限
6.vim
vi与vim编辑器是所有Unix及Linux系统下标准的编辑器&#xff0c;他就相当于windows系统中的记事本一样&#xff0c;它的强大不逊色于任何最新的文本编辑器。由于对Unix及Linux系统的任何版本&#xff0c;vi编辑器是完全相同的&#xff0c;学会它后&#xff0c;您将在Linux的世界里畅行无阻。