【Lehr】Linux学习笔记

Linux基本介绍

Linux学习方向

1.Linux运维工程师

2.Linux嵌入式工程师

3.开发工程师(学习部署)

应用领域

主要是在服务器上:高效,安全,稳定,处理高并发很强悍,且开源可自定义。

同时也用在小型嵌入式设备比如电视机顶盒什么的上,因为其内核可自己裁剪大小,以后物联网上都会广泛应用。

Linux发行版本

Linux只是一个操作系统的内核,真正投入使用需要用其不同的发行版本,常见的发行版本有CentOSUbuntuSuseRedhat红旗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常见的三种使用模式

  1. 正常模式:默认打开方式,可以用光标或租上下左右,还有复制粘贴什么的
  2. 插入模式:按下iroa之后进入编辑模式,一般来说按i即可
  3. 命令行模式:输入相关指令,完成读取,存盘,离开等操作

在这里插入图片描述

一些小指令

mkdir xxx: 建立文件夹

vim xxx: 打开文件,没有此文件就是新建

在命令模式中输入:

/xxx:查找某个关键字

:set nu:set nonu:设置文件行号和取消

在正常模式中输入:

G: 到最末行

gg: 到首行

yy5yy:复制当前光标起一行或五行,输入p来粘贴

dd5dd:删除当前光标起一行或五行

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

发布了33 篇原创文章 · 获赞 26 · 访问量 2604

猜你喜欢

转载自blog.csdn.net/qq_43948583/article/details/100632293