开机会启动很多程序,在windows这些东西叫做 服务(service),在Linux这些叫做守护进程(daemon)
用户登录的三种方式:
Linux的最高权限账户为root,可以操作一切,包括rm -rf /*,不要测试!
关机:命令shutdown 关机命令
# 关机之前的良好习惯,就是先将数据从内存同步到硬盘上!
sync
# 关机指令
shutdown
# 帮助命令,可以查看这个命令的所有帮助信息 man 指令
man shutdown
# 定时关机
shutdown -h 10 # 10分钟后关机
shutdown -h now # 立马关机
shutdown -h 22:00 # 晚上10点关机
shutdwon -r now # 重启命令
reboot # 重启命令
shutdown -p now # 关机
halt #关机整个系统,等价于 shutdown -h now 和 poweroff
Linux下的目录结构:(一定要了解)
树,挂载的状态,最高的节点就是 /
ls命令,查看根目录下的所有文件!
基本的目录结构:
在Linux中,一切皆文件,包括你外界的硬盘,设备都是文件!
在Linux中,如果没有报错,就是执行成功
目录作用:
在Linux中,用户的权限很重要!通过这个目录结构就可以看出来,管理员和普通用户都是分开放置的。
注意,相对路径和绝对路径的问题:
绝对路径都是 / 开头的,相对路径都是相对于当前目录写起!
# Linux中的所有命令一般都使用空格隔开,参数都是用 -xxx 拼接
cd .. 上一级目录
cd / 回到根目录
cd ~ 用户目录
处理文件的常用命令:
ls -参数 目录
ls 当前目录
参数
-a 全部的文件,包括隐藏文件都会显示
-l 列表格式化输出
[root@shiqi /]# ls -a
. .. .autorelabel bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@shiqi /]# ls -al
total 68
dr-xr-xr-x. 18 root root 4096 Dec 19 15:42 .
dr-xr-xr-x. 18 root root 4096 Dec 19 15:42 ..
-rw-r--r-- 1 root root 0 Aug 18 2017 .autorelabel
lrwxrwxrwx. 1 root root 7 Aug 18 2017 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Dec 19 15:09 boot
drwxr-xr-x 19 root root 2960 May 10 10:47 dev
drwxr-xr-x. 82 root root 4096 May 10 2020 etc
drwxr-xr-x. 5 root root 4096 Jan 9 15:12 home
lrwxrwxrwx. 1 root root 7 Aug 18 2017 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Aug 18 2017 lib64 -> usr/lib64
drwx------. 2 root root 16384 Aug 18 2017 lost+found
drwxr-xr-x. 2 root root 4096 Nov 5 2016 media
drwxr-xr-x. 2 root root 4096 Nov 5 2016 mnt
drwxr-xr-x. 2 root root 4096 Nov 5 2016 opt
dr-xr-xr-x 89 root root 0 May 10 10:47 proc
dr-xr-x---. 7 root root 4096 Jan 9 15:52 root
drwxr-xr-x 21 root root 600 May 10 10:48 run
lrwxrwxrwx. 1 root root 8 Aug 18 2017 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Nov 5 2016 srv
dr-xr-xr-x 13 root root 0 May 10 2020 sys
drwxrwxrwt. 9 root root 4096 May 10 11:02 tmp
drwxr-xr-x. 13 root root 4096 Jan 9 14:55 usr
drwxr-xr-x. 19 root root 4096 May 10 2020 var
# Linux中的所有命令一般都使用空格隔开,参数都是用 -xxx 拼接
cd .. 上一级目录
cd / 回到根目录
cd ~ 用户目录
pwd 显示当前的用户在哪个目录
# 如果是链接,要显示它的真实位置,可以使用 -p 参数
[root@shiqi tmp]# pwd -P
/var/tmp
# 创建单个目录
[root@shiqi home]# mkdir test
# 递归创建目录
[root@shiqi home]# mkdir -p test1/test2/test3/test4
# 移除单个目录
[root@shiqi home]# rmdir test
[root@shiqi home]# ll
total 16
drwxr-xr-x 3 root root 4096 Jan 9 15:12 data
drwxr-xr-x 5 root root 4096 Jan 9 15:26 logs
drwx------ 2 mysql mysql 4096 Dec 19 16:43 mysql
drwxr-xr-x 3 root root 4096 May 10 11:43 test1
[root@shiqi home]# rmdir test1
rmdir: failed to remove ‘test1’: Directory not empty
[root@shiqi home]# rmdir -p test1
rmdir: failed to remove ‘test1’: Directory not empty
# 递归删除目录,一定要是空的 注意rmdir 只能删除空的目录,如果不是空的目录,就需要使用rm 命令!
[root@shiqi home]# rmdir -p test1/test2/test3/test4/
[root@shiqi home]# ll
total 12
drwxr-xr-x 3 root root 4096 Jan 9 15:12 data
drwxr-xr-x 5 root root 4096 Jan 9 15:26 logs
drwx------ 2 mysql mysql 4096 Dec 19 16:43 mysql
-f : force, 忽略不存在的文件,不会出现任何警告!
-r :递归删除!尽量不要使用
-i : 互动,在删除前会提问你是否进行删除!
# 提示删除
[root@shiqi test]# rm -i install.sh
rm: remove regular file ‘install.sh’? y
# 递归强制删除
[root@shiqi test]# rm -rf test/
[root@shiqi test]#
# 尽量不要在服务器上使用 rm -rf /
# cp -[参数] 复制源文件地址 复制目标地址
参数
-r 递归
-i 询问,已经存在了,是否还复制!
[root@shiqi home]# cp -r /root/test2/ /home
[root@shiqi home]# ls
data logs mysql test test2
万能的帮助命令 man 命令!
Linux是一个多用户系统,不同用户就处于不同的地位 ,拥有不同的权限!
对于同一个文件夹,不同的访问,有不同的权限操作!
ll可以显示一个文件的属性和这个文件所属的用户(属性)和用户(属组):
d 第一个属性,代表这是一个文件夹!
在Linux中第一个字符代表你这个文件是目录,还是文件还链接地址…
接下的字符,每三个为一组,rwx,read可读,write 可写 execute 可执行,这里的所有位置都是固定的。
如果没有权限,就会展示-。
我们可以使用 0~9来表示对应位置
1 4 7 表示 读的权限 r
2 5 8 表示 写的权限 w
3 6 9 表示 执行权限 x
[root@shiqi home]# ll
total 16
drwxr-xr-x 3 root root 4096 Jan 9 15:12 data
drwxr-xr-x 5 root root 4096 Jan 9 15:26 logs
drwx------ 2 mysql mysql 4096 Dec 19 16:43 mysql
drwxr-xr-x 2 root root 4096 May 10 13:08 test2
# 更改文件的属组
[root@shiqi home]# chgrp rwx test2
chgrp: invalid group: ‘rwx’
# 更改文件的属主
[root@shiqi home]# chown hhzz test2
chown: invalid user: ‘hhzz’
# 更改文件的九个属性,这个就是万能,我们必须要掌握!
[root@shiqi home]# chmod 777 test2
[root@shiqi home]# ll
total 16
drwxr-xr-x 3 root root 4096 Jan 9 15:12 data
drwxr-xr-x 5 root root 4096 Jan 9 15:26 logs
drwx------ 2 mysql mysql 4096 Dec 19 16:43 mysql
drwxrwxrwx 2 root root 4096 May 10 13:08 test2
own grp other
rwx r-x r-x 我们都可以使用数字带代表各个权限
7 0 0
r 4
w 2
x 1
我们平时可以使用这个来进行快捷操作,大部分时间都是这么使用的!
[root@shiqi network-scripts]# pwd
/etc/sysconfig/network-scripts # Linux网络配置的目录文件
# cat 从一行开始展示我们的文件内容
[root@shiqi network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
# tac 从最后一行开始逆向展示我们的文件内容
[root@shiqi network-scripts]# tac ifcfg-eth0
ONBOOT=yes
BOOTPROTO=dhcp
DEVICE=eth0
# 展示行号的信息
[root@shiqi network-scripts]# nl ifcfg-eth0
1 DEVICE=eth0
2 BOOTPROTO=dhcp
3 ONBOOT=yes
# more 一页一页的翻动
more /etc/profile # 就当于我们window下的环境变量目录!
# 查看的时候的指令说明
空格 代表像下面翻页
回车 代表翻一行
/字符串 要搜索这个字符串
q 立刻离开more,不再显示
b 往回翻页
# less 一页一页的翻动
less /etc/profile
空格(键盘上下也可以使用) 代表像下面翻页
/字符串 要搜索这个字符串 (向下搜索)
?字符串 要搜索这个字符串 (向上搜索)
n 向下重复搜索
N 向上重复搜索
q 退出
# whereis 文件 全局搜索!会显示出他所在的路径!
| 管道符
将第一个命令的结果给第二个命令
cat 文件名 | grep "内容"
# head 只看文件的前几行
[root@shiqi etc]# head -n 20 profile # 只显示文件的前20行 -n 数字可以直接换
# tail 只看文件的后面行
[root@shiqi etc]# tail -n 30 profile # 只显示文件的后30行 -n 数字可以直接换
Linux 链接,分为 硬链接 和 软连接!
硬链接:
硬链接 直接进行链接,Linux中,保存在磁盘分区中的文件,不管是什么类型,都会给他分配一个编号,索引节点。多个文件名,可以指向同一个索引节点。A 是 B 的硬链接,就是代表 A 和 B 指向的节点是一样的。我们通过 A 或者 B,都可以访问到这个文件,现在我删除 A,B依旧可以访问!
硬链接的作用,允许一个文件拥有多个有效的路径名,可以建立硬链接,保护我们的重要文件,防止误删!。
软连接:
(符号链接),快捷方式,删掉快捷方式(软连接)没关系,但是源文件删除后,软连接就会失效!
[root@shiqi home]# touch f1 # 创建一个文件
[root@shiqi home]# ls
data f1 logs mysql
[root@shiqi home]# ln f1 f2 # 创建f1一个硬链接f2
[root@shiqi home]# ls
data f1 f2 logs mysql
[root@shiqi home]# ln -s f1 f3 # 创建f1一个软链接f3
[root@shiqi home]# ls
data f1 f2 f3 logs mysql
[root@shiqi home]# ll
total 12
drwxr-xr-x 3 root root 4096 Jan 9 15:12 data
-rw-r--r-- 2 root root 0 May 10 13:25 f1
-rw-r--r-- 2 root root 0 May 10 13:25 f2
lrwxrwxrwx 1 root root 2 May 10 13:26 f3 -> f1
drwxr-xr-x 5 root root 4096 Jan 9 15:26 logs
drwx------ 2 mysql mysql 4096 Dec 19 16:43 mysql
[root@shiqi home]# ls -li # -i就是现实 文件的 inode节点信息
total 12
394715 drwxr-xr-x 3 root root 4096 Jan 9 15:12 data
393231 -rw-r--r-- 2 root root 0 May 10 13:25 f1
393231 -rw-r--r-- 2 root root 0 May 10 13:25 f2
393233 lrwxrwxrwx 1 root root 2 May 10 13:26 f3 -> f1
393371 drwxr-xr-x 5 root root 4096 Jan 9 15:26 logs
393227 drwx------ 2 mysql mysql 4096 Dec 19 16:43 mysql
再次测试
[root@shiqi home]# echo "hello world" >> f1 # 向f1 中写入文件
[root@shiqi home]# cat f1
hello world
[root@shiqi home]# cat f2
hello world
[root@shiqi home]# cat f3
hello world
[root@shiqi home]# rm -rf f1 # 删除源文件 f1
[root@shiqi home]# cat f3 # f3 软链接失效
cat: f3: No such file or directory
[root@shiqi home]# cat f2 # f2 硬链接依旧OK!
hello world
果创建了硬链接,就要把这个连接所有的文件都删掉, f1,f2,都删除,这样才算是真正的删除!
什么是vim编辑器
vim键盘图:
Vim 核心:就是三种模式而已!
输入模式:
底线命令模式: