基本指令
本篇博客主要讲解具体的指令与操作含义:
打开CentOS 7
操作系统,右键点击 “打开终端” ,进入终端.
进入终端后,在屏幕上出现这么一段字符,我们就可以在这里输入指令进行操作了,这段字符具体讲解如下:
- 用户名: 用户设置的使用者名称
- 分隔符: 单纯的分隔一下用户名和主机名~
- 主机名: 如果不设置,默认就是
localhost
. - 当前目录: 表示当前
home
目录 - 提示符: 表示用户现在处于输入情景,可以开始输入了(可以变为
#
代表root用户身份) - 光标: 这个黑条状光标会闪烁,表示用户现在可以用键盘进行指令输入
以下开始讲解具体指令
ls
罗列
是list
的缩写,具体罗列出当前目录中中包含的文件
这里的蓝色文件为目录文件,显然 目录中既可包含文件,也可以包含目录.
ll
也是罗列
来自缩写:list -l
.
那么这个-l
是什么?-l
是一个命令行参数 ,类似于cmd命令
中关机命令shutdown -s -t
中的-s/-t
,为了使这一句指令的作用区间更加详细
通过结果的分析可以直观的看到,ll
比ls
表示的信息更加全面.
详细信息有很多,但最核心的就是第一列的权限,即图中的drwxr-xr-x
具体举例解释其中的一段信息:
- 文件类型: 这里的
d
意为目录文件,表示它是一个目录,里面可以存放更多的二级文件与目录. - 用户权限: 这里有三组各个表示:
r
读权限 (read)
w
写权限 (write)
x
:可执行权限
第一组rwx
用户对应当前文件的(users)拥有者/创建者权限
第一组rwx
用户对应当前文件的(group)拥有者的用户组的权限
第一组rwx
用户对应(others)其他用户的权限
root用户可以给予三个用户这三个权限,也可以收回,权限可以影响用户的操作结果,之后具体解释
3. 文件占存大小: 它的单位是Byte
4. 最后修改时间: 无论什么操作,执行后都会改变文件的最后操作时间
cd
切换目录
来自缩写:change directoy.
可以改变用户所处的当前目录,对不同目录具体操作.
cd ..
切换回上级目录
切换目录到当前目录的上一级目录cd /
切换到根目录
相当于Windows
中的此电脑.- 切换到当前用户的
home
目录cd ~
cd home
cd + 回车
cd -
回到上层目录
返回刚才的目录,这个操作是可逆的,可以互相来回切换.
这里既然说到了 根目录 ,就要提及
Linux
的目录的树形结构
而Windows
中为:
-
Ctrl + insert
复制 -
shift + insert
粘贴
(这两句指令有的电脑需要配合fn
一起使用) -
Ctrl + c
取消当前指令
而不是Windows
中的 复制 指令,在Linux环境下要辨析这一点 -
Ctrl + l
清屏
如果界面过于繁杂,用户希望可以清理使得界面整洁一些,可以使用这个指令 -
touch
创建一个"空文件"(在此目录下)
这时我们发现系统并没有像Windows
一样给我们一个成功或者失败的反馈,但无伤大雅,因为在Linux
环境下
no news is good news.
没有消息就是最好的消息,说明这时候a.txt
文件已经创建完毕了.我们ll展示一下文件属性:
这里-rw-rw-rw-
中首部的-
表示普通文件,与前面的d
的目录文件同类型. -
cat
显示文件具体内容
我们发现同样是像touch
一样没有给出反馈,但二者意义不同
cat
反馈为空,意为:空文件,里面并没有实质内容.
那么想查看到具体内容应处于什么情况下呢?引出我们下一句指令 -
echo
显示内容,打印一个字符串
先直接在home
目录下echo
一个字符串:
结果很明显,它如我们所料打印了具体内容,那希望打印文件中的内容应该如何实现?
注:
1." "
中为希望写入的字符串.
2.>
意为重定向,即将echo + 内容
重定向在a.txt
中,得以在a.txt
中显示
3.后面的a.txt
为重定向的目标
这三个元素与echo
指令相结合,就构成了把内容"写入"文件的操作. -
rm
删除文件
来自缩写:remove
它的内涵是物理删除.
1.rm -r
递归式删除目录
2.rm -i
确认是否删除
提示询问是否删除时,输入y
表示确认删除,非y
表示否定,不删除文件
当删除目录时,首先会询问用户是否进入二级目录,所以我么可以知道操作系统删除文档时是先进入目录,在逐步删除目录中文件的. -
mkdir
创建目录
来自缩写:make directory
如果需要创建多级目录时使用:mkdir -p
例如: mkdir -p a/b/c/d
pwd
查看当前目录对应的绝对路径
来自缩写:Print Working Directory
即从根目录输出至目前目录的路径
相对路径: 一个路径以
.
或者..
开头
绝对路径: 一个路径以/
开头
如果必须在绝对路径与相对路径做一个抉择,那么首选相对路径
因为同样一句指令如果需要在其他终端上运行,那么相对路径就不用考虑用户电脑中是否有同名的上级目录,可以直接从当前目录进行操作,简单快捷.
su
切换到管理员(root)用户
切换root用户需要知道root用户的密码
切换成功提示符就会从$
变为#
注:
切换到root用户进行操作很危险!!!
因为一不小心就会删除掉系统文件或者其他影响系统运作的操作,例如删除了根目录或者系统文件,甚者可能直接导致系统无法再次运行,诸多功能无法使用等等,所以在root用户下一定要谨慎操作!
mv
重命名/移动文件
来自缩写:move
man
查看用户手册
区段1:用户指令
区段2:系统调用
区段3:程序库调用
例如:
man printf
:默认区段1 对应其中用户指令printf
man 3 printf
:指区段3 程序库中C语言中的printf
二者是不同的用法与含义
cp
复制/拷贝一份文件
来自缩写:copy
cp a.txt b.txt
由a.txt
在当前目录拷贝一份b.txt
文件cp a.txt a/
在a
目录下拷贝一份a.txt
文件
注意:cp
的对象是文件,如果想针对目录操作应该如何输入指令?
指令为: cp -r a b
即为针对a
目录拷贝一份b
目录
-
date
显示日期/计算时间戳
date -d + 时间戳
就可以计算其对应的日期了
-
chmod
修改权限
来自缩写:change mode
我们就用ls
指令来演示:
-
首先查找到
ls
指令位于的目录
这里需要使用whereis
指令,找到目标的位置
-
拷贝一份
ls
到当前目录下,通过ll
指令查看一下是否拷贝成功
我们发现,目录中已经有了一个带有绿色(可执行权限)的ls
通过相对路径执行一下当前目录下的ls
我们发现执行结果都是黑色的,
而直接使用ls
使用的是路径use/bin/ls
的系统中的ls
功能,所以二者本质上是两个不同的文件,所以执行的结果不相同. -
接下来可以修改权限了
第一步我们先查看一下当前目录下的ls
有什么权限.
第二步我们取消了ls
的可执行操作x
如果
chmod
指令 直接使用-x
/-r
/-w
, 则它的对象是全部的三个用户
最后我们再次ll
查看,可以明确的看到当前目录的ls
已经没有执行权限了,首部的x
全部都取消掉了,说明三个之中任何一个用户都对他没有执行权限了
一个文件能否被执行有两个充要条件:
- 具有可执行权限
- 文件是一个可执行文件
- 如果只想给一个用户授权或者回收权限,就要在指令中加上约束:
-
chmod o+x ls
(o
代表others,
其他用户)
图中可以清晰地看到 当前目录中的ls
对于其他用户的可执行权限已经加上了 -
chmod g+x ls
(g
代表group
,所有者的用户组)
-
chmod u+x ls
(u
代表users
,所有者)
除了chmod o/u/g + r/w/x
这样的授权/收权操作,Linux
还有一种抽象的修改权限的方法,仅供知晓
-
权限在操作系统中以3个八进制数来表示的
一个八进制数相当于三个二进制数,所以:
<chmod 777 ls
相当于给所有三个用户全部授权 >
举一反三,同样可以对不同用户的不同权限进行修改,这里就不一一演示了. -
文件:
1.文件没有读
权限,不能cat
2.文件没有写
权限,不能通过echo
指令配合重定向进行修改
3.文件没有执行
权限,不能执行 -
目录
1.目录没有读
权限,不能ls
查看目录中包含什么文件或者目录
2.目录没有写
权限,不能向目录中新增/删除文件
3.目录没有执行
权限,不能通过cd
切换至该目录下 -
file
查看文件格式 -
history
查看输入指令的历史
这里常见丰富的指令与快捷键就介绍差不多了,其他还有很多不常用但是很高效的指令大家有兴趣可以了解一下
但是linux
指令的学习绝对不是靠背的,而是靠练的
熟能生巧,而不是死记硬背!