Linux入门常用命令大全

哔哩哔哩韩老师的课程真的超级赞!!!!!

文章目录


前言

提示:笔记来自哔哩哔哩韩顺平的linux教学笔记和众多博主的文章 请大家去看更全更详细的博主原文。这只是用来当自己的查阅笔记的
原文链接:
linux命令大全|菜鸟教程
https://blog.csdn.net/yspg_217?type=blog
https://wlybsy.blog.csdn.net/?type=blog
https://xxmdmst.blog.csdn.net/?type=blog

一、开机重启和用户注册登录

1.1 关机&重启命令

基本介绍
使用细节

1.2 用户登录和注销

基本介绍
使用细节

二、用户管理

基本介绍

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统

在这里插入图片描述

2.1 添加用户

语法:useradd 【用户名】

#案例1:添加一个用户milan,默认该用户的家目录在 /home/milan
useradd milan

细节说明

  1. 当创建用户成功后,会自动的创建和用户同名的家目录
  2. 也可以通过useradd -d指定目录新的用户名,给新创建的用户指定家目录

2.2 指定/修改密码

语法:passwd【用户名】

#应用案例:给milan指定密码
passwd milan

2.3 删除用户

语法:userdel 【用户名】

#1 删除用户milan,但是要保留家目录, userdel milan

#2 删除用户以及用户主目录,比如tom, userdel -r tom

细节说明:
一般我们会保留家目录

2.4 查询用户信息指令

语法: id [用户名]

#案例:请查询root信息
id root

细节说明
当用户不存在时,返回无此用户

2.5 切换用户

语法:su -切换用户名
在操作Linux中,如果当前用户的权限不够,可以通过su-指令,切换到高权限用户,比如root

#应用实例创建一个用户 jack,,指定密码,然后切换到jack

细节说明

  • 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
  • 当需要返回到原来用户时,使用exit/logout 指令

2.6 查看当前用户/登录用户

语法:whoami/ who am I

2.7 用户组

cat /etc/passwd
#
字段详解
字段1:帐号名,这是用户登陆时使用的账户名称,在系统中是唯一的,不能重名
字段2:密码占位符x;早期的unix系统中,该字段是存放账户和密码的,由于安全原因,后来把这个密码字段内容移到/etc/shadow中了。这里可以看到一个字母x,表示该用户的密码是/etc/shadow文件中保护的。
字段3:UID;范围是0-65535
字段4:GID;范围是0-65535;当添加用户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组。
字段5:用户说明;这个字段是对这个账户的说明
字段6:宿主目录;用户登陆后首先进入的目录,一般与"/home/用户名"这样的目录
字段7:登录Shell 当前用户登陆后所使用的shell,在centos/rhel系统中,默认的shell是bash;如果不希望用户登陆系统,可以通过usermod或者手动修改passwd设置,将该字段设置为/sbin/nologin 即可。

介绍
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理

在这里插入图片描述
新增组

语法: groupadd 组名

删除组

语法:groupdel 组名

案例演示

在这里插入代码片

2.8 用户和组相关文件

/etc/passwd文件

用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell

在这里插入图片描述
/etc/shadow文件口令的配置文件

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group文件

组(group)的配置文件,记录Linux包含的组的信息每行含义:组名:口令:组标识号:组内用户列表

三、实用指令

3.1 指定运行级别

基本介绍

语法:init【选项】
常用运行级别是3和5,也可以指定默认运行级别。
CentOS 7以前设置运行级别是在文件中,7以后可以通过命令来设置

选项含义
0关机
1单用户【找回丢失密码】
2多用户状态没有网络服务
3多用户状态有网络服务
4系统未使用保留给用户
5图形界面
6系统重启

在这里插入图片描述

init 3 

从图形界面切换到命令模式界面
在这里插入图片描述
在这里插入图片描述
指定运行级别

//多用户 等价于原先的3级别
multi-user.target:analogous to runlevel 3
//图形化 等价于原来的5级别
graphical.target:analogous to runlevel 5
//查看当前级别
systemctl get-default
//设置操作级别
systemctl set-default multi-user.target

在这里插入图片描述

3.2 找回root密码

1.首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图

在这里插入图片描述

2.进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后面输入:init=/bin/sh。如图

在这里插入图片描述

3.接着,输入完成后,直接按快捷键:Ctrl+x 进入单用户模式。

在这里插入图片描述

4.接着,在光标闪烁的位置中输入:mount -o remount,rw /(注意:各个单词间有空格),完成后按键盘的回车键(Enter)。如图

在这里插入图片描述

5.在新的一行最后面输入:passwd, 完成后按键盘的回车键(Enter)。输入密码,然后再次确认密码即可(提示: 密码长度最好8位以上,但不是必须的), 密码修改成功后,会显示passwd…的样式,说明密码修改成功

在这里插入图片描述

6.接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel(注意:touch与 /后面有一个空格),完成后按键盘的回车键(Enter)

在这里插入图片描述

