本文已参与「新人创作礼」活动,一起开启掘金创作之路。
基本指令
本篇博客主要讲解具体的指令与操作含义:
打开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用户可以给予三个用户这三个权限,也可以收回,权限可以影响用户的操作结果,之后具体解释
-
文件占存大小: 它的单位是
Byte -
最后修改时间: 无论什么操作,执行后都会改变文件的最后操作时间
cd切换目录 来自缩写:change directoy. 可以改变用户所处的当前目录,对不同目录具体操作.
-
cd ..切换回上级目录 切换目录到当前目录的上一级目录 -
cd /切换到根目录 相当于Windows中的此电脑. -
切换到当前用户的
home目录cd ~cd homecd + 回车
-
cd -回到上层目录 返回刚才的目录,这个操作是可逆的,可以互相来回切换.
-
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重命名/移动文件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全部都取消掉了,说明三个之中任何一个用户都对他没有执行权限了
一个文件能否被执行有两个充要条件:
- 具有可执行权限
- 文件是一个可执行文件
将Windows操作系统中的可执行文件在Linux系统中是无法正常运行的
例如将Windows操作系统中的C语言编译出的
.exe文件在Linux系统中执行就会报错:无法执行的二进制文件. Windows可执行程序的格式 :PELinux可执行程序的格式 :ELF双方不能兼容!!
- 如果只想给一个用户授权或者回收权限,就要在指令中加上约束:
-
chmod o+x ls(o代表others,其他用户) -
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.文件没有
读权限,不能cat2.文件没有写权限,不能通过echo指令配合重定向进行修改 3.文件没有执行权限,不能执行 -
目录 1.目录没有
读权限,不能ls查看目录中包含什么文件或者目录 2.目录没有写权限,不能向目录中新增/删除文件 3.目录没有执行权限,不能通过cd切换至该目录下 -
file查看文件格式 -
history查看输入指令的历史
这里常见丰富的指令与快捷键就介绍差不多了,其他还有很多不常用但是很高效的指令大家有兴趣可以了解一下
但是linux指令的学习绝对不是靠背的,而是靠练的
熟能生巧,而不是死记硬背!