哔哩哔哩韩老师的课程真的超级赞!!!!!
提示:笔记来自哔哩哔哩韩顺平的linux教学笔记和众多博主的文章 请大家去看更全更详细的博主原文。这只是用来当自己的查阅笔记的
原文链接:
linux命令大全|菜鸟教程
https://blog.csdn.net/yspg_217?type=blog
https://wlybsy.blog.csdn.net/?type=blog
https://xxmdmst.blog.csdn.net/?type=blog
基本介绍
使用细节
基本介绍
使用细节
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统
语法:useradd 【用户名】
#案例1:添加一个用户milan,默认该用户的家目录在 /home/milan
useradd milan
细节说明
语法:passwd【用户名】
#应用案例:给milan指定密码
passwd milan
语法:userdel 【用户名】
#1 删除用户milan,但是要保留家目录, userdel milan
#2 删除用户以及用户主目录,比如tom, userdel -r tom
细节说明:
一般我们会保留家目录
语法: id [用户名]
#案例:请查询root信息
id root
细节说明
当用户不存在时,返回无此用户
语法:su -切换用户名
在操作Linux中,如果当前用户的权限不够,可以通过su-指令,切换到高权限用户,比如root
#应用实例创建一个用户 jack,,指定密码,然后切换到jack
细节说明
语法:whoami/ who am I
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 组名
案例演示
在这里插入代码片
/etc/passwd文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件
组(group)的配置文件,记录Linux包含的组的信息每行含义:组名:口令:组标识号:组内用户列表
基本介绍
语法: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
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),等待系统自动修改密码(韩顺平提示:这个过程时间可能有点长,耐心等待),完成后,系统会自动重启,
新的密码生效了
man获得帮助信息
语法: man[命令或配置文件](功能描述:获得帮助信息)
在linux 下,隐藏文件是以 .开头,选项可以组合使用比如 ls -al,比如 ls -al /root.
help 指令
语法: help命令(功能描述:获得 shell内置命令的帮助信息)9.3.3应用实例
案例
语法: pwd(功能描述:显示当前工作目录的绝对路径)应用实例:案例:显示当前工作目录的绝对路径
语法: ls[选项][目录或是文件]
选项 | 含义 |
---|---|
-a | 显示当前目录所有的文件和目录,包括隐藏的。 |
-l | 以列表的方式显示信息 |
用法:cd [-L|[-P [-e]] [-@]] [dir]
功能:改变工作目录。改变工作目录到dir,如果没有提供dir,就切换到当前用户的家目录(root用户就是/root或~,其他用户是/home/{username})
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的
选项 | 含义 |
---|---|
-L | 相当于cd, 有软链接时走软链接 |
-P | 不走软链接,直接切到真实目录 |
: | 可以同时定义多个值,用冒号分隔: |
案例演示
在这里插入代码片
用法:mkdir [选项] 要创建的目录
创建 DIRECTORY(一个或多个)目录, 如果不存在
选项 | 含义 |
---|---|
-m, --mode=MODE | 设置文件权限 (类似chmod), 不是 a=rwx - umask |
p, --parents | 如果目录已存在,不会报错,创建多级目录 |
-v, --verbose | 为每个创建的目录显示信息 |
-Z | 设置每个创建的目录的 SELinux 安全上下文为默认值 |
案例
在这里插入代码片
语法:touch 文件名称
选项 | 含义 |
---|---|
案例
在这里插入代码片
语法:cp[选项] source dest
拷贝文件到指定目录
选项 | 含义 |
---|---|
案例
在这里插入代码片
用法: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命令用来移动文件或目录,也可以给文件或目录重命名。
选项 | 含义 |
---|---|
-f | 禁止交互式操作,如有覆盖也不会给出提示 |
-i | 确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件 |
-v | 显示移动进度 |
案例
在这里插入代码片
用法:cat [选项] 要查看的文件
功能:cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能
cat 会一次显示所有的内容,适合 查看内容较少 的文本文件
选项 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号: |
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令)。
用法:more 要查看的文件
功能:more 命令可以用于分屏显示文件内容,每次只显示一页内容,适合于查看内容较多的文本文件,详情请看如下操作说明。
操作 | 操作说明 |
---|---|
空白键(space) | 代表向下翻一页; |
Enter | 代表向下翻『一行』; |
q | 代表立刻离开more ,不再显示该文件内容。 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
案例
在这里插入代码片
语法:less 要查看的文件
含义:less 指令用来分屏查看文件内容,它的功能与more 指令类似,但是比 more 指令更加强大,支持各种显示终端。
less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
操作说明
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页; |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页; |
/字串 | 向下搜寻『字串』的功能;n:向下查找;N:向上查找; |
?字串 | 向上搜寻『字串』的功能; n:向上查找;N:向下查找;离开less这个程序; |
q | 离开less这个程序 |
案例
在这里插入代码片
语法:echo[选项][输出内容]
含义:echo输出内容到控制台基本语法
选项 | 含义 |
---|---|
案例
在这里插入代码片
语法:head 文件
含义: head 用于显示文件的开头部分内容,默认情况下head 指令显示文件的前10行内容
例如:head -n5文件
(功能描述:查看文件头5行内容,5可以是任意行数)
选项 | 含义 |
---|---|
案例
#案例:查看/etc/profile的前面5行代码
head -n 5 letc/profile
语法: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 -s [原文件或目录][软链接名] (功能描述:给原文件创建一个软链接)
含义:软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
选项 | 含义 |
---|---|
案例
#案例1:在/home目录下创建一个软连接myroot,连接到/root目录
ln -s /root /home/myroot
#案例2:删除软连接myroot
rm/home/myroot
细节说明
当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
语法:history(功能描述:查看已经执行过历史命令)
选项 | 含义 |
---|---|
案例
#案例1:显示所有的历史命令
history
#案例2:显示最近使用过的10个指令。
history 10
#案例3:执行历史编号为5的指令
!5
语法: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"
语法: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 指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
案例
语法:grep [选项]查找内容源文件
选项 | 含义 |
---|---|
-n | 显示匹配行及行号。 |
-i | 忽略字母大小写 |
实例
#案例1:请在 hello.txt文件中,查找"yes”所在行,并且显示行号
#写法1:
cat /home/hello.txt | grep"yes"
#写法2:
grep -n "yes"/home/hello.txt
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
语法:
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
语法: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
在linux 中的每个用户必须属于一个组,不能独立于组外。在 linux中每个文件有所有者、所在组、其它组的概念。
1、所有者
2、所在组
3、其它组
4、改变用户所在的组
示意图:
案例
语法:chown 用户名 文件名应用
案例
#使用root创建一个文件apple.txt ,然后将其所有者修改成tom
chown tom apple.txt
语法:groupadd组名
实例
#创建一个组, ,monster
groupadd monster
#创建一个用户fox ,并放入到monster组中
useradd -g monster fox
语法: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
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root 的管理权限可以改变某个用户所在的组。
改变用户所在组
usermod-g新组名用户名 usemod
-d目录名%用户名改变该用户登陆的初始目录。特别说明:用户需要有进入到新目录的权限。
实例
将zwj这个用户从原来所在组,修改到wudang 组usermod -g wudang zwj
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
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类: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命令
参数细节说明
项目 | 含义 | 范围 |
---|---|---|
第一个“*” | —小时当中的第几分钟 | 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
1、概述
基本介绍:
1、at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
2、默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
3、at命令是一次性定时任务计划,执行完一个任务后不再执行此任务了
4、在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
5、示意图
2、命令格式
语法:at[选项] [时间]
Ctrl+D结束at命令的输入
3、常用选项
选项 | 含义 |
---|---|
-m | 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出 |
-1 | atq的别名 |
-d | atrm的别名 |
-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
常用命令
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
在【虚拟机】菜单中,右键选择【设置】,【硬盘】,【添加】,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改(1个g意思一下),至到完成。然后重启系统。
echo "- - - " > /sys/class/scsi_host/host0/scan
分区命令
#分区命令: 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。
输入子命令w,把设置写入硬盘分区表,退出fdisk并重新启动系统。
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 -N /dev/sdb1
fsck -N /dev/sdb2
①此命令后面不加任何参数表示查看已挂载的所有文件系统
②加参数表示将存储设备挂载到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
vim /etc/fstab
#在最下面添加如下2行
/dev/sdb1 /mnt/mountpoint1 ext3 defaults 0 0
/dev/sdb2 /mnt/mountpoint2 vfat defaults 0 0
#查看 重启系统
df -lh
#
man ls
man cd
#NAME man ls
# ls, dir, vdir - 列目录内容
#提要
# ls [选项] [文件名...]
# POSIX 标准选项: [-CFRacdilqrtu1]
#可以显示隐藏文件
ls -a
#也可以组合使用 a l顺序可以调换
ls -la
#显示home目录下所有的内容
ls -al /home
cd --help
基本语法: pwd 功能描述:显示当前工作目录的绝对路径
用法: pwd [-LP]
选项 | 含义 |
---|---|
-L | 打印 $PWD 变量的值,如果它命名了当前的工作目录 |
-P | 打印当前的物理路径,不带有任何的符号链接 |
# dir_link 是 dir 的软链接
# ll | grep dir
drwxr-xr-x 2 root root 4096 11月 24 16:04 dir
lrwxrwxrwx 1 root root 3 11月 24 11:15 dir_link -> dir
# pwd
/root/dir_link
# pwd -L
/root/dir_link
# 打印实际目录(物理路径)
# pwd -P
/root/dir
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 [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=WORD | across -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=WORD | with -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 | 只显示安全上下文和文件名。 |
使用示例
用法:> ,<,>>,<<
功能:
选项 | 含义 |
---|---|
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 之间的内容作为输入。 |
需要注意的是文件描述符
输出重定向>会覆盖文件内容
如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾
和输出重定向一样,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 是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。
它的基本的形式如下:
command << delimiter
document delimiter
如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:
$ command > /dev/null
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null
文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
如果希望屏蔽 stdout 和 stderr,可以这样写:
$ command > /dev/null 2>&1
0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
1.执行除了clear外与显示系统信息相关的命令,在操作步骤中记录进入系统时初始的工作目录(who、pwd、whoami、hostname、dmesg……)
cd /usr/local/linux/exam/command/lh
mkdir -p /usr/local/linux/exam/command/lh
cd /usr/local/linux/exam/command/lh
pwd -P
ls -al
ifconfig >> net.log
cat net.log | grep packets | awk '{print $3,$5,$6}'|sed 's/ /,/g' | sed 's/(/ /g'
#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提供了大量能使我们快速便捷地处理数据的函数和方法。