7.继续在光标闪烁的位置中,输入:exec /sbin/init(注意:exec与 /后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码(韩顺平提示:这个过程时间可能有点长,耐心等待),完成后,系统会自动重启,
新的密码生效了

在这里插入图片描述

3.3 帮助指令:man、help

man获得帮助信息

语法: man[命令或配置文件](功能描述:获得帮助信息)
在linux 下,隐藏文件是以 .开头,选项可以组合使用比如 ls -al,比如 ls -al /root.

help 指令

语法: help命令(功能描述:获得 shell内置命令的帮助信息)9.3.3应用实例

案例

3.4 文件目录类

pwd指令

语法: pwd(功能描述:显示当前工作目录的绝对路径)应用实例:案例:显示当前工作目录的绝对路径

ls指令

语法: ls[选项][目录或是文件]

选项含义
-a显示当前目录所有的文件和目录,包括隐藏的。
-l以列表的方式显示信息

cd指令

用法:cd [-L|[-P [-e]] [-@]] [dir]
功能:改变工作目录。改变工作目录到dir,如果没有提供dir,就切换到当前用户的家目录(root用户就是/root或~,其他用户是/home/{username})

注意:Linux 所有的 目录 和 文件名 都是大小写敏感的

选项含义
-L相当于cd, 有软链接时走软链接
-P不走软链接,直接切到真实目录
可以同时定义多个值,用冒号分隔:

案例演示

在这里插入代码片

创建目录:mkdir

用法:mkdir [选项] 要创建的目录
创建 DIRECTORY(一个或多个)目录, 如果不存在

选项含义
-m, --mode=MODE设置文件权限 (类似chmod), 不是 a=rwx - umask
p, --parents如果目录已存在,不会报错,创建多级目录
-v, --verbose为每个创建的目录显示信息
-Z设置每个创建的目录的 SELinux 安全上下文为默认值

案例

在这里插入代码片

创建空文件:touch

语法:touch 文件名称

选项含义

案例

在这里插入代码片

拷贝文件:cp(未)

在这里插入图片描述

语法:cp[选项] source dest
拷贝文件到指定目录

选项含义

案例

在这里插入代码片

删除:rm

用法:rm [选项]…文件或者目录 …
功能:删除文件或者目录

选项含义
-f, --force忽略不存在的文件,永远不打印提示信息
-i删除前打印提示信息
-I删除多于3个文件或递归删除时,打印一次提示信息。
--interactive[=WHEN]根据 WHEN 来打印提示信息: never, once (-I),
或always (-i); 如果不配置 WHEN, 总是打印提示信息
--one-file-system递归删除一个层级时,跳过所有不符合命令行参数的文件系 统上的文件
--no-preserve-root不把’/'进行特殊处理
--preserve-root不删除’/'(默认)
-r, -R, --recursive递归删除
-d, --dir删除空目录
-v, --verbose显示过程信息

默认时,rm 不会删除目录。使用–recursive(-r 或-R)选项可删除每个给定
的目录,以及其下所有的内容。
删除以’-‘开头的文件,例如’-foo’,使用以下命令之一:
rm – -foo
rm ./-foo
请注意,如果使用rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证
该文件的内容无法还原,请考虑使用shred

移动文件:mv

用法:mv
功能:mv命令用来移动文件或目录,也可以给文件或目录重命名。

选项含义
-f禁止交互式操作,如有覆盖也不会给出提示
-i确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
-v显示移动进度

案例

在这里插入代码片

查看文件

1、查看文件(一般情况):cat

用法:cat [选项] 要查看的文件
功能:cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能
cat 会一次显示所有的内容,适合 查看内容较少 的文本文件

选项含义
-b对非空输出行编号
-n对输出的所有行编号:
2、查看文件(较多): more

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令)。

用法:more 要查看的文件
功能:more 命令可以用于分屏显示文件内容,每次只显示一页内容,适合于查看内容较多的文本文件,详情请看如下操作说明。

操作操作说明
空白键(space)代表向下翻一页;
Enter代表向下翻『一行』;
q代表立刻离开more ,不再显示该文件内容。
Ctrl+F向下滚动一屏
Ctrl+B返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号

案例

在这里插入代码片
3、查看文件(分屏):less

语法:less 要查看的文件
含义:less 指令用来分屏查看文件内容,它的功能与more 指令类似,但是比 more 指令更加强大,支持各种显示终端。
less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

操作说明

操作功能说明
空白键向下翻动一页;
[pagedown]向下翻动一页
[pageup]向上翻动一页;
/字串向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串向上搜寻『字串』的功能; n:向上查找;N:向下查找;离开less这个程序;
q离开less这个程序

案例

在这里插入代码片

输出指令:echo

语法:echo[选项][输出内容]
含义:echo输出内容到控制台基本语法

选项含义

案例

在这里插入代码片

显示文件

1、显示开头部分:head

语法:head 文件

含义: head 用于显示文件的开头部分内容,默认情况下head 指令显示文件的前10行内容
例如:head -n5文件
(功能描述:查看文件头5行内容,5可以是任意行数)

选项含义

案例

#案例:查看/etc/profile的前面5行代码
head -n 5 letc/profile

2、显示文件中部:tail

语法:tail 【选项】文件
含义:tail 用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。

选项含义
【空白】文件默认查看文件尾10行内容
n5 文件查看文件尾5行内容,5可以是任意行数
-f 文件实时追踪该文档的所有更新

案例

#案例1:查看/etc/profile最后5行的代码
tail -n 5/etc/profile
#案例2:实时监控mydate.txt,看看到文件有变化时,是否看到,实时的追加 hello,world
tail-f/home/mydate.txt

软连接:ln

语法:ln -s [原文件或目录][软链接名] (功能描述:给原文件创建一个软链接)
含义:软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径

选项含义

案例

#案例1:在/home目录下创建一个软连接myroot,连接到/root目录
ln -s /root /home/myroot
#案例2:删除软连接myroot
rm/home/myroot

细节说明
当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。

查看历史命令:history

语法:history(功能描述:查看已经执行过历史命令)

选项含义

案例

#案例1:显示所有的历史命令
history
#案例2:显示最近使用过的10个指令。
history 10
#案例3:执行历史编号为5的指令
!5

3.5 时间日期类

date指令

显示当前日期

语法:date+[选项](无选项时,+号可以省略)

选项含义
【空】功能描述:显示当前时间
date +%Y功能描述;显示当前年份
date +%m功能描述:显示当前月份
date +%d功能描述:显示当前是哪一天
date “+%Y-%m-%d %H:%M:%S”功能描述:显示年月日时分秒("-"可以替换其他符号)

案例

#案例1:显示当前时间信息
date
#案例2:显示当前时间年月日date 
"+%Y-%m-%d"
#案例3:显示当前时间年月日时分秒
date "+%Y-%m-%d %H:%M:%S"

设置日期

语法:date -s字符串时间

案例

#案例1:设置系统当前时间,比如设置成2020-11-03 20:02:10
date -s “2020-11-03 20:02:10"

3.6 搜索查找类

指定查找:find

语法:find[搜索范围(路径)][选项][条件]
含义:find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
功能:Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。
如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

选项含义
-name<查询方式>按照指定的文件名查找模式查找文件
-user<用户名>查找属于指定用户名所有文件
-size<文件大小>按照指定的文件大小查找文件。

选项详解

选项含义
-perm xxxx:权限为 xxxx的文件或目录
-user:按照文件属主来查找文件。
-size n :n单位,b:512位元组的区块,c:字元数,k:kilo bytes,w:二个位元组
-mount, -xdev :只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n :在过去 n 分钟内被读取过
-anewer file :比文件 file 更晚被读取过的文件
-atime n :在过去n天内被读取过的文件
-cmin n :在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n :在过去n天内被修改过的文件
-empty :空的文件
-gid n or -group name :gid 是 n 或是 group 名称是 name
-ipath p, -path p :路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name :文件名称符合 name 的文件。iname 会忽略大小写

-size案例

#查找当前目录下所有名为test.sh的文件
find ./ -name test.sh	
#查找当前目录下所有后缀为.sh的文件
find ./ -name ‘*.sh’	
#查找当前目录下所有以大写字母开头的文件
find ./ -name[A-Z]*”
#查找在/tmp 目录下等于2M的文件
find /tmp -size 2M	
#查找在/tmp 目录下大于2M的文件
find /tmp -size +2M	
#查找在/tmp 目录下小于2M的文件
find /tmp -size -2M	
#查找当前目录下大于4k,小于5M的文件
find ./ -size +4k -size -5M	
#查找当前目录下权限为 777 的文件或目录
find ./ -perm 0777

案例

#案例1:按文件名:根据名称查找/home目录下的hello.txt文件
find /home -name hello.txt
#案例2:按拥有者:查找/opt目录下,用户名称为nobody 的文件
find /opt -user nobody
#案例3:查找整个linux系统下大于200M的文件(+n大于-n小于n等于,单位有k,M,G
find / -size +200M

定位文件:locate

语法:locate 搜索文件
含义:locate指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻

特别说明

由于locate 指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

案例


grep 指令和管道符号|

grep过滤查找,管道符,“,表示将前一个命令的处理结果输出传递给后面的命令处理。
示意图:
在这里插入图片描述

语法:grep [选项]查找内容源文件

选项含义
-n显示匹配行及行号。
-i忽略字母大小写

实例

#案例1:请在 hello.txt文件中,查找"yes”所在行,并且显示行号
#写法1:
 cat /home/hello.txt | grep"yes"
#写法2: 
grep -n "yes"/home/hello.txt

3.7 压缩和解压类

压缩/解压缩指令

1、gzip

tar 与 gzip 命令结合可以使用实现文件 打包和压缩
tar 只负责打包文件,但不压缩
gzip 用于压缩文件,gunzip用于解压的
语法:
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)

用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz
在 Linux 中,最常见的压缩文件格式就是 xxx.tar.gz

选项含义
-C解压缩到指定目录,注意:要解压缩的目录必须存在
****命令格式如下****
# 压缩文件
tar -zcvf 打包后文件.tar.gz 被压缩的文件/路径...
# 解压缩文件
tar -zxvf 打包后文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包后文件.tar.gz -C 目标路径

案例

#案例1: gzip压缩,将/home下的 hello.txt文件进行压缩
gzip/home/hello.txt
#案例2: gunzip压缩,将/home下的 hello.txt.gz文件进行解压缩
gunzip /home/hello.txt.gz

2、zip/uzip

语法:
zip[选项]XXX.zip将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项]XXX.zip(功能描述:解压缩文件)
含义: zip用于压缩文件,unzip 用于解压的,这个在项目打包发布中很有用的
示意图:
在这里插入图片描述

选项含义
-r递归压缩,即压缩目录unzip的常用选项
-d<目录>指定解压后文件的存放目录√应用实例

案例

#案例1:将/home下的所有文件/文件夹进行压缩成myhome.zip
zip-r myhome.zip /homel[将home目录及其包含的文件和子文件夹都压缩]
#案例2:将myhome.zip解压到/opt/tmp_目录下
mkdir /opt/tmp
unzip -d /opt/tmp /home/myhome.zip

3、tar

语法:tar[选项]XXX.tar.gz打包的内容―(功能描述:打包目录,压缩后的文件格式.tar.gz)
含义:tar指令是打包指令,最后打包后的文件是.tar.gz的文件。

选项含义
-c产生.tar打包文件
-v显示详细信息进度
-f
-z打包同时压缩
-x解包.tar文件
-t列出档案中包含的文件

实例

#案例1:压缩多个文件,将/home/pig.txt 和 /home/cat.txt压缩成pc.tar.gz
tar -zcvf pc.tar.gz./home/pig.txt /homelcat.txt
#案例2:将/home 的文件夹压缩成myhome.tar.gz
tar -zcvf myhome.tar.gz. /homel
#案例3:―将pc.tar.gz解压到当前目录
tar -zxvf pc.tar.gz
#案例4:将myhome.tar gz解压到/opttmp2目录下
mkdir opt/tmp2
tar -zxvf/home/myhome.tar.gz-C /opt/tmp2

四、组管理和权限管理

4.1 Linux组基本介绍

在linux 中的每个用户必须属于一个组,不能独立于组外。在 linux中每个文件有所有者、所在组、其它组的概念。
1、所有者
2、所在组
3、其它组
4、改变用户所在的组
示意图:
在这里插入图片描述

4.2 文件/目录所有者

查看文件的所有者指令:ls -ahl

案例

修改文件所有者指令: chown

语法:chown 用户名 文件名应用

案例

#使用root创建一个文件apple.txt ,然后将其所有者修改成tom
chown tom apple.txt

4.3 组的创建

语法:groupadd组名

实例

#创建一个组, ,monster
groupadd monster
#创建一个用户fox ,并放入到monster组中
useradd -g monster fox

4.4 文件/目录所在组

查看文件/目录所在组

语法:ls- ahl
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)。

实例

#使用fox来创建一个文件,看看该文件属于哪个组?
-rw-r--r--. 1 fox monster 0 11月5 12:50 ok.txt

修改文件/目录所在组

语法:chgrp 组名文件名√

实例

#使用 root用户创建文件orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 fruit组。
1. groupadd fruit
2. touch orange.txt
#3.看看当前这个文件属于哪个组
->root 组
4.chgrp fruit orange.txt

4.5 其它组

除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

4.6 改变用户所在组:usermod

在添加用户时,可以指定将该用户添加到哪个组中,同样的用root 的管理权限可以改变某个用户所在的组。

改变用户所在组
usermod-g新组名用户名 usemod
-d目录名%用户名改变该用户登陆的初始目录。特别说明:用户需要有进入到新目录的权限。

实例

将zwj这个用户从原来所在组,修改到wudang 组usermod -g wudang zwj

4.7 权限的基本介绍

ls-l中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 209:39 abc
0-9位说明
第0位确定文件类型(d,- , l ,c , b)
l是链接,相当于windows的快捷方式
d是目录,相当于windows 的文件夹c是字符设备文件,鼠标,键盘
b是块设备,比如硬盘
第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User
第4-6位确定所属组(同用户组的)拥有该文件的权限,—Group
第7-9位确定其他用户拥有该文件的权限—Other

4.8 rwx权限详解,难点

rwx作用到文件

rwx作用到目录

4.9 文件及目录权限实际案例

4.10 修改权限-chmod

4.11 修改文件所有者-chown

4.12 修改文件/目录所在组-chgrp

4.13 最佳实践-警察和土匪游戏

4.14 课后练习案例

五、定时任务调度命令

5.1 crond

任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。
如病毒扫描等个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
示意图:在这里插入图片描述

语法:crontab [选项]

常用选项

选项含义
-e编辑crontab定时任务
-l查询crontab任务
-r删除当前用户所有的crontab任务

快速入门

设置任务调度文件: letcl/crontab
设置个人任务调度。执行crontab -e命令。接着输入任务到调度文件
如:/1***ls -l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令

参数细节说明

  • 5个占位符的说明
项目含义范围
第一个“*”—小时当中的第几分钟0-59
第二个“*”一天当中的第几小时0-23
第三个“*"一个月当中的第几天1-31
第四个“*"一年当中的第几月1-12
第五个“*"n一周当中的星期几0-7(0和7都代表星期日)
  • 特殊符号的说明
特殊符号含义含义
*代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
,代表不连续的时间。比如“0 8,12,16***命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
-代表连续的时间范围。比如“05 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令
*/n代表每隔多久执行一次。比如“/10 * **命令”,代表每隔10分钟就执行一遍命令
  • 特殊时间执行案例
时间含义
45 22***命令在22点45分执行命令
0 17**1命令每周1的17点0分执行命令
05 1,15**命令每月1号和15号的凌晨5点0分执行命令
40 4* * 1-5命令每周一到周五的凌晨4点40分执行命令
/104**命令每天的凌晨4点,每隔10分钟执行一次命令
o o 1,15* 1命令每月1号和15号,每周1的O点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

crond相关指令
conrtab-r:终止任务调度。
crontab -l:列出当前有那些任务调度service crond restart[重启任务调度]

案例

#案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
*/1**** date >> /tmp/mydate
#案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal 文件中
步骤:
(1) vim /home/my.sh写入内容 date >> /home/mycal和cal >> /home/mycal(2)给my.sh增加执行权限,chmod u+x /home/my.sh
(3) crontab -e 增加*/1****/home/my.sh
#案例3:每天凌晨2:00 将mysql数据库testdb,备份到文件中。
#提示:指令为 mysqldump -u root -p密码数据库>/home/db.bak
步骤(1) crontab -e
步骤(2)02步 **mysqldump -u root -proot testdb> /home/db.bak

5.2 at指令

1、概述

基本介绍:
1、at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
2、默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
3、at命令是一次性定时任务计划,执行完一个任务后不再执行此任务了
4、在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
5、示意图
在这里插入图片描述

2、命令格式

语法:at[选项] [时间]
Ctrl+D结束at命令的输入

3、常用选项

选项含义
-m当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
-1atq的别名
-datrm的别名
-d显示任务将被执行的时间
-c打印任务的内容到标准输出
-v显示版本信息
-q<队列>使用指定的队列
-f<文件>从指定文件读入任务而不是从标准输入读入
-<时间参数>以时间参数的形式提交要运行的任务

4、时间定义

指定时间的方法:
1、接受在当天的 hh:mm (小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如: 04:00
2、使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间.
3、采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm
4)、指定命令执行的具体日期,指定格式为month day(月日)或mm/ddyy(月/日/年)或dd.mm.yy(日.月.年),指
定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
5、使用相对计时法。指定格式为: now + count time-units ,now就是当前时间, time-units 是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天) 、 weeks(星期)。count 是时间的数量,几天,几小时。例如: now + 5 minutes
6、直接使用today(今天) 、tomorrow(明天〉来指定完成命令的时间。

5、应用实例

#案例1:2天后的下午5点执行/bin/ls /home
at 5pm + 2 days 
/bin/ls /home
  #ctrl+d 两次退出  ctrl+删除键  删除
#案例2: atq命令来查看系统中没有执行的工作任务
atq 
#案例3:明天17点钟,输出时间到指定文件内比如/root/date 100.log
at 5pm tomorrow
date > /root/date100.log
#案例4:2分钟后,输出时间到指定文件内比如/root/date200.log
at now +2 minutes 
date >/root/dete200.log
#案例5:删除已经设置的任务, atrm编号
#atrm 4//表示将job队列,编号为4的job删除.
atrm 4

在这里插入图片描述

六、磁盘分区、挂载

常用命令

6.1 Linux分区

1、原理介绍

1、Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构, Linux中每个分区都是用来组成整个文件系统的一部分。
2、Linux采用了一种叫"载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录
联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
3、示意图
在这里插入图片描述

2、硬盘说明

1、Linux硬盘分IDE 硬盘和SCSI硬盘,目前基本上是SCSI 硬盘
2、对于IDE硬盘,驱动器标识符为"hdx~"
其中"hdx~"
表明分区所在设备的类型,这里是指IDE硬盘了。
“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。
例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
3、对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd"来表示分区所在设备的类型的,其余则和IDE 硬盘的表示方法 一样
在这里插入图片描述

3、查看所有设备挂载情况

#lsblk
lsblk
#lsblk -f
lsblk -f

在这里插入图片描述
在这里插入图片描述

6.2 挂载的经典案例

添加一块硬盘

1)虚拟机添加硬盘

在【虚拟机】菜单中,右键选择【设置】,【硬盘】,【添加】,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改(1个g意思一下),至到完成。然后重启系统。

在这里插入图片描述
添加完成展示图:
在这里插入图片描述
使用这条命令可以不用重开机

echo "- - - " > /sys/class/scsi_host/host0/scan 

下图可以看到在dev目录下已经有sdb这个文件了
在这里插入图片描述

2)分区

分区命令

#分区命令: fdisk
fdisk /dev/sdb #开始对/sdb分区
选项含义
m显示命令列表
p显示磁盘分区同fdisk -ln新增分区
d删除分区w写入并退出

说明

开始分区后输入n,新增分区,然后选择p,分区类型为主分区。
两次回车默认剩余全部空间。最后输入 w 写入分区并退出,若不保存退出输入q。

开始分区

fdisk /dev/sdb    #按m选择n添加

在这里插入图片描述
输入子命令p,显示已有的分区表。
在这里插入图片描述
询问选择主分区还是扩展分区 :选p
在这里插入图片描述
选择默认扇区号和200M的大小
在这里插入图片描述
在添加分区2设置大小为剩余空间
在这里插入图片描述
输入子命令p,显示分区表,查看新创建好的分区。

