文章目录
- 前言
- 一 `Linux`系统简介
- 二 补充知识`Unix`和`Minix`
- 三 开关机命令
- 四 系统目录结构
- 五 树形显示文件目录结构
- 六 目录管理
- 6.0 目录操作常用命令
- 6.1 `ls`(列出目录)【常用命令】
- 6.2 `cd`(切换目录)
- 6.3 `pwd`( 显示当前所在的目录 )
- 6.4 `mkdir`(make directory创建目录)
- 6.5 `rmdir` ( 删除空的目录 )
- 6.6 `cp` ( 复制文件或目录 )
- 6.7 `rm` ( 移除文件或目录 )
- 6.8 `mv`( 移动文件与目录,或修改名称 )
- 七 基本属性
- 7.1 文件属性
- 7.2 修改文件属性
- 7.2.1 `chgrp`:更改文件属组
- 7.2.2 `chown`:更改文件属主/更改文件属组
- 7.2.3 `chmod`:更改文件9个属性
前言
- 在前面已经完成了Vm和centos7的安装工作
- 学习命令可直接在centos7中,打开终端进行操作
- 这里作者使用Xshell进行操作,如果需要的小伙伴,后续我会将centos设置静态Ip的方法和使用Xshell的文章整理!
一 Linux
系统简介
- Linux【全称GNU/Linux】是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布.
- 它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
- 它能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件。
- Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
二 补充知识Unix
和Minix
- Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。
- Unix作为一种开发平台和台式操作系统获得了广泛使用,主要用于工程应用和科学计算等领域。
- Minix的名称取自英语Mini UNIX,是一个迷你版本的类Unix操作系统(约300MB)
- Minix是一种基于微内核架构的类UNIX计算机操作系统,于1987年由Andrew S. Tanenbaum教授发布
三 开关机命令
- 开机登录
- 开机会启动许多程序。在Windows叫做**“服务”(service),在Linux就叫做"守护进程"(daemon)**。
- 开机成功后,会显示一个文本登录界面,在这个登录界面中会提示用户输入用户名,输入的用户将作为参数传给login程序来验证用户的身份,密码是不显示的,输完回车即可!
- 一般来说,用户的登录方式有三种:
- 命令行登录
- ssh登录
- 图形界面登录
- 最高权限账户为 root,可以操作一切
- 关机
- 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务,除非特殊情况下,不得已才会关机。
- 关机指令为:
shutdown;
- 不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令
# 例如你可以运行如下命令关机:
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff
- 你可以使用man shutdown命令来看一下帮助文档。
四 系统目录结构
- Linux的目录中有且只有一个根目录/
- Linux的各个目录存放的内容是规划好的,不能乱放文件
- Linux是以文件的形式管理我们的设备,因此Linux系统一切皆文件
- Linux树状目录结构图解【Linux目录树】【建议熟记】
- 目录结构详解
目录 | 说明 |
---|---|
/bin | Binary的缩写,存放常用命令,如vi,su |
/boot | 存放引导系统启动的相关文件,包括一些连接文件以及镜像文件 |
/dev | Device(设备)的缩写, 存放Linux的外部设备,访问方式同访问文件方式 |
/etc | 存放所有的系统管理所需要的相关配置文件和子目录 |
/home | 在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。如上图中的 alice、bob 和 eve |
/lib | 存放着系统最基本的动态连接共享库,作用类似于Windows里的DLL文件 |
/lost+found: | 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件 |
/media | linux系统会自动识别一些设备,例如U盘、光驱等,当识别后,linux会把识别的设备挂载到这个目录下 |
/mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的。将光驱挂载在/mnt/上,进入该目录即可查看光驱内容 |
/opt | 给主机额外安装软件所摆放的目录。默认为空;如安装一个ORACLE数据库就可以放到这个目录下 |
/proc | 一个虚拟的目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息 |
/root | 超级权限者的用户主目录 |
/sbin | Super User,存放系统管理员使用的系统管理程序 |
/srv | 存放一些服务启动之后需要的数据 |
/sys | linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs |
/tmp | 用来存放一些临时文件 |
/usr | 用户的很多应用程序和文件都放在这个目录下【类似于windows下的program files目录】 |
/usr/bin | 系统用户使用的应用程序 |
/usr/sbin | 超级用户使用的比较高级的管理程序和系统守护程序 |
/usr/src | 内核源代码默认的放置目录 |
/var | 存放在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件 |
/run | 一个临时文件系统,存储系统启动以来的信息。当系统重启时,该目录下的文件会被被删掉或清除 |
- 登录系统后,在当前命令窗口下输入命令,即可看到根目录下的文件夹
ls /
五 树形显示文件目录结构
- 系统不自带
tree
命令,需要手动安装
sudo yum install tre
[root@kongyue /]# sudo apt -get install tree
sudo: apt:找不到命令
- 原因分析:这是由于CentOS的软件安装工具不是apt-get,而是yum,使用yum命令代替apt-get即可
[root@kongyue /]# sudo yum install tre
- tree命令,是大小写敏感的。常用的是:
tree -C # 颜色显示
tree -f # 显示文件全路径
tree -L 2 #只显示2层
tree -P *.pl #只显示文件目录和*.pl的perl文件。
tree -F #显示目录后面的\;显示可执行文件*;功能类似ls -F
tree –help # 查看帮助
六 目录管理
- 最顶级的目录为根目录
/
- 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们
- 绝对路径:
- 路径的写法,由根目录
/
写起,如:/usr/share/doc
- 路径的写法,由根目录
- 相对路径:
- 路径的写法,不是根目录
/
写起,如:由 /usr/share/doc
到/usr/share/man
时,可以写成:cd ../man
- 路径的写法,不是根目录
6.0 目录操作常用命令
命令 | 解释 |
---|---|
ls | 列出目录 |
cd | 切换目录 |
pwd | 显示目前的目录 |
mkdir | 创建一个新的目录 |
rmdir | 删除一个空的目录 |
cp | 复制文件或目录 |
rm | 移除文件或目录 |
mv | 移动文件与目录,或修改文件与目录的名称 |
- man [命令] 来查看各个命令的使用文档,如 :man cp
6.1 ls
(列出目录)【常用命令】
ls [-aAdfFhilnrRSt] 目录名称
- 参数:
- -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来
- -l :长数据串列出,包含文件的属性与权限等等数据;
[root@kongyue /]# ls -a /home
. .. jdk-8u221-linux-x64.rpm kongyue spring-06-security.jar
[root@kongyue /]# ls -l /home
总用量 194396
-rw-r--r--. 1 root root 179505388 1月 31 16:23 jdk-8u221-linux-x64.rpm
drwx------. 15 kongyue kongyue 4096 1月 30 21:50 kongyue
-rw-r--r--. 1 root root 19549725 1月 31 18:51 spring-06-security.jar
[root@kongyue /]# ls -al /home
总用量 194396
drwxr-xr-x. 3 root root 82 1月 31 20:04 .
dr-xr-xr-x. 17 root root 224 1月 30 21:43 ..
-rw-r--r--. 1 root root 179505388 1月 31 16:23 jdk-8u221-linux-x64.rpm
drwx------. 15 kongyue kongyue 4096 1月 30 21:50 kongyue
-rw-r--r--. 1 root root 19549725 1月 31 18:51 spring-06-security.j
6.2 cd
(切换目录)
- cd是Change Directory的缩写,这是用来变换工作目录的命令
cd [相对路径或绝对路径]
# 切换到用户目录下
[root@kongyue /]# cd /home
# 创建新目录
[root@kongyue home]# mkdir yang
# 进入新创建的目录
[root@kongyue home]# cd yang
# 返回上级目录 cd ..或者cd ../
[root@kongyue yang]# cd ..
# 返回根目录
[root@kongyue home]# cd /
# 进入yang目录
[root@kongyue /]# cd /home/yang
# 返回根目录
[root@kongyue yang]# cd ../
[root@kongyue home]# cd /
# 进入用户目录,即/root这个目录
[root@kongyue /]# cd ~
# 显示当前所在目录
[root@kongyue ~]# pwd
/root
6.3 pwd
( 显示当前所在的目录 )
- pwd 是 Print Working Directory 的缩写,显示目前所在目录
pwd [-P]
- 参数:
- -P :显示出确实的路径,而非使用连结 (link) 路径
[root@kongyue ~]# pwd -p
-bash: pwd: -p: 无效选项
pwd: 用法:pwd [-LP]
[root@kongyue ~]# pwd -P
/root
[root@kongyue ~]# cd /home/yang
[root@kongyue yang]# pwd -P
/home/yang
6.4 mkdir
(make directory创建目录)
mkdir [-mp] 目录名称
- 参数:
- -m :配置文件的权限
- -p :直接将所需要的目录(包含上一级目录)递归创建
# 创建单个目录
[root@kongyue yang]# mkdir test
# 错误 创建多级目录
[root@kongyue yang]# mkdir test1/test2/test3
mkdir: 无法创建目录"test1/test2/test3": 没有那个文件或目录
#正确创建多级
[root@kongyue yang]# mkdir -p test1/test2/test3
[root@kongyue yang]# mkdir -p test4/test2
# 查看
[root@kongyue yang]# ls -l
总用量 0
drwxr-xr-x. 2 root root 6 2月 1 12:32 test
drwxr-xr-x. 3 root root 19 2月 1 12:32 test1
drwxr-xr-x. 3 root root 19 2月 1 12:34 test4
[root@kongyue yang]#
6.5 rmdir
( 删除空的目录 )
rmdir [-p] 目录名称
- 参数:
- -p :连同上一级『空的』目录也一起删除
# 非空目录删除失败
[root@kongyue yang]# rmdir test4
rmdir: 删除 "test4" 失败: 目录非空
[root@kongyue yang]# rmdir test
# 添加参数依旧失败
[root@kongyue yang]# rmdir -p test4
rmdir: 删除 "test4" 失败: 目录非空
# 将路径写完整,成功
[root@kongyue yang]# rmdir -p test4/test2
6.6 cp
( 复制文件或目录 )
cp [-adfilprsu] 来源档(source) 目标档(destination)
cp [options] source1 source2 source3 .... directory
- 选项与参数:
- -a:相当于 -pdr
- -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身
- -r:递归持续复制,用于目录的复制行为
- -f:强制(force),若目标文件已经存在且无法开启,则移除后再尝试一次
- -i:若目标档(destination)已经存在,在覆盖时会先询问动作的进行
- -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身
- -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件
- -u:若 目标档比 来源档案 旧才升级 目标档
# 将文件复制到yang目录下
[root@kongyue home]# cp spring-06-security.jar yang
[root@kongyue home]# cd yang
# 查看是否复制成功
[root@kongyue yang]# ls -al
总用量 19092
drwxr-xr-x. 3 root root 49 2月 1 13:50 .
drwxr-xr-x. 4 root root 94 2月 1 12:20 ..
-rw-r--r--. 1 root root 19549725 2月 1 13:50 spring-06-security.jar
drwxr-xr-x. 3 root root 19 2月 1 12:32 test1
[root@kongyue yang]# cd ../
# -i 测试
[root@kongyue home]# cp -i spring-06-security.jar yang
cp:是否覆盖"yang/spring-06-security.jar"? y
6.7 rm
( 移除文件或目录 )
rm [-fir] 文件或目录
- 参数:
- -f :force ,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除,最常用在目录的删除【非常危险的选项!!!】
# 互动模式 删除文件 安全靠谱
[root@kongyue yang]# rm -i spring-06-security.jar
rm:是否删除普通文件 "spring-06-security.jar"?y
6.8 mv
( 移动文件与目录,或修改名称 )
mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory
- 参数:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
七 基本属性
7.1 文件属性
- Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
- 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定
- 使用
ll
或者ls –l
命令来显示一个文件的属性以及文件所属的用户和组
- boot文件【第四行】的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件
- 在Linux中第一个字符代表这个文件是目录、文件或链接文件等:
- [ d ]则是目录
- [ - ]则是文件
- [ l ]则表示为链接文档 ( link file )
- [ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 )
- [ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )
- 接下来的字符中【第2~10】,以三个为一组,且均为『rwx』 的三个参数的组合
- 其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)
- 注意:三个权限的位置不会改变,如果没有权限,以减号[ - ]表示
- 每个文件的属性:由左边第一部分的10个字符来确定
- 从左至右用0-9这些数字来表示
- 第0位确定文件类型
- 第1-3位确定属主(该文件的所有者)拥有该文件的权限
- 第4-6位确定属组(所有者的同组用户)拥有该文件的权限
- 第7-9位确定其他用户拥有该文件的权限
- 第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;
- 第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;
- 第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权
- 对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
- 文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
- 如:boot 文件是一个目录文件,属主和属组都为 root
7.2 修改文件属性
7.2.1 chgrp
:更改文件属组
chgrp [-R] 属组名 文件名
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改
[root@kongyue home]# chgrp -R kongyue yang
[root@kongyue home]# ll
drwxr-xr-x. 2 root kongyue 6 2月 1 14:04 yang
7.2.2 chown
:更改文件属主/更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改
[root@kongyue home]# chown -R kongyue yang
[root@kongyue home]# ll
drwxr-xr-x. 2 kongyue kongyue 6 2月 1 14:04 yang
7.2.3 chmod
:更改文件9个属性
chmod [-R] xyz 文件或目录
- Linux文件属性有两种设置方法,一种是数字,一种是符号
- Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
- 文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!
- 使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
可读可写可执行 4+2+1=7
可读可写不执行 4+2+0=6
可读不写可执行 4+0+1=5
...
- 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
[root@kongyue home]# ll
drwxr-xr-x. 2 kongyue kongyue 6 2月 1 14:04 yang
[root@kongyue home]# chmod 777 yang
[root@kongyue home]# ll
drwxrwxrwx. 2 kongyue kongyue 6 2月 1 14:04 yang
[root@kongyue home]#