本篇记录linux的一些概念,简单命令,shell,vim
学习环境
centos7+vmware14
一、简述
1、一切皆文件
Linux中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
2、挂载
Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构),因此产生的问题是,当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。
如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。
并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录。
举个例子,我们想通过命令行访问某个 U 盘中的数据,图 1 所示为 U 盘文件目录结构和 Linux 系统中的文件目录结构。
可以看到,目前 U 盘和 Linux 系统文件分属两个文件系统,还无法使用命令行找到 U 盘文件,需要将两个文件系统进行挂载。
接下来,我们在根目录下新建一个目录 /sdb-u,通过挂载命令将 U 盘文件系统挂载到此目录,挂载效果如图 2 所示。
可以看到,U 盘文件系统已经成为 Linux 文件系统目录的一部分,此时访问 /sdb-u/ 就等同于访问 U 盘。
前面讲过,根目录下的 /dev/ 目录文件负责所有的硬件设备文件,事实上,当 U 盘插入 Linux 后,系统也确实会给 U 盘分配一个目录文件(比如 sdb1),就位于 /dev/ 目录下(/dev/sdb1),但无法通过 /dev/sdb1/ 直接访问 U 盘数据,访问此目录只会提供给你此设备的一些基本信息(比如容量)。
总之,Linux 系统使用任何硬件设备,都必须将设备文件与已有目录文件进行挂载。
3、免费开源,服务器霸主
Linux系统免费开源可定制,版本众多,性能强大,已经霸占了服务器端
二、文件操作命令
1、命令基本格式
命令提示符如下:
[root@localhost ~]#
[]:这是提示符的分隔符号,没有特殊含义。
root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录。
@:分隔符号,没有特殊含义。
localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
#:命令提示符,Linux 用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $。
切换用户使用sudo或者su命令,需要相应权限
家目录(又称主目录)是什么? Linux 系统是纯字符界面,用户登录后,要有一个初始登录的位置,这个初始登录位置就称为用户的家:
超级用户的家目录:/root。
普通用户的家目录:/home/用户名。
2、常用基本命令
| 切换目录 |
| 显示目录 |
| 打印目录 |
| 创建空目录 |
| 删除空目录 |
| 创建文件 |
| 复制目录或文件 |
| 删除目录或文件 |
| 切换目录 |
| 移动文件目录或重命名 |
如下
[centos7@localhost Desktop]$ su root
密码:
[root@localhost Desktop]# ls
[root@localhost Desktop]# cd /
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@localhost /]# pwd
/
[root@localhost /]# su centos7
[centos7@localhost /]$ cd /home
[centos7@localhost home]$ ls
centos7 hello ye
[centos7@localhost home]$ mkdir onetext
mkdir: 无法创建目录"onetext": 权限不够
[centos7@localhost home]$ su root
密码:
[root@localhost home]# mkdir onetext
[root@localhost home]# ls
centos7 hello onetext ye
[root@localhost home]# rmdir onetext
[root@localhost home]# ls
centos7 hello ye
[root@localhost home]# mkdir onetext
[root@localhost home]# ls
centos7 hello onetext ye
[root@localhost home]# rm onetext
rm: 无法删除"onetext": 是一个目录
[root@localhost home]# rm -r onetext
rm:是否删除目录 "onetext"?y
[root@localhost home]# ls
centos7 hello ye
[root@localhost home]#
三、编辑器
Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
Vim文本编辑器,是由 vi 发展演变过来的文本编辑器,因其具有使用简单、功能强大、是 Linux 众多发行版的默认文本编辑器等特点,成功圈住了很多人成为其死忠粉丝。
使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式,这 3 种工作模式可随意切换
四、shell基础
Shell 是 Linux 的命令解释器,简单来说,可以理解为 Linux 系统提供给用户的使用界面,而 Linux 的 Shell 是 Bash。
打印命令 echo
这个命令可以用来打印,可以直接使用,也可以在shell中使用
echo "hello"
在hello.sh文件中echo "hello"
,在命令行中使用bash hello.sh
的效果是一样的
history命令
这个命令用来查询输入过的系统指令,-c 清空历史命令,-w将历史命令写入文件
自动补全命令
使用tab键可以帮我们补全一些字节