在这里插入图片描述
输入子命令t,设置分区的类型。
输入要设置分区类型的分区代号,其中fat32为b,Linux为83。
在这里插入图片描述

输入子命令p,查看设置结果。
在这里插入图片描述

输入子命令w,把设置写入硬盘分区表,退出fdisk并重新启动系统。

在这里插入图片描述

3)格式化(设置文件系统)

3.1 在上述刚刚创建的分区上创建ext3文件系统和vfat文件系统。
在这里插入图片描述

命令作用
df -T只可以查看已经挂载的分区和文件系统类型。
fdisk -l可以显示出所有挂载和未挂载的分区,但不显示文件系统类型。
parted -l查看未挂载的文件系统类型,以及哪些分区尚未格式化
lsblk -f也可以查看未挂载的文件系统类型。

这里我使用的是查看
!!!发现了一个问题:mkfs设置vfat,然后查看是fat32

parted -l

在这里插入图片描述

这个问题,原因是mkfs在设置vfat没有加-F FAT-SIZE的情况下,会自动选择更合适的fat类型(你的内核更适合fat32,我的版本不一样就更适合fat16)
ls /lib/modules/ tab 补全/ kernel/fs 是为了查看内核支持的文件系统类型

在这里插入图片描述

在这里插入图片描述

3.2

  • 用fsck检查文件系统
fsck -N /dev/sdb1
fsck -N /dev/sdb2

在这里插入图片描述

4)挂载

①此命令后面不加任何参数表示查看已挂载的所有文件系统

②加参数表示将存储设备挂载到Linux的一个目录下,从而将分区和该目录联系起来,因此我们只要访问这个目录,就相当于访问该存储设备了。

注意:当一个目录之前有文件,设备挂载到这个目录后,该目录不显示之前的文件

(2)利用mkdir命令,在/mnt目录下建立挂载点,mountpoint1和mountpoint2。

mkdir /mnt/mountpoint1
mkdir /mnt/mountpoint2

在这里插入图片描述

(3) 把上述新创建的ext3分区挂载到/mnt/mountpoint1上。
(4)把上述新创建的vfat分区挂载到/mnt/mountpoint2上。
(5)利用mount命令列出挂载到系统上的分区,查看挂载是否成功。

df -h
mount /dev/sdb1 /mnt/mountpoint1
mount /dev/sdb2 /mnt/mountpoint2
df -h

在这里插入图片描述
(6)利用umount命令卸载上面的两个分区。

5)设置可以自动挂载
  • 在fstab里添加2个分区
vim /etc/fstab
#在最下面添加如下2行
/dev/sdb1               /mnt/mountpoint1        ext3    defaults        0 0
/dev/sdb2               /mnt/mountpoint2        vfat    defaults        0 0 
#查看 重启系统
df -lh

在这里插入图片描述

在这里插入图片描述

6.3 磁盘情况查询

6.4 磁盘情况-工作实用指令

6.5卷组与逻辑卷

6.6磁盘限额

1)xfs系统
2)

七、网络配置

7.1 Linux网络配置原理图

7.2 查看网络IP和网关

7.3 查看windows环境的中VMnet8网络配置(ipconfig指令)

7.4 查看linux的网络配置ifconfig

7.5 测试主机之间网络连通性:ping

7.6 linux网络环境配置

7.7 设置主机名和hosts映射

7.8 主机名解析过程分析(Hosts、DNS)

八、进程管理

8.1 基本介绍

8.2 显示系统执行的进程

8.3 终止进程kill和killall

8.4 查看进程树pstree

8.5 服务(service)管理

8.6 动态监控进程

8.7 监控网络状态

九、RPM与YUM

9.1rpm包的管理

9.2yum

运行级别指令

帮助指令

  • 1.man
  • 2.help
# 
man ls
man cd
#NAME  man ls
#       ls, dir, vdir - 列目录内容
#提要
#       ls [选项] [文件名...]
#       POSIX 标准选项: [-CFRacdilqrtu1]

在这里插入图片描述

#可以显示隐藏文件
ls -a
#也可以组合使用 a l顺序可以调换
ls -la
#显示home目录下所有的内容
ls -al /home
  • help
cd --help

四、文件目录类

显示当前路径:pwd

基本语法: pwd 功能描述:显示当前工作目录的绝对路径
用法: pwd [-LP]

选项含义
-L打印 $PWD 变量的值,如果它命名了当前的工作目录
-P打印当前的物理路径,不带有任何的符号链接
# dir_link 是 dir 的软链接
# ll | grep dir
drwxr-xr-x 2 root root  4096 1124 16:04 dir
lrwxrwxrwx 1 root root     3 1124 11:15 dir_link -> dir
# pwd
/root/dir_link
# pwd -L
/root/dir_link
# 打印实际目录(物理路径)
# pwd -P
/root/dir

who指令

who: 展示登录到当前系统的用户
用法: who [OPTION]… [ FILE | ARG1 ARG2 ]

