【Lehr】Linux学习笔记
Linux基本介绍
Linux学习方向
1.Linux运维工程师
2.Linux嵌入式工程师
3.开发工程师(学习部署)
应用领域
主要是在服务器上:高效,安全,稳定,处理高并发很强悍,且开源可自定义。
同时也用在小型嵌入式设备比如电视机顶盒什么的上,因为其内核可自己裁剪大小,以后物联网上都会广泛应用。
Linux发行版本
Linux只是一个操作系统的内核,真正投入使用需要用其不同的发行版本,常见的发行版本有CentOS
、Ubuntu
、Suse
、Redhat
、红旗Linux
等。
Linux目录结构
在Linux的世界里,一切皆文件
Linux中,最高目录为/
其他有些默认的目录放什么东西是有讲究的:
/etc
: 所有的系统管理所需要的配置文件和子目录。
/usr
: 用户的很多文件都放在这里,类似于Windows的Program Files
/media
: Linux系统识别到的设备比如U盘光驱,都被映射成文件来管理
/mnt
: 让用户临时挂在别的文件的地方
/var
: 习惯在这里存放经常扩展或修改的文件
远程操作Linux
本笔记基于CentOS 6.8
工具:XShell6和Xftp6
前提:你的虚拟机启动了sshd服务
Vi和Vim编辑器
所有的Linux系统都会建立vi文本编辑器
Vim是具有编程能力的,可以看作是Vi的升级版
Vim常见的三种使用模式
- 正常模式:默认打开方式,可以用光标或租上下左右,还有复制粘贴什么的
- 插入模式:按下
i
、r
、o
、a
之后进入编辑模式,一般来说按i
即可 - 命令行模式:输入相关指令,完成读取,存盘,离开等操作
一些小指令
mkdir xxx
: 建立文件夹
vim xxx
: 打开文件,没有此文件就是新建
在命令模式中输入:
/xxx
:查找某个关键字
:set nu
和:set nonu
:设置文件行号和取消
在正常模式中输入:
G
: 到最末行
gg
: 到首行
yy
和5yy
:复制当前光标起一行或五行,输入p
来粘贴
dd
和5dd
:删除当前光标起一行或五行
u
: 撤销一行你刚才的操作
如何让光标快速跳转到某一行?
1.打开行号显示
2.正常模式下输入你要跳转的行号,不会显示虽然
3.shift+g
开关机指令
syn
:把内存的数据同步到磁盘,关机之前可以日常输一下
shutdown -h now
:立即关机
shutdown -h 1
:一分钟后关机
shutdown -r now
/ reboot
:立即重启
登录、注销
logout
:注销,在图形运行级别无效,在运行级别3下有效
'登录注意
:一般少用root账号登录,因为有最大权限避免操作失误,可以先用普通账号登录然后再su成管理员
指定运行级别
运行级别:
0:关机
1:单用户(找回丢失密码)
2:多用户无网络服务
3:多用户有网络服务(常用)
4:保留(现在还没有启用,预留的)
5:图形界面(通过设置5级别来进入图形界面)
6:重启(设置为6就会不停重启)
系统的运行级别配置文件/etc/inittab
切换到指定运行级别的指令
init 【012356】
init 0
也是关机的意思
如何找回root丢失的密码
思路:进入到单用户模式,然后修改root密码,因为单用户模式,root不需要密码就可以登录。
方法:开机启动的时候按e键进入一个控制界面,然后再按e进入kernel选项,再输入一个e,空格,输入1,回车,然后输入b, 这时就以root模式进入了单用户模式,这时候你就可以passwd root改密码了。
安全性:你必须是在电脑机子那段登录才能用这个,远程是不能这样搞的。(不过进了机房就可以改了嘿嘿嘿)
指令
帮助指令
man 指令
: 告诉你这条语句基本语法
help 指令
: 告诉你语句功能
实用指令
pwd
: 查看当前文件所在目录路径
ls
: 查看当前目录下有什么文件, -l
可以查看详细信息
cd
: (change direction)切换目录,后面常用的参数有:
- 绝对路径:/xxx/ :从根目录开始一级一级找到
- 相对路径: …/xx :回到上一级然后开始定位
mkdir
:创建目录,eg:
- mkdir /home/dog:在home下创建一个叫dog的目录
- mkdir -p /home/cat/tomcat:创建多级目录
rmdir
:删除空目录,如果有内容是无法删除的,就需要用到下面这个命令了:
rm -rf 目录
:删除有文件的文件夹(-r代表递归删除所有,-f代表不提示你就强制删除了)
慎用:rm -rf /* :代表删除全部文件
touch xxx
:创建空文件,和vim创建相比,vim是在保存后才会创建
cp aaa.txt /home/bbb/
:把aaa拷贝到bbb(绝对路径)
cp -r /home/bbb/
:把当前目录里的所有东西递归拷贝到bbb(绝对路径)
/cp ....
:强制覆盖不提示
mv old new
:移动文件与目录或重命名,eg:
- 重命名: mv aaa.txt bbb.txt 就相当于移动到当前目录换个名字
- 移动: mv /home/aaa.txt /root 移动过去还是叫aaa.txt
cat
:查看文件
Ps:为了浏览方便,通常会这样写加入指令:-n显示行号,|more分页服务(不会一次很多行堆完,按空格下一页,Ctrl+b回翻)
所以一般:cat -n xxx.txt |more
more
:查看文件更方便!自己去研究。
less
:当显示很大的文件的时候,用less
,因为是每次读取一页而不是全部的
head aaa.txt
:仅查看开头10行,也可以添加参数 head -n 20
看20行
tail aaa.txt
:查看结尾10行,也可以指定参数,这里另外还有个用法:tail -f aaa.txt
实时追踪文件,一旦更新了就会在你控制台显示(你可以拿远程连接试试,按ctrl+c退出监控)。
覆盖和追加
覆盖>
语法:xxx > a.txt
覆盖文件内容
追加>>
语法:xxx >> a.txt
在文件尾部追加
综合其他指令可以这样用:
ls -l > myList.txt
:把当前列表的内容写道myList.txt里去覆盖
cat a.txt >> b.txt
:把a.txt的内容追加到b.txt结尾
管道符grey
在给定的一段内容里查找关键字并显示出来
|grey xxx
:-n 显示行号 ,-i 不区分大小写
Eg:cat hello.txt | grey -ni lehr
:在hello这个文件中不区分大小写查找字段lehr然后同时连带着行号一起显示出来
Linux组管理
用户管理
说明:
- Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须先想系统管理员申请一个账号然后以这个身份进入系统
- Linux的用户至少需要属于一个用户组
基本语法:
-
su xxx
切换用户,比如su root然后输入密码,但从root切的话就可以不用输密码
-
useradd [选项] xxx
添加用户,选项可以不写,不分组的话默认创建一个和xxx同名的用户组,同时/home目录下会有对应的文件生成。选项可以是配置不同名的家目录,也可以是分组例如:
useradd -g myGroup xxx
-
passwd xxx
给xxx设置密码,输入完这个就会提示你开始设置密码
-
userdel xxx
删除用户(实际开发中一般不会去删除用户的家目录的)
-
userdel -r xxx
删除用户同时删除家目录
-
id xxx
返回用户信息,所在组之类的
-
groupadd xxx
增加一个用户组
-
groupdel xxx
删除一个用户组
-
usermod -g anotherGroup xxx
修改用户所在的组
所以,这些信息放在哪里呢?
答:在/etc/passwd(用户密码和登录相关)、/etc/shadow(放加密口令之类的)、/etc/group(分组相关)的下面
基本介绍
Linux中的文件有以下几个属性:
1.所有者:谁创建的就是谁的
2.所在组:创建者的组
3.其他组:除去创建者所在的组的都叫其他组
4.改变用户所在组:不解释
ls -ahl
:查看文件所有者
文件权限介绍
使用ls -l
可以查看文件详细情况得到上图
rwx权限
对于文件:
可读r可写w可执行x
Ps:关于删除的权限:不是说你对这个文件有w就可以了而是你要对其所在的目录有w权限才能删除
对于目录:
可读r可写w(目录内修改删除重命名新建)可加入x
rwx也可以用数组表示:r=4,w=2,x=1
所以7就是三个权限都给了
ls -l结果结构
其中以第二条为例:
drwxrr-xr-x. 3 root root 4096 Sep 5 22:47 test
- 第一个:d 表示文件类型
此外:-
普通文件,d
目录,l
软链接,c
字符设备比如键盘鼠标,b
块文件比如硬盘
- 第一组:rwx
第一组就对应了文件所有者的权限(而不是当前登录的你的)
- 第二组:r-x
第二组表示了文件所在组用户的权限
- 第三组:r-x
第三组表示其他组的用户的权限
- 3:代表子目录里有几个东西,如果是文件就是1
- 第一个root表示所有者是root
- 第二个root表示所在组是root
- 后面的4096是大小是字节byte
- 然后是日期,文件名。
属性修改指令
chown user xxx.txt
:修改文件的所有者(但是所在组是不会变的)
chown user -r /kkk
:改变目录和整个文件夹里的所有文件的所有者
chgrp groupName xxx.txt
:修改文件的所在组
chown owner:group xxx.txt
:同时修改所有者和组
权限修改指令
指令:chmod
第一种方式:+ - =
u:所有者
g:所有组
o:其他人
a:所有的人(u+g+o的人)
使用实例:
chmod u=rwx, g=rwx, o=rwx a.txt
:直接赋权限…
chmod u-x, g+x, o=rwx a.txt
:user减去x权限…
第二种方式:用数字
chmod u=rwx,g=rx,o=x
相当于chmod 751
任务调度基础
crontab
常用语法crontab [选项]
常用选项:-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
用法:
1.crontab -e
2.开始编辑定时任务:每隔一分钟把后面的语句执行一次
3.保存退出就生效了
时间表达式
上面我们看到前面设定的时间表达式
* * * * *
一共有五个星号,每个代表特定的时间,规则如下:
特殊符号:
例子:
当指令的需求变得很复杂的时候,就需要先把语句封装到脚本
里来执行了,具体方法如下:
脚本编写
1.编写一个文件,里面就是你要执行的语句,不用写时间,保存为.sh,并开启可执行权限(chmod 744就可以了)
2.打开crontab -e然后时间表达式+脚本地址,例如:
磁盘分区
磁盘分区有两种方式:mbr和gpt
lsblk -f
:查看分区
dh -lf
:查看磁盘剩余空间
ls -l /xx | grey "^-" | wc -l
:统计目录下有几个文件
ls -lr /xx | grey "^-" | wc -l
:统计目录以及子目录下有几个文件
ls -l /xx | grey "^d" | wc -l
:统计目录下有几个目录
tree
:树状显示目录结构,第一次使用如果没用这个指令时可以yum install tree