Linux系统
开机会启动很多程序,在windows这些东西叫做 服务(service),在Linux这些叫做守护进程(daemon)
用户登录的三种方式:
- 命令行登录 用户名 密码,Linux上,输入密码,它是不会提示的,你就正常输入回车即可!
- ssh登录,远程连接使用,工具十分多,自由选择即可
- 图形界面登录,和windos一样,无脑登录
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中,如果没有报错,就是执行成功
目录作用:
- /bin :这个目录中,存放我们要经常使用命令
- /boot : 这里就是存放的启动Linux使用的一些核心文件
- /dev: 设备,一般存放Linux的外部设备。在这里面都是文件
- /etc:所有的配置文件,我们都放在这里
- /home: 用户的主目录,在Linux中,每个用户都会有自己的目录
- /lib:动态链接库,就好比widows DII文件
- /lost+found:假设系统非法关机,这里就会存放一些文件,默认也是空的
- /media:存放一些设备,U盘,光驱这样的,Linux识别后,就会放到media目录下
- /mnt:临时挂载目录,将硬盘挂载在这个目录
- /opt:让电脑安装一些额外的软件使用,redis…数据库…,默认都是空的
- /root :系统管理员的目录。系统管理员主目录
- /sbin:Super User,存放管理员才能使用的程序。
- /tmp:使用重要,临时文件
- /usr:这是一个很重要的目录,很多程序和文件都放在这个目录下
- /usr/bin:普通用户的程序
- /usr/sbin: 管理员的程序
- /var :进程修改的文件目录一般都放在这里,包括日志文件等等,这个文件可能会不断的扩充…
- /www:存放一些网站程序,比如说,论坛,博客,项目之类的
- /www/server:存放一些服务器的环境 NGINX Tomcat MySQL PHP Apache…
在Linux中,用户的权限很重要!通过这个目录结构就可以看出来,管理员和普通用户都是分开放置的。
目录管理
注意,相对路径和绝对路径的问题:
绝对路径都是 / 开头的,相对路径都是相对于当前目录写起!
# Linux中的所有命令一般都使用空格隔开,参数都是用 -xxx 拼接
cd .. 上一级目录
cd / 回到根目录
cd ~ 用户目录
处理文件的常用命令:
- ls 列出文件
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
- cd 切换目录
# Linux中的所有命令一般都使用空格隔开,参数都是用 -xxx 拼接 cd .. 上一级目录 cd / 回到根目录 cd ~ 用户目录
- pwd 显示当前目录
pwd 显示当前的用户在哪个目录 # 如果是链接,要显示它的真实位置,可以使用 -p 参数 [root@shiqi tmp]# pwd -P /var/tmp
- mkdir 创建目录
# 创建单个目录 [root@shiqi home]# mkdir test # 递归创建目录 [root@shiqi home]# mkdir -p test1/test2/test3/test4
- rmdir 删除一个目录
# 移除单个目录 [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
- rm [-fir]移除文件或目录
-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 复制文件或目录
# 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中第一个字符代表你这个文件是目录,还是文件还链接地址…
- 【d】目录
- 【-】文件
- 【l】link链接
- 【b】代表存储设备(可随机存取装置)
- 【c】鼠标键盘之类的(一次性读取装置)
接下的字符,每三个为一组,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 数字可以直接换
Link链接
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便捷器(便捷文件的,IDE)
什么是vim编辑器
vim键盘图:
Vim 核心:就是三种模式而已!
- 命令模式
- 我们输入了vi/vim 文件,就会进入命令模式
[root@shiqi home]# vi f2
[root@shiqi home]# vim f2
- 我们输入了vi/vim 文件,就会进入命令模式
- 输入模式
- 在命令模式下面输入 i ,进入输入模式,就可以编辑任意的东西了
- 在输入模式中,esc 退出输入模式,就回到了命令模式
- 在命令模式下面输入 i ,进入输入模式,就可以编辑任意的东西了
- 底线命令模式
命令模式下 输入 : , 进入底线命令模式,在这里可以输入底线命令!保存,退出,搜索等等!
vim 流程:
基本的命令:
命令模式下:- x 删除当前光标所在的字符
- : 进入底线命令模式
- i 进入输入模式
- S 删除当前行并插入
输入模式:
- 字符串,直接输入
- 回车 换行
- 空格 空格键
- 删除 DEL
- 移动光标 上下作用
- HOME/END 移动光标到行首行尾
- Page UP / Page Down 上下翻页
- Insert ,切换光标状态 | —。 输入到替换
- ESC 退出
底线命令模式:
- q 退出程序
- w 保存文件
- !代表强制
- esc 退出底线模式