选项含义
-a,–all等于 -b -d --login -p -r -t -T -u
-b,–boot展示上一次系统启动时间
-d,–dead打印死掉的进程
-H,–heading打印列首
-l,–login打印系统登录进程
–lookup尝试通过 DNS 使主机名规范化
-m仅与标准输入关联的主机名和用户
-p,–process打印由初始化产生的活动进程
q,–count展示所有登录用户信息和用户总数
-r,–runlevel打印当前的运行级别
-s,–short等于无选项的情况(默认)
-t,–time打印上次系统时钟更改
T,-w,–mesg增加显示用户的消息状态,+、-、?
-u,–users列出登录的用户名
-message等于 -T
-writable等于 -T
-help打印帮助文档后退出
-version打印版本信息后退出

列出目录的内容:ls

用法:ls [OPTION]… [FILE]…
打印关于FILE的信息(默认当前目录)
以字母表顺序排序(如果没有使用-cftuvSUX或者–sort等选项)

常用命令

选项含义
-a显示指定目录下所有子目录与文件,包括隐藏文件
-l以列表方式显示文件的详细信息
-h配合 -l 以人性化的方式显示文件大小

更多命令

选项含义
-L相当于cd, 有软链接时走软链接
-a, --all不隐藏任何以. 开始的项目
-A, --almost-all列出除. 及… 以外的任何项目
--author与-l 同时使用时列出每个文件的作者
-b, --escape以八进制溢出序列表示不可打印的字符
--block-size=SIZE用不同单位表示大小;例如: '–block-size=M’用1048576字节为单位表示。
-B, --ignore-backups不列出以~结尾的文件
-c与-lt一起使用: 列出文件的ctime,以ctime为顺序排列
与-l一起使用: 列出文件的ctime,以文件名为顺序排列
其他情况: 以ctime为顺序排列,越新越靠前
-C按列显示
–color[=WHEN]彩色显示。WHEN可以是’never’, ‘auto’,‘always’(默认)
-d, --directory显示目录本身,不显示里边的内容
-D, --dired配置一个为emac的文件管理模式设计的输出
-f不排序,满足-aU的效果,不满足–color的效果
-F, --classify在文件名后边加上后缀(*/=>@
–file-type和上边类似, 但没有’*’
–format=WORDacross -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
–full-time类似-l --time-style=full-iso
-g类似-l,但不列出所有者
–group-directories-first目录在前,文件在后。
可以用–sort增强效果, 但是–sort=none(-U)会去掉分组效果
-G, --no-group以一个长列表的形式,不输出组名
-h, --human-readable与-l 一起,以易于阅读的格式输出文件大小(例如 1K 234M 2G)
–si同上面类似,但是使用1000 为基底而非1024
-H, --dereference-command-line显示软链接
–dereference-command-line-symlink-to-dir列出每一个指向特定目录的软链接
–hide=PATTERN不显示文件名匹配PATTERN的文件
–indicator-style=WORD文件名添加后缀根据WORD确定风格:
none(默认),slash(-p),
file-type(–file-type),classify(-F)
-i, --inode显示文件的inode号
-I, --ignore=PATTERN不显示文件名匹配PATTERN的文件
-k, --kibibytes磁盘使用单位默认为1024字节,1kb
-l使用较长格式列出信息
-L, --dereference当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m所有项目以逗号分隔,并填满整行行宽
-n, --numeric-uid-gid类似 -l,但列出UID 及GID 号
-N, --literal输出未经处理的项目名称 (如不特别处理控制字符)
-o类似 -l,但不列出有关组的信息
-p, --indicator-style=slash对目录加上表示符号"/"
-q, --hide-control-chars用?代替非图形字符
–show-control-chars显示非图形字符
-Q, --quote-name文件名添加双引号
–quoting-style=WORD使用WORD配置引用样式:literal, locale, shell,shell-always, c, escape
-r, --reverse逆序排列
-R, --recursive递归显示子目录
-s, --size以块数形式显示每个文件分配的大小
-S以文件大小排序
–sort=WORD以WORD为标准排序: none (-U), size (-S), time (-t), version (-v), extension (-X)
–time=WORDwith -l, 显示以WORD为标准的时间,而不是默认的修改时间:atime 或 access 或使用(-u)ctime 或 status(-c); 如果使用了 --sort=time,也可以用指定时间作为排序依据
–time-style=STYLE使用-l时, 使用STYLE风格显示时间:full-iso, long-iso, iso, locale, or +FORMAT;FORMAT参考命令’date’中的使用方法; 如果FORMAT的格式FORMAT1FORMAT2, 那么FORMAT1对非近期文件生效FORMAT2对近期文件生效;如果STYLE有前缀’posix-',STYLE只在POSIX语言环境之外生效
-t以修改时间为依据排序,越新越靠前
-T, --tabsize=COLS设置水平制表符的长度
-u与-lt一起用: 显示atime并以此为依据排序;与-l一起用: 显示atime并以文件名为依据排序;其他情况: 以atime为依据排序
-U不排序,用文件系统原有顺序显示
-v根据版本进行排序
-w, --width=COLS设置屏幕宽度
-x按行显示而不是按列
-X以扩展名的字母顺序按顺序排列
-1一行显示一个文件名
SELinux options:
–lcontext显示安全上下文。支持-l。
-Z, --context显示安全上下文。只显示权限, 用户, 用户组, 安全上下文和文件名。
–scontext只显示安全上下文和文件名。

使用示例

Shell输入/输出重定向

用法:> ,<,>>,<<
功能:

选项含义
command > file将输出重定向到 file。
command < file将输入重定向到 file。
command >> file将输出以追加的方式重定向到 file。
n > file将文件描述符为 n 的文件重定向到 file。
n >> file将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m将输出文件 m 和 n 合并。
n <& m将输入文件 m 和 n 合并。
<< tag将开始标记 tag 和结束标记 tag 之间的内容作为输入。

需要注意的是文件描述符

  • 0 通常是标准输入(STDIN),
  • 1 是标准输出(STDOUT),
  • 2 是标准错误输出(STDERR)。

输出重定向

输出重定向>会覆盖文件内容
如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾

输入重定向

和输出重定向一样,Unix 命令也可以从文件获取输入
语法为:command1 < file1

重定向深入讲解

一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:

标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。

如果希望 stderr 重定向到 file,可以这样写:

Here Document

Here Document 是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。

它的基本的形式如下:

command << delimiter
document delimiter

/dev/null 文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:

$ command > /dev/null

/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null
文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

如果希望屏蔽 stdout 和 stderr,可以这样写:

$ command > /dev/null 2>&1

0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

课后练习:

1、常用命令习题(泉信linux实验2习题)

1.执行除了clear外与显示系统信息相关的命令,在操作步骤中记录进入系统时初始的工作目录(who、pwd、whoami、hostname、dmesg……)

cd /usr/local/linux/exam/command/lh

  • 2.执行clear后,并且以自己的姓名缩写xxx创建新的目录/usr/local/linux/exam/command/xxx,切换到新目录下,查看当前工作目录,并且列目录下文件清单(cd、mkdir、pwd、ls……)
mkdir -p /usr/local/linux/exam/command/lh
cd /usr/local/linux/exam/command/lh
pwd -P
ls -al
  • 3.执行clear后,将当前网路设备配置信息输出到net.log,查看包含“packets”的行,取出行中的所有数字,每行各个数字以逗号分隔的形式显示(ifconfig、>>、|、tr、cut、grep……)
ifconfig >> net.log
cat net.log | grep packets | awk '{print $3,$5,$6}'|sed 's/ /,/g' | sed 's/(/ /g'
  • 4.执行clear后,使⽤cat创建⼀个⽂件command.txt,⽂件内容为Linux系统的重启与关机命令、挂载某设备需执行命令及其卸载命令。(<<、>>、mount、shutdown……)

#5.执行clear后,创建多个文件(a.txt,b.txt等),将当前目录文件清单输出到filelist.txt,将当前目录归档并压缩,打包文件存放至其上级目录下并且复制一份加上.bak后缀作为备份,切换到上级目录,查看带索引结点信息的文件清单,思考系统切换到上级目录的原理。(cd、touch、tar、cp、ls……)

#6.执行clear后,删除xxx目录,从上一步骤中的打包文件中提取文件并在屏幕上显示处理过程,查找filelist文件位置。(cd、rm、tar、find……)

#7.执行clear后,删除目录下所有文件名包含bak的文件,通过mv指令删除归档文件xxx.tar并再次备份成xxx.tar.bak,切换到xxx目录(rm、mv)

#8.执行clear后,查看当前目录文件清单以及filelist.txt文件

#9.执行clear后,分别为filelist.txt和一个不存在的文件如notfound建立软硬链接,观察文件索引结点信息(ln、ls)

#10.执行clear后,删除filelist.txt,查看filelist.txt和上一步骤成功建立链接的文件内容,观察当前目录下文件索引结点信息(ls)

#11.建立多个周期性任务,至少包含每分钟执行一次某命令,每月1日凌晨5:30 查看某个文件、每周一三五在凌晨1-5点期间每隔30分钟查看网络配置并记录到log,查看已经安排好的作业,然后删除这些作业,再次查看是否还有周期性任务(crontab……)

#12.执行clear,练习使用向上与向下光标查看历史命令表,以及Tab补全命令等使用技巧,查看全部历史命令分别统计clear、ls、cat执行次数输出到/usr/local/xxx/cmdhistory.log,在操作步骤中记录自己使用的命令,查看/usr/local/xxx/cmdhistory.log文件内容(|、wc、>>)

#13.保持Linux服务器或虚拟机正常运行,通过远程连接登录到Linux环境,写一个无限循环脚本infinite_loop.sh, 执行sh infinite_loop.sh。终止执行。

#14.再次执行sh infinite_loop.sh,再建立一个相同的链接(或者复制回话),查看nfinite_loop.sh相关的进程信息。关闭第一个链接,查看nfinite_loop.sh相关的进程信息(ps)

#15.后台执行sh infinite_loop.sh,再建立一个相同的链接(或者复制回话),查看nfinite_loop.sh相关的进程信息。关闭上一个链接,查看nfinite_loop.sh相关的进程信息,直接杀死与该脚本相关的进程,再次查看nfinite_loop.sh是否还被执行。(ps、kill、&……)


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值