功能描述:是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助等等 语法:man 【数字】 【命令或配置文件】 帮助信息说明 信息 功能 NAME 命令的名称和单行描述 SYNOPSIS 怎样使用命令 DESCRIPTION 命令功能的深入讨论 EXAMPLES 怎样使用命令的例子 实操: (1)查看ls命令的帮助手册 [root@hadoop101 ~]# man ls (2)查看cd命令的帮助手册 [root@hadoop101 ~]# man cd (3)查看clear命令的帮助手册 [root@hadoop101 ~]# man clear (4)显示/etc/nologin 配置文件的帮助手册 [root@hadoop101 ~]# man nologin
功能描述:该命令是bash内建命令,用于显示bash内建命令的帮助信息 语法:help 【选项】【参数】 实操: (1)查看cd命令的帮助信息 [root@hadoop101 ~]# help cd (2)仅输出内建命令的命令格式 [root@hadoop101 ~]# help -s cd linux中如何判断是不是shell内置命令? 判断方法是用which来查看命令,如果没有路径就是shell内置命令。
https://wangchujiang.com/linux-command/ https://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html
ctrl + c 停止进程 ctrl+l 清屏 reset 彻底清屏 ctrl + q 退出 善于用tab键 提示,补全(更重要的是可以防止敲错) 上下键 查找执行过的命令 ctrl +alt linux和Windows之间切换 文件目录类操作
功能描述:显示用户当前工作目录的绝对路径
语法:pwd
实操:
(1) 显示用户当前的工作目录的绝对路径 [root@Linux2 /]# cd home/ [root@Linux2 home]# pwd /home
功能描述:用来显示目录列表
语法:ls 【选项】 【目录】
选项 功能 -a 显示包含隐藏文件(文件以".“开头的所有文件) -A 显示除隐藏文件”.“和”…"以外的所有文件列表 -l 长数据串列出,包含文件的属性与权限等等数据;(常用) -C 多列显示输出结果,默认 -R 递归显示目录下的所有文件列表和子目录列表 -s 以块(1块=1024字节)为单位显示文件的大小 实操:
(1)查看当前目录的所有内容信息 [root@Linux2 ~]# ls -al 总用量 276 drwxr-xr-x. 2 root root 4096 2月 3 15:46 公共的 drwxr-xr-x. 2 root root 4096 2月 3 15:46 模板 drwxr-xr-x. 2 root root 4096 2月 3 15:46 视频 …
每行列出的信息依次是: 文件类型、权限、链接数、文件属主、文件属组、文件大小用byte来表示、建立或最近修改的时间、文件名字
功能描述:将当前工作目录切换到指定目录
语法:cd [参数]
参数 功能 cd绝对路径 切换路径 cd相对路径 切换路径 cd ~或者cd 回到自己的家目录 cd - 回到上一次所在目录 cd … 回到当前目录的上一级目录 cd -P 跳转到实际物理路径,而非快捷方式路径 实操:
(1)使用绝对路径切换到root目录 [root@hadoop101 ~]# cd /root/ (2)使用相对路径切换到“公共的”目录 [root@hadoop101 ~]# cd 桌面 (3)表示回到自己的家目录,亦即是 /root 这个目录 [root@hadoop101 桌面]# cd ~ (4)cd- 回到上一次所在目录 [root@hadoop101 ~]# cd - (5)表示回到当前目录的上一级目录,亦即是 “/root/公共的”的上一级目录的意思; [root@hadoop101 桌面]# cd … (6)跳转到home的物理路径 [root@hadoop101 ~]# ln -s /home home [root@hadoop101 ~]# cd -P home/ [root@hadoop101 home]# pwd /home
功能描述:创建新目录
语法:mkdir 【选项】【目录】
选项 功能 -p 创建多层目录 -v 显示创建目录的详细过程 实操:
(1)在home目录下创建class23,并显示创建过程 [root@Linux2 home]# mkdir -v class23 mkdir: 已创建目录 “class23”
(2)在home目录下创建school文件夹,并在该问价夹下创建class23子文件夹,并显示创建过程 [root@Linux2 home]# mkdir -p /school/class23 mkdir: 已创建目录 “/school” mkdir: 已创建目录 “/school/class23”
(3)在home目录下的school文件夹下创建连续目录class1~5 [root@Linux2 home]# mkdir /school/class{1…5}
(4)在home目录下的school文件夹下创建非连续多目录class6、class9、class11 [root@Linux2 home]# mkdir -vp /school/class{6,8,10}
功能描述:删除空目录
语法:rmdir 【选项】【目录】
选项 功能 -p 用递归的方式删除指定的目录路径中的空目录 -v 显示删除目录的详细过程 –help 显示指令的信息信息 实操:
(1)删除一个空的文件夹 [root@Linux2 ~]# mkdir -p test/test1 [root@Linux2 ~]# rmdir -pv test/test1 rmdir: 正在删除目录 “test/test1” rmdir: 正在删除目录 “test”
功能描述:创建空文件
语法:touch 【文件名称】
实操:
(1)在test/test1下创建一个空文件meinv.txt [root@Linux2 ~]# mkdir -p test/test1 [root@Linux2 ~]# touch test/test1/meinv.txt
(2)在test/test1下创建批量创建空文件meinv1.txt、meinv2.txt、meinv3.txt、meinv4.txt [root@Linux2 ~]# touch test/test1/meinv{1,2,3,4}.txt
功能描述:批量为文件修改名称
语法:rename 【原字符串】 【目标字符串】 【文件】
实操
(1)修改test/test1下的meinv1.txt、meinv2.txt、meinv3.txt、meinv4.txt名称为xingnan1.txt,xingnan2.txt,…
[root@Linux2 ~]# rename meinv xingnan test/test1/meinv* [root@Linux2 ~]# ls test/test1/ xingnan1.txt xingnan2.txt …
经验技巧:如果文件名有一-定的规律则可 以用rename指令批量改变文件名。rename指令的本质是采用替换的方式将文件名中的指定字符串替换为目标字符串,在进行替换时需要使用shell通配符以匹配文件名。
功能描述:cp指令用来将-一个或者 多个源文件或者目录复制到指定的目标文件或者目录
语法: cp 【选项】 【源文件】【目标文件】
选项 功能 1 -a 保持源文件的原有结构和属性,与选项“-dpR"的功能相同 -R或则-r 以递归的操作方式,将指定目录及其子目录,中的所有文件复制到指定的目标目录 -v 详细显示指令执行的操作 实操
(1)复制文件 [root@hadoop101 ~]# cp -v xiyou/dssz/suwukong.txt xiyou/mingjie/ (2)递归复制整个文件夹 [root@hadoop101 ~]# cp -vr xiyou/dssz/ ./
经验技巧:cp指令可以一次复制多个源文件,但是要求最后一个参数必须为目录。
功能介绍: rm指令用于删除给定的文件和目录。
语法: rm 【选项】【文件或者目录】(功能描述:删除目录中所有内容)
选项 功能 -r 递归删除目录中所有内容 -f 强制执行删除操作,而不提示用于进行确认。 -i 以交互式的方式,提示用户进行确认是否删除文件。“n”不删除 “y”删除 -v 显示指令的详细执行过程 实操
(1)删除目录中的内容,并显示删除过程 [root@hadoop101 ~]# rm -v xiyou/mingjie/sunwukong.txt (2)强制递归删除目录中所有内容,并显示删除过程 [root@hadoop101 ~]# rm -rfv dssz/
经验技巧:默认情况下, rm指令只能删除普通文件,删除目录时必须使用“r”或者"-R"选项递归删除目录;使用 rm指令的“-f” 选项时,不给出提示信息而直接执行删除操作,必须小心;
功能介绍: mv 移动文件与目录或重命名
语法:
mv oldNameFile newNameFile (功能描述:重命名) mv /temp/movefile /targetFolder (功能描述:移动文件) 实操
(1)重命名 [root@hadoop101 ~]# mv xiyou/dssz/suwukong.txt xiyou/dssz/houge.txt (2)移动文件 [root@hadoop101 ~]# mv xiyou/dssz/houge.txt ./
经验技巧:如果在同一 目录下利用mv指令移动文件,可以实现文件改名操作。为防 止误操作而覆盖已经存在的文件,在使用mv指令时,最好加上“-i”选项
功能介绍: 查看文件内容,从第一行开始显示
语法:cat [选项] 要查看的文件
选项 功能描述 -b 在非空行前面显示行号 -n 显示所有行的行号,包括空行。 -s 压缩空行,多个空行连续出现时仅显示一个空行 实操
(1)查看文件内容并显示行号 [jinghang@hadoop101 ~]$ cat -n houge.txt
功能介绍:more 文件内容分屏查看器,more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明。
语法:more 要查看的文件
操作 功能说明 空白键 (space) 代表向下翻一页; Enter 代表向下翻『一行』; q 代表立刻离开 more ,不再显示该文件内容。 Ctrl+F 向下滚动一屏 Ctrl+B 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 实操
(1)采用more查看文件 [root@hadoop101 ~]# more /etc/profile
功能介绍:less 分屏显示文件内容
它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。 语法:less 要查看的文件
操作 功能说明 空白键 向下翻动一页; /字串 向下搜寻『字串』的功能;n:向下查找;N:向上查找; ?字串 向上搜寻『字串』的功能;n:向上查找;N:向下查找; q 离开 less 这个程序; 实操
(1)采用more查看文件 [root@hadoop101 ~]# less /etc/profile
功能介绍:echo指令用于在shell中打印shell变量的值,或者直接输出指定的字符串。
语法:echo [选项] [输出内容]
选项 功能 -e 支持反斜线控制的字符转换 控制字符 作用 \ 输出\本身 \n 换行符 \t 制表符,也就是Tab键 实操
[root@hadoop101 ~]$ echo “hello\tworld” hello\tworld [root@hadoop101 ~]$ echo -e “hello\tworld” hello world
功能介绍:head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
语法
选项 功能 -n <行数> 指定显示头部内容的行数 -v 总是显示文件名的头信息
head 文件 head -n 5 文件 (查看文件头5行内容,5可以是任意行数) 实操
(1)查看文件的头2行,并显示文件名信息 [root@hadoop101 ~]# head -nv 2 /etc/profile
功能介绍:tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
语法
选项 功能 -n<行数> 输出文件尾部n行内容 -f 显示文件最新追加的内容,监视文件变化
(1)tail 文件 (功能描述:查看文件后10行内容) (2)tail -n 5 文件 (功能描述:查看文件后5行内容,5可以是任意行数) (3)tail -f 文件 (功能描述:实时追踪该文档的所有更新) 实操
(1)查看文件头1行内容 [root@hadoop101 ~]# tail -n 1 smartd.conf (2)实时追踪该档的所有更新 [root@hadoop101 ~]# tail -f houge.txt
功能介绍:> 覆盖 和 >> 追加
语法
(1)ll >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写)) (2)ll >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾) (3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2) (4)echo “内容” >> 文件 实操
(1)将ls查看信息写入到文件中 [root@hadoop101 ~]# ls -l>houge.txt (2)将ls查看信息追加到文件中 [root@hadoop101 ~]# ls -l>>houge.txt (3)采用echo将hello单词追加到文件中 [root@hadoop101 ~]# echo hello>>houge.txt
功能介绍:(硬)软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
语法:ln -s [原文件或目录] [软链接名]
选项 功能 -i 创建链接时,如果目标文件已经存在,则提示用户确认覆盖 -s 创建符号链接。如果系统不支持符号链接,则导致命令出错 -v 详细信息模式,输出指令的详细执行过程 实操
(1)创建软连接 [root@hadoop101 ~]# mv houge.txt xiyou/dssz/ [root@hadoop101 ~]# ln -s xiyou/dssz/houge.txt ./houzi [root@hadoop101 ~]# ll lrwxrwxrwx. 1 root root 20 6月 17 12:56 houzi -> xiyou/dssz/houge.txt (2)删除软连接 [root@hadoop101 ~]# rm -rf houzi (3)进入软连接实际物理路径 [root@hadoop101 ~]# ln -s xiyou/dssz/ ./dssz [root@hadoop101 ~]# cd -P dssz/
经验技巧
ln 默认创建链接为硬链接,不能对目录建立链接。要为目录建立链接必须使用“-s”选项,指明创建的链接类型为符号链接。 只能为普通文件创建硬链接, 不能为目录创建硬链接。而符号链接(软连接)则没有任何限制, 删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/ 查询:通过ll就可以查看,列表属性第1位是l,尾部会有位置指向。
功能介绍:history指令用于显示指定数目的指令命令
语法:history n (n:表示显示指定数目的命令)
实操
(1)查看已经执行过的历史命令 [root@hadoop101 test1]# history (1)查看已经执行过的10条历史命令 [root@hadoop101 test1]# history 10
搜索查找类操作
功能介绍:find 查找文件或者目录 find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
语法:find [搜索范围] [选项]
选项 功能 -name <查询方式> 按照指定的文件名查找模式查找文件 -user<用户名> 查找属于指定用户名所有文件 -size<文件大小> 按照指定的文件大小查找文件。 -empty 查找文件大小为0的目录或文件 -type<文件类型> 按照指定的文件类型查找文件,支持的文件类型如下: b块设备文件(block device) 、c字符设备文件( characterdevice)、d目录(directory)、p命名管道(FIFO) 、f普通文件、1符号链接文件(symbolic links) 、s网络套接字文件( socket) 实操
((1)按文件名:根据名称查找/目录下的filename.txt文件。 [root@hadoop101 ~]# find xiyou/ -name “*.txt” (2)按拥有者:查找/opt目录下,用户名称为-user的文件 [root@hadoop101 ~]# find xiyou/ -user jinghang (3)按文件大小:在/home目录下查找大于2M的文件(+n 大于 -n小于 n等于) [root@hadoop101 ~]find /home -size +2048k (4)寻找test目录下的空文件或文件夹 [root@hadoop101 ~]# find test -empty (5)寻找test目录下的文件 [root@hadoop101 ~]# find test -type f
功能介绍:grep 过滤查找,在文件中搜索匹配的行 (管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理)
语法:grep 【选项】 【匹配模式】 【源文件】
选项 功能 -n 显示匹配行及行号。 -i 忽略大小写的不同 -v 搜索不含指定字符串的行 实操
(1)查找某test文件在第几行 [root@hadoop101 ~]# ls | grep -n test
(2)查找除了test文件,并显示行号 [root@hadoop101 ~]# ls | grep -vn test
功能介绍:which指令用于查找并显示给定指令的绝对路径
语法:which 【指令名】
实操
(1)查找并显示 ll 指令 which ll (2)查找并显示mv指令 which mv
功能介绍:whereis显示指令 及相关文件的路径
语法:whereis 【选项】【参数】
选项 功能 -b 仅查找二进制程序或命令 实操
(1)显示rm指令的程序路径和man手册页路径 [root@Linux2 ~]# whereis rm
(2)显示rm指令的程序路径 [root@Linux2 ~]# whereis -b rm
用户管理类操作
功能介绍:useradd 添加新用户
语法: useradd 【选项】【用户名】
选项 功能 -g 指定用户的主要组。默认情况下组名与用户名同名 -d 设置用户的宿主目录,默认的宿主目录为“/home/”目录下与用户名同名的目录。 -u 指定用户的ID 号 实操
(1)添加一个用户 [root@hadoop101 ~]# useradd zhangsan [root@hadoop101 ~]#ll /home/
功能介绍:passwd 设置用户密码
语法:passwd 【用户名】
实操
(1)设置用户的密码 [root@hadoop101 ~]# passwd zhangsan
功能介绍:id 查看用户是否存在
语法:id 【用户名】
实操
(1)查看用户是否存在 [root@hadoop101 ~]# id zhangsan
查看创建的用户
语法:cat /etc/passwd
功能介绍:su 切换用户
语法:su 【用户名】
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量) su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限) 实操
(1)切换用户 [root@hadoop101 ~]#su tangseng [root@hadoop101 ~]#echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@hadoop101 ~]#exit [root@hadoop101 ~]#su - tangseng [root@hadoop101 ~]#echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tangseng/bin
功能介绍:who 查看登录用户信息
语法
(1)whoami (功能描述:显示自身用户名称) (2)who am i (功能描述:显示登录用户的用户名) 实操
(1)显示自身用户名称 [root@hadoop101 opt]# whoami (2)显示登录用户的用户名 [root@hadoop101 opt]# who am i
功能介绍:userdel删除用户及相关文件
语法:userdel 【选项】【用户名】
选项 功能 -r 删除用户的同时,删除与用户相关的所有文件。 -f 强制删除用户,即使用户当前已登录 实操
(1)删除用户但保存用户主目录 [root@hadoop101 ~]#userdel zhangsan [root@hadoop101 ~]#ll /home/ (2)删除用户和用户主目录,都删除 [root@hadoop101 ~]#useradd lisi [root@hadoop101 ~]#ll /home/ [root@hadoop101 ~]#userdel -r lisi [root@hadoop101 ~]#ll /home/
功能介绍:usermod指令用于修改用户的基本信息。
语法:usermod 【选项】 【用户名】
选项 功能 -g 修改用户的初始登录组,给定的组必须存在 -c 修改用户 的注释信息 -d 修改用户的宿主目录 实操
(1)将用户加入到用户组 [root@hadoop101 ~]#usermod -g root lisi
(2)修改用户李四的注释信息 [root@hadoop101 ~]# usermod -c “hello word” lisi
功能介绍:sudo 设置普通用户具有root权限
语法:sudo 【指令】
为用户添加root操作权限
1.添加jinghang用户,并对其设置密码。 [root@hadoop101 ~]#useradd jinghang [root@hadoop101 ~]#passwd jinghang 2.修改配置文件 [root@hadoop101 ~]#vi /etc/sudoers 修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
Allow root to run any commands anywhere
root ALL=(ALL) ALL jinghang ALL=(ALL) ALL 或者配置成采用sudo命令时,不需要输入密码
Allow root to run any commands anywhere
root ALL=(ALL) ALL jinghang ALL=(ALL) NOPASSWD:ALL 修改完毕,现在可以用jinghang帐号登录,然后用命令 sudo ,即可获得root权限进行操作。
实操
(1)用普通用户在/opt目录下创建一个文件夹 [jinghang@hadoop101 opt]$ sudo mkdir module [root@hadoop101 opt]# chown jinghang:jinghang module/
用户组管理操作
功能介绍:groupadd创建新工作组
语法
groupadd 【组名】 groupadd -g 【组id】【组名】 实操
(1)添加一个class23组 [root@hadoop101 opt]#groupadd class23
(2)添加一个class24组 ,并设置组id [root@hadoop101 opt]#groupadd -g 400 class24
功能介绍:groupdel删除工作组
语法:groupdel 【组名】
实操
(1)删除class23组 [root@hadoop101 opt]# groupdel class23
经验技巧: groupdel 指令无法删除用户的主要组(Primary Group), 即无法删除创建用户时自动为用户所创建的组(如果此用户还存在)。
功能介绍:groupmod修改工作组信息
语法:groupmod 【选项】【组名】
选项 功能描述 -n<新组名> 指定工作组的新组名 -g <新组ID> 指定 工作组的新组ID 实操
(1)修改class24组名称为jinghang1 [root@hadoop101 ~]# groupmod -n jinghang1 class24
(2)修改jinghang1组id为450 [root@hadoop101 ~]# groupmod -g 450 jinghang1
经验技巧:新的组名和组ID必须唯一, 否则将报错。
查看创建的组
文件权限类操作
文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。
从左到右的10个字符表示
(1)0首位表示类型 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等 代表文件 d 代表目录 l 链接文档(link file); (2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。—User (3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—Group (4)第7-9位确定其他用户拥有该文件的权限 —Other [ r ]代表可读(read): 可以读取,查看 [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件. [ x ]代表可执行(execute):可以被系统执行
功能介绍:chmod 改变权限
语法
chmod [{ugoa}{±=}{rwx}] 文件或目录 chmod [mode=421 ] [文件或目录] 实操
(1)修改文件使其所属主用户具有执行权限 [root@hadoop101 ~]# cp xiyou/dssz/houge.txt ./ [root@hadoop101 ~]# chmod u+x houge.txt (2)修改文件使其所属组用户具有执行权限 [root@hadoop101 ~]# chmod g+x houge.txt (3)修改文件所属主用户执行权限,并使其他用户具有执行权限 [root@hadoop101 ~]# chmod u-x,o+x houge.txt (4)采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。 [root@hadoop101 ~]# chmod 777 houge.txt (5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。 [root@hadoop101 ~]# chmod -R 777 xiyou/
经验技巧: u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和) r=4 w=2 x=1 rwx=4+2+1=7
功能介绍:chown 改变文件或目录所有者
语法:chown [选项] [最终用户] [文件或目录]
选项 功能 -R 递归操作 -v 显示指令详细的执行过程 实操
(1)修改文件所有者 [root@hadoop101 ~]# chown jinghang houge.txt [root@hadoop101 ~]# ls -al -rwxrwxrwx. 1 jinghang root 551 5月 23 13:02 houge.txt (2)递归改变文件所有者和所有组 [root@hadoop101 xiyou]# ll drwxrwxrwx. 2 root root 4096 9月 3 21:20 xiyou [root@hadoop101 xiyou]# chown -R jinghang:jinghang xiyou/ [root@hadoop101 xiyou]# ll drwxrwxrwx. 2 jinghang jinghang 4096 9月 3 21:20 xiyou
功能介绍:chgrp 改变所属组
语法:chgrp [最终用户组] [文件或目录]
实操
(1)修改文件的所属组 [root@hadoop101 ~]# chgrp root houge.txt [root@hadoop101 ~]# ls -al -rwxrwxrwx. 1 jinghang root 551 5月 23 13:02 houge.txt
时间日期类操作
语法
(1)date (功能描述:显示当前时间) (2)date +%Y (功能描述:显示当前年份) (3)date +%m (功能描述:显示当前月份) (4)date +%d (功能描述:显示当前是哪一天) (5)date “+%Y-%m-%d %H:%M:%S” (功能描述:显示年月日时分秒) 案例实操
(1)显示当前时间信息 [root@hadoop101 ~]# date 2017年 06月 19日 星期一 20:53:30 CST (2)显示当前时间年月日 [root@hadoop101 ~]# date +%Y%m%d 20170619 (3)显示当前时间年月日时分秒 [root@hadoop101 ~]# date “+%Y-%m-%d %H:%M:%S” 2017-06-19 20:54:58
语法
(1)date -d ‘1 days ago’ (功能描述:显示前一天时间) (2)date -d ‘-1 days ago’ (功能描述:显示明天时间) 案例实操
(1)显示前一天 [root@hadoop101 ~]# date -d ‘1 days ago’ 2017年 06月 18日 星期日 21:07:22 CST (2)显示明天时间 [root@hadoop101 ~]#date -d ‘-1 days ago’ 2017年 06月 20日 星期日 21:07:22 CST
语法:date -s 字符串时间
案例实操
(1)设置系统当前时间 [root@hadoop101 ~]# date -s “2019-06-19 20:52:18”
语法:cal [选项]
不加选项,显示本月日历 具体某一年 显示这一年的日历 案例实操
(1)查看当前月的日历 [root@hadoop101 ~]# cal (2)查看2017年的日历 [root@hadoop101 ~]# cal 2019
压缩和解压类操作
功能介绍: gzip/gunzip 压缩与解压缩
语法
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip 文件.gz (功能描述:解压缩文件命令) 实操
(1)gzip压缩 [root@hadoop101 ~]# ls test.java [root@hadoop101 ~]# gzip houge.txt [root@hadoop101 ~]# ls houge.txt.gz (2)gunzip解压缩文件 [root@hadoop101 ~]# gunzip houge.txt.gz [root@hadoop101 ~]# ls houge.txt
经验技巧 (1)只能压缩文件不能压缩目录 (2)不保留原来的文件
功能介绍: zip/unzip 压缩与解压缩
语法
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
选项 功能 -r 递归处理,将指定目录下的所有文件和子目录一并处理 unzip [选项] XXX.zip (功能描述:解压缩文件)
选项 功能 -d<目录> 指定解压后文件的存放目录 实操
(1)压缩 1.txt 和2.txt,压缩后的名称为mypackage.zip [root@hadoop101 opt]# touch bailongma.txt [root@hadoop101 ~]# zip houma.zip houge.txt bailongma.txt adding: houge.txt (stored 0%) adding: bailongma.txt (stored 0%) [root@hadoop101 opt]# ls houge.txt bailongma.txt houma.zip (2)解压 mypackage.zip [root@hadoop101 ~]# unzip houma.zip Archive: houma.zip extracting: houge.txt extracting: bailongma.txt [root@hadoop101 ~]# ls houge.txt bailongma.txt houma.zip (3)解压mypackage.zip到指定目录-d [root@hadoop101 ~]# unzip houma.zip -d /opt [root@hadoop101 ~]# ls /opt/
经验技巧 zip 压缩命令在window/linux都通用,可以压缩目录且保留源文件。
功能介绍: tar 打包备份
语法:tar [选项] XXX.tar.gz 将要打包进去的内容 (打包目录,压缩后的文件格式.tar.gz)
选项 功能 -z 打包同时压缩 -c 产生.tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -x 解包.tar文件 实操
(1)压缩多个文件 [root@hadoop101 opt]# tar -zcvf houma.tar.gz houge.txt bailongma.txt houge.txt bailongma.txt [root@hadoop101 opt]# ls houma.tar.gz houge.txt bailongma.txt (2)压缩目录 [root@hadoop101 ~]# tar -zcvf xiyou.tar.gz xiyou/ xiyou/ xiyou/mingjie/ xiyou/dssz/ xiyou/dssz/houge.txt (3)解压到当前目录 [root@hadoop101 ~]# tar -zxvf houma.tar.gz (4)解压到指定目录 [root@hadoop101 ~]# tar -zxvf xiyou.tar.gz -C /opt [root@hadoop101 ~]# ll /opt/
经验技巧 tar指令的3个主选项“c”,“x”只能使用一个,不能同时使用没否则将导致命令报错
进程管理类操作
功能介绍: 查看当前系统进程状态
语法
ps -aux | grep xxx (功能描述:查看系统中所有进程)
选项 功能
-a 选择所有进程
-u 显示所有用户的所有进程
-x 显示后台进程得运行参数
显示信息说明
USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源; %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源; VSZ:该进程占用虚拟内存的大小,单位KB; RSS:该进程占用实际物理内存的大小,单位KB; TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。 STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台 START:该进程的启动时间 TIME:该进程占用CPU的运算时间,注意不是系统时间 COMMAND:产生此进程的命令名
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
显示信息说明
UID:用户ID PID:进程ID PPID:父进程ID C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU时间 CMD:启动进程所用的命令和参数
实操
(1)查看进程的CPU占用率和内存占用率 [root@hadoop101 datas]# ps -aux (2)查看进程的父进程ID [root@hadoop101 datas]# ps -ef
经验技巧 如果想查看进程的CPU占用率和内存占用率,可以使用aux; 如果想查看进程的父进程ID可以使用ef;
功能介绍: kill 终止进程
语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
选项 功能 -9 表示强迫进程立即停止 killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
案例实操
(1)杀死浏览器进程 [root@hadoop101 桌面]# kill -9 5102 (2)通过进程名称杀死进程 [root@hadoop101 桌面]# killall firefox
功能介绍: pstree 查看进程树
语法:pstree [选项]
选项 功能 -p 显示进程的PID -u 显示进程的所属用户 案例实操
(1)显示进程pid [root@hadoop101 datas]# pstree -p (2)显示进程所属用户 [root@hadoop101 datas]# pstree -u
性能监控命令
功能介绍: top指令实时报告系统整体性能情况
系统响应变慢,首先得定位大致的问题出在哪里,是IO瓶颈、CPU瓶颈、内存瓶颈还是程序导致的系统问题; 使用top工具能够比较全面的查看我们关注的点 语法:top 【选项】
选项 功能 -d 秒数 指定top命令每隔几秒更新。默认是3秒 -i 使top不显示任何闲置或者僵死进程。 -p 通过指定监控进程ID来仅仅监控某个进程的状态。 案例实操
[root@hadoop101 jinghang]# top -d 10 [root@hadoop101 jinghang]# top -i [root@hadoop101 jinghang]# top -p 2575 执行上述命令后,可以按P、M、N对查询出的进程结果进行排序。
操作 功能 P 以CPU使用率排序,默认就是此项 M 以内存的使用率排序 N 以PID排序 q 退出top k 根据进程得id,杀死进程 参考:https://linuxtools-rst.readthedocs.io/zh_CN/latest/advance/03_optimization.html
功能介绍: 显示内存的使用情况
语法:free 【选项】
选项 功能 -b 以字节为单位显示内存使用情况 -k 以千字节为单位显示内存使用情况。默认 -m 以兆字节为单位显示内存使用情况 -t 显示汇总结果 -s<间隔秒数> 以指定间隔的秒数,显示内存使用情况 案例实操
(1)显示内存使用情况,以兆为单位输出信息 [root@hadoop101 home]# free -m
功能介绍: netstat 显示网络统计网络系统得状态信息和端口占用情况
语法
netstat -anp | grep 进程号 (功能描述:查看该进程网络信息) netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况) 案例实操
(1)通过进程号查看该进程的网络信息 [root@hadoop101 hadoop-2.7.2]# netstat -anp | grep 火狐浏览器进程号
(2)查看某端口号是否被占用 [root@hadoop101 桌面]# netstat -nlp | grep 端口号
磁盘分区类操作
功能介绍: df 查看磁盘空间使用情况(列出文件系统的整体磁盘使用量,显示磁盘分区上可用的磁盘空间)
语法:df 【选项】
选项 功能 -h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; 案例实操
(1)查看磁盘使用情况 [root@hadoop101 ~]# df -h 显示结果: Filesystem Size Used Avail Use% Mounted on /dev/sda2 15G 4.1G 9.9G 29% / tmpfs 931M 228K 931M 1% /dev/shm /dev/sda1 190M 39M 141M 22% /boot /dev/sr0 3.8G 3.8G 0 100% /media/CentOS_6.10_Fina
功能介绍: du 显示每个文件和目录的磁盘使用空间占用情况
语法:du 【选项】【目录】
选项 功能 -s 指定目录占用大小汇总 -h 带计量单位 -a 含文件 –max-depth=1 子目录深度 -c 列出明细的同时,增加汇总值 案例实操
(1)查询 /opt 目录的磁盘占用情况,深度为1 [root@jinghang01 ~]# du -ach --max-depth=1 /opt
显示结果: 4.0K /opt/rh 4.0K /opt/software 12K /opt 12K 总用量
功能介绍:查看磁盘使用情况和磁盘分区
语法:fdisk【选项】【参数】
fdisk -l
mount/umount
概述:对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它就是一个根目录、一个独立唯一的文件结构。 Linux中每个分区都是用来组成整个文件系统的一部分,Linux采用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
语法:
mount [-t vfstype] [-o options] device dir (功能描述:挂载设备) umount 设备文件名或挂载点 (功能描述:卸载设备) 卸载挂载案例.docx
工作常用指令
1)统计/root文件夹下的文件的个数
ls -l /root | grep “^-” | wc -l 2)统计/root文件夹下的目录的个数
ls -l /root | grep “^d” | wc -l 3)统计/root文件夹下文件的个数,包括子文件夹里的
ls -lR /root | grep “^-” | wc -l 4)统计文件夹下目录的个数,包括子文件夹里的
ls -lR /root | grep “^d” | wc -l 5)以树状显示目录结构
yum install tree tree 软件包管理类操作
概述:RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe,是Linux这系列操作系统里面的打包安装工具
RPM包格式
例如:Apache-1.3.23-11.i386.rpm -“apache” 软件名称 -“1.3.23-11”软件的版本号,主版本和此版本 -“i386”是软件所运行的硬件平台,Intel 32位微处理器的统称 -“rpm”文件扩展名,代表RPM包
语法
rpm -qa (功能描述:查询所安装的所有rpm软件包) rpm -qi 安装包 (功能描述:查询安装的软件包的详细信息) 案例实操
(1)查询firefox软件安装情况 [root@hadoop101 Packages]# rpm -qa |grep firefox (2)查询安装的软件包的详细信息 [root@hadoop101 Packages]# rpm -qi firefox-45.0.1-1.el6.centos.x86_64
经验技巧: 由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包
语法:rpm -e 【软件包】【–nodeps】
选项 功能 -e 卸载软件包 –nodeps 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 实操案例
(1)卸载firefox软件 [root@hadoop101 Packages]# rpm -e firefox
语法:rpm -ivh 【软件包】【–nodeps】
选项 功能 -i -i=install,安装 -v -v=verbose,显示详细信息 -h -h=hash,进度条 –nodeps 不检测依赖进度 案例实操
(1)安装firefox软件 [root@hadoop101 Packages]# pwd /media/CentOS_6.8_Final/Packages [root@hadoop101 Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
概述:YUM(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
原理图解
语法:yum 【选项】 【参数】
选项
选项 功能 -y 对所有提问都回答“yes” 参数
选项 功能 install 安装rpm软件包 update 更新rpm软件包 check-update 检查是否有可用的更新rpm软件包 remove 删除指定的rpm软件包 list 显示软件包信息 clean 清理yum过期的缓存 deplist 显示yum软件包的所有依赖关系 案例实操
(1)采用yum方式安装firefox [root@hadoop101 ~]#yum -y install firefox.x86_64
国内YUM源配置.docx
定时任务操作crondtab
启动服务:service crond restart | start
功能介绍:crontab指令周期性执行的任务
语法:crontab [选项]
选项 功能 -e 编辑crontab定时任务 -l 显示待执行任务列表 -r 删除当前用户所有的crontab任务 -i 删除用户的计划任务前要求用户进行确认 crontab相关参数说明 .docx
案例实操
(1)每隔1分钟,向/root/bailongma.txt文件中添加一个11的数字 */1 * * * * /bin/echo ”11” >> /root/bailongma.txt
常见错误及解决方案.docx
功能描述:显示用户当前工作目录的绝对路径
语法:pwd
实操:
(1) 显示用户当前的工作目录的绝对路径 [root@Linux2 /]# cd home/ [root@Linux2 home]# pwd /home
功能描述:用来显示目录列表
语法:ls 【选项】 【目录】
选项 功能 -a 显示包含隐藏文件(文件以".“开头的所有文件) -A 显示除隐藏文件”.“和”…"以外的所有文件列表 -l 长数据串列出,包含文件的属性与权限等等数据;(常用) -C 多列显示输出结果,默认 -R 递归显示目录下的所有文件列表和子目录列表 -s 以块(1块=1024字节)为单位显示文件的大小 实操:
(1)查看当前目录的所有内容信息 [root@Linux2 ~]# ls -al 总用量 276 drwxr-xr-x. 2 root root 4096 2月 3 15:46 公共的 drwxr-xr-x. 2 root root 4096 2月 3 15:46 模板 drwxr-xr-x. 2 root root 4096 2月 3 15:46 视频 …
每行列出的信息依次是: 文件类型、权限、链接数、文件属主、文件属组、文件大小用byte来表示、建立或最近修改的时间、文件名字
功能描述:将当前工作目录切换到指定目录
语法:cd [参数]
参数 功能 cd绝对路径 切换路径 cd相对路径 切换路径 cd ~或者cd 回到自己的家目录 cd - 回到上一次所在目录 cd … 回到当前目录的上一级目录 cd -P 跳转到实际物理路径,而非快捷方式路径 实操:
(1)使用绝对路径切换到root目录 [root@hadoop101 ~]# cd /root/ (2)使用相对路径切换到“公共的”目录 [root@hadoop101 ~]# cd 桌面 (3)表示回到自己的家目录,亦即是 /root 这个目录 [root@hadoop101 桌面]# cd ~ (4)cd- 回到上一次所在目录 [root@hadoop101 ~]# cd - (5)表示回到当前目录的上一级目录,亦即是 “/root/公共的”的上一级目录的意思; [root@hadoop101 桌面]# cd … (6)跳转到home的物理路径 [root@hadoop101 ~]# ln -s /home home [root@hadoop101 ~]# cd -P home/ [root@hadoop101 home]# pwd /home
功能描述:创建新目录
语法:mkdir 【选项】【目录】
选项 功能 -p 创建多层目录 -v 显示创建目录的详细过程 实操:
(1)在home目录下创建class23,并显示创建过程 [root@Linux2 home]# mkdir -v class23 mkdir: 已创建目录 “class23”
(2)在home目录下创建school文件夹,并在该问价夹下创建class23子文件夹,并显示创建过程 [root@Linux2 home]# mkdir -p /school/class23 mkdir: 已创建目录 “/school” mkdir: 已创建目录 “/school/class23”
(3)在home目录下的school文件夹下创建连续目录class1~5 [root@Linux2 home]# mkdir /school/class{1…5}
(4)在home目录下的school文件夹下创建非连续多目录class6、class9、class11 [root@Linux2 home]# mkdir -vp /school/class{6,8,10}
功能描述:删除空目录
语法:rmdir 【选项】【目录】
选项 功能 -p 用递归的方式删除指定的目录路径中的空目录 -v 显示删除目录的详细过程 –help 显示指令的信息信息 实操:
(1)删除一个空的文件夹 [root@Linux2 ~]# mkdir -p test/test1 [root@Linux2 ~]# rmdir -pv test/test1 rmdir: 正在删除目录 “test/test1” rmdir: 正在删除目录 “test”
功能描述:创建空文件
语法:touch 【文件名称】
实操:
(1)在test/test1下创建一个空文件meinv.txt [root@Linux2 ~]# mkdir -p test/test1 [root@Linux2 ~]# touch test/test1/meinv.txt
(2)在test/test1下创建批量创建空文件meinv1.txt、meinv2.txt、meinv3.txt、meinv4.txt [root@Linux2 ~]# touch test/test1/meinv{1,2,3,4}.txt
功能描述:批量为文件修改名称
语法:rename 【原字符串】 【目标字符串】 【文件】
实操
(1)修改test/test1下的meinv1.txt、meinv2.txt、meinv3.txt、meinv4.txt名称为xingnan1.txt,xingnan2.txt,…
[root@Linux2 ~]# rename meinv xingnan test/test1/meinv* [root@Linux2 ~]# ls test/test1/ xingnan1.txt xingnan2.txt …
经验技巧:如果文件名有一-定的规律则可 以用rename指令批量改变文件名。rename指令的本质是采用替换的方式将文件名中的指定字符串替换为目标字符串,在进行替换时需要使用shell通配符以匹配文件名。
功能描述:cp指令用来将-一个或者 多个源文件或者目录复制到指定的目标文件或者目录
语法: cp 【选项】 【源文件】【目标文件】
选项 功能 1 -a 保持源文件的原有结构和属性,与选项“-dpR"的功能相同 -R或则-r 以递归的操作方式,将指定目录及其子目录,中的所有文件复制到指定的目标目录 -v 详细显示指令执行的操作 实操
(1)复制文件 [root@hadoop101 ~]# cp -v xiyou/dssz/suwukong.txt xiyou/mingjie/ (2)递归复制整个文件夹 [root@hadoop101 ~]# cp -vr xiyou/dssz/ ./
经验技巧:cp指令可以一次复制多个源文件,但是要求最后一个参数必须为目录。
功能介绍: rm指令用于删除给定的文件和目录。
语法: rm 【选项】【文件或者目录】(功能描述:删除目录中所有内容)
选项 功能 -r 递归删除目录中所有内容 -f 强制执行删除操作,而不提示用于进行确认。 -i 以交互式的方式,提示用户进行确认是否删除文件。“n”不删除 “y”删除 -v 显示指令的详细执行过程 实操
(1)删除目录中的内容,并显示删除过程 [root@hadoop101 ~]# rm -v xiyou/mingjie/sunwukong.txt (2)强制递归删除目录中所有内容,并显示删除过程 [root@hadoop101 ~]# rm -rfv dssz/
经验技巧:默认情况下, rm指令只能删除普通文件,删除目录时必须使用“r”或者"-R"选项递归删除目录;使用 rm指令的“-f” 选项时,不给出提示信息而直接执行删除操作,必须小心;
功能介绍: mv 移动文件与目录或重命名
语法:
mv oldNameFile newNameFile (功能描述:重命名) mv /temp/movefile /targetFolder (功能描述:移动文件) 实操
(1)重命名 [root@hadoop101 ~]# mv xiyou/dssz/suwukong.txt xiyou/dssz/houge.txt (2)移动文件 [root@hadoop101 ~]# mv xiyou/dssz/houge.txt ./
经验技巧:如果在同一 目录下利用mv指令移动文件,可以实现文件改名操作。为防 止误操作而覆盖已经存在的文件,在使用mv指令时,最好加上“-i”选项
功能介绍: 查看文件内容,从第一行开始显示
语法:cat [选项] 要查看的文件
选项 功能描述 -b 在非空行前面显示行号 -n 显示所有行的行号,包括空行。 -s 压缩空行,多个空行连续出现时仅显示一个空行 实操
(1)查看文件内容并显示行号 [jinghang@hadoop101 ~]$ cat -n houge.txt
功能介绍:more 文件内容分屏查看器,more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明。
语法:more 要查看的文件
操作 功能说明 空白键 (space) 代表向下翻一页; Enter 代表向下翻『一行』; q 代表立刻离开 more ,不再显示该文件内容。 Ctrl+F 向下滚动一屏 Ctrl+B 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 实操
(1)采用more查看文件 [root@hadoop101 ~]# more /etc/profile
功能介绍:less 分屏显示文件内容
它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。 语法:less 要查看的文件
操作 功能说明 空白键 向下翻动一页; /字串 向下搜寻『字串』的功能;n:向下查找;N:向上查找; ?字串 向上搜寻『字串』的功能;n:向上查找;N:向下查找; q 离开 less 这个程序; 实操
(1)采用more查看文件 [root@hadoop101 ~]# less /etc/profile
功能介绍:echo指令用于在shell中打印shell变量的值,或者直接输出指定的字符串。
语法:echo [选项] [输出内容]
选项 功能 -e 支持反斜线控制的字符转换 控制字符 作用 \ 输出\本身 \n 换行符 \t 制表符,也就是Tab键 实操
[root@hadoop101 ~]$ echo “hello\tworld” hello\tworld [root@hadoop101 ~]$ echo -e “hello\tworld” hello world
功能介绍:head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
语法
选项 功能 -n <行数> 指定显示头部内容的行数 -v 总是显示文件名的头信息
head 文件 head -n 5 文件 (查看文件头5行内容,5可以是任意行数) 实操
(1)查看文件的头2行,并显示文件名信息 [root@hadoop101 ~]# head -nv 2 /etc/profile
功能介绍:tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
语法
选项 功能 -n<行数> 输出文件尾部n行内容 -f 显示文件最新追加的内容,监视文件变化
(1)tail 文件 (功能描述:查看文件后10行内容) (2)tail -n 5 文件 (功能描述:查看文件后5行内容,5可以是任意行数) (3)tail -f 文件 (功能描述:实时追踪该文档的所有更新) 实操
(1)查看文件头1行内容 [root@hadoop101 ~]# tail -n 1 smartd.conf (2)实时追踪该档的所有更新 [root@hadoop101 ~]# tail -f houge.txt
功能介绍:> 覆盖 和 >> 追加
语法
(1)ll >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写)) (2)ll >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾) (3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2) (4)echo “内容” >> 文件 实操
(1)将ls查看信息写入到文件中 [root@hadoop101 ~]# ls -l>houge.txt (2)将ls查看信息追加到文件中 [root@hadoop101 ~]# ls -l>>houge.txt (3)采用echo将hello单词追加到文件中 [root@hadoop101 ~]# echo hello>>houge.txt
功能介绍:(硬)软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
语法:ln -s [原文件或目录] [软链接名]
选项 功能 -i 创建链接时,如果目标文件已经存在,则提示用户确认覆盖 -s 创建符号链接。如果系统不支持符号链接,则导致命令出错 -v 详细信息模式,输出指令的详细执行过程 实操
(1)创建软连接 [root@hadoop101 ~]# mv houge.txt xiyou/dssz/ [root@hadoop101 ~]# ln -s xiyou/dssz/houge.txt ./houzi [root@hadoop101 ~]# ll lrwxrwxrwx. 1 root root 20 6月 17 12:56 houzi -> xiyou/dssz/houge.txt (2)删除软连接 [root@hadoop101 ~]# rm -rf houzi (3)进入软连接实际物理路径 [root@hadoop101 ~]# ln -s xiyou/dssz/ ./dssz [root@hadoop101 ~]# cd -P dssz/
经验技巧
ln 默认创建链接为硬链接,不能对目录建立链接。要为目录建立链接必须使用“-s”选项,指明创建的链接类型为符号链接。 只能为普通文件创建硬链接, 不能为目录创建硬链接。而符号链接(软连接)则没有任何限制, 删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/ 查询:通过ll就可以查看,列表属性第1位是l,尾部会有位置指向。 history
功能介绍:history指令用于显示指定数目的指令命令
语法:history n (n:表示显示指定数目的命令)
实操
(1)查看已经执行过的历史命令 [root@hadoop101 test1]# history (1)查看已经执行过的10条历史命令 [root@hadoop101 test1]# history 10
搜索查找类操作
功能介绍:find 查找文件或者目录 find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
语法:find [搜索范围] [选项]
选项 功能 -name <查询方式> 按照指定的文件名查找模式查找文件 -user<用户名> 查找属于指定用户名所有文件 -size<文件大小> 按照指定的文件大小查找文件。 -empty 查找文件大小为0的目录或文件 -type<文件类型> 按照指定的文件类型查找文件,支持的文件类型如下: b块设备文件(block device) 、c字符设备文件( characterdevice)、d目录(directory)、p命名管道(FIFO) 、f普通文件、1符号链接文件(symbolic links) 、s网络套接字文件( socket) 实操
((1)按文件名:根据名称查找/目录下的filename.txt文件。 [root@hadoop101 ~]# find xiyou/ -name “*.txt” (2)按拥有者:查找/opt目录下,用户名称为-user的文件 [root@hadoop101 ~]# find xiyou/ -user jinghang (3)按文件大小:在/home目录下查找大于2M的文件(+n 大于 -n小于 n等于) [root@hadoop101 ~]find /home -size +2048k (4)寻找test目录下的空文件或文件夹 [root@hadoop101 ~]# find test -empty (5)寻找test目录下的文件 [root@hadoop101 ~]# find test -type f
功能介绍:grep 过滤查找,在文件中搜索匹配的行 (管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理)
语法:grep 【选项】 【匹配模式】 【源文件】
选项 功能 -n 显示匹配行及行号。 -i 忽略大小写的不同 -v 搜索不含指定字符串的行 实操
(1)查找某test文件在第几行 [root@hadoop101 ~]# ls | grep -n test
(2)查找除了test文件,并显示行号 [root@hadoop101 ~]# ls | grep -vn test
功能介绍:which指令用于查找并显示给定指令的绝对路径
语法:which 【指令名】
实操
(1)查找并显示 ll 指令 which ll (2)查找并显示mv指令 which mv
功能介绍:whereis显示指令 及相关文件的路径
语法:whereis 【选项】【参数】
选项 功能 -b 仅查找二进制程序或命令 实操
(1)显示rm指令的程序路径和man手册页路径 [root@Linux2 ~]# whereis rm
(2)显示rm指令的程序路径 [root@Linux2 ~]# whereis -b rm
用户管理类操作
功能介绍:useradd 添加新用户
语法: useradd 【选项】【用户名】
选项 功能 -g 指定用户的主要组。默认情况下组名与用户名同名 -d 设置用户的宿主目录,默认的宿主目录为“/home/”目录下与用户名同名的目录。 -u 指定用户的ID 号 实操
(1)添加一个用户 [root@hadoop101 ~]# useradd zhangsan [root@hadoop101 ~]#ll /home/
功能介绍:passwd 设置用户密码
语法:passwd 【用户名】
实操
(1)设置用户的密码 [root@hadoop101 ~]# passwd zhangsan
功能介绍:id 查看用户是否存在
语法:id 【用户名】
实操
(1)查看用户是否存在 [root@hadoop101 ~]# id zhangsan
查看创建的用户
语法:cat /etc/passwd
功能介绍:su 切换用户
语法:su 【用户名】
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量) su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限) 实操
(1)切换用户 [root@hadoop101 ~]#su tangseng [root@hadoop101 ~]#echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@hadoop101 ~]#exit [root@hadoop101 ~]#su - tangseng [root@hadoop101 ~]#echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tangseng/bin
功能介绍:who 查看登录用户信息
语法
(1)whoami (功能描述:显示自身用户名称) (2)who am i (功能描述:显示登录用户的用户名) 实操
(1)显示自身用户名称 [root@hadoop101 opt]# whoami (2)显示登录用户的用户名 [root@hadoop101 opt]# who am i
功能介绍:userdel删除用户及相关文件
语法:userdel 【选项】【用户名】
选项 功能 -r 删除用户的同时,删除与用户相关的所有文件。 -f 强制删除用户,即使用户当前已登录 实操
(1)删除用户但保存用户主目录 [root@hadoop101 ~]#userdel zhangsan [root@hadoop101 ~]#ll /home/ (2)删除用户和用户主目录,都删除 [root@hadoop101 ~]#useradd lisi [root@hadoop101 ~]#ll /home/ [root@hadoop101 ~]#userdel -r lisi [root@hadoop101 ~]#ll /home/
功能介绍:usermod指令用于修改用户的基本信息。
语法:usermod 【选项】 【用户名】
选项 功能 -g 修改用户的初始登录组,给定的组必须存在 -c 修改用户 的注释信息 -d 修改用户的宿主目录 实操
(1)将用户加入到用户组 [root@hadoop101 ~]#usermod -g root lisi
(2)修改用户李四的注释信息 [root@hadoop101 ~]# usermod -c “hello word” lisi
功能介绍:sudo 设置普通用户具有root权限
语法:sudo 【指令】
为用户添加root操作权限
1.添加jinghang用户,并对其设置密码。 [root@hadoop101 ~]#useradd jinghang [root@hadoop101 ~]#passwd jinghang 2.修改配置文件 [root@hadoop101 ~]#vi /etc/sudoers 修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
Allow root to run any commands anywhere
root ALL=(ALL) ALL jinghang ALL=(ALL) ALL 或者配置成采用sudo命令时,不需要输入密码
Allow root to run any commands anywhere
root ALL=(ALL) ALL jinghang ALL=(ALL) NOPASSWD:ALL 修改完毕,现在可以用jinghang帐号登录,然后用命令 sudo ,即可获得root权限进行操作。
实操
(1)用普通用户在/opt目录下创建一个文件夹 [jinghang@hadoop101 opt]$ sudo mkdir module [root@hadoop101 opt]# chown jinghang:jinghang module/
用户组管理操作
功能介绍:groupadd创建新工作组
语法
groupadd 【组名】 groupadd -g 【组id】【组名】 实操
(1)添加一个class23组 [root@hadoop101 opt]#groupadd class23
(2)添加一个class24组 ,并设置组id [root@hadoop101 opt]#groupadd -g 400 class24
功能介绍:groupdel删除工作组
语法:groupdel 【组名】
实操
(1)删除class23组 [root@hadoop101 opt]# groupdel class23
经验技巧: groupdel 指令无法删除用户的主要组(Primary Group), 即无法删除创建用户时自动为用户所创建的组(如果此用户还存在)。
功能介绍:groupmod修改工作组信息
语法:groupmod 【选项】【组名】
选项 功能描述 -n<新组名> 指定工作组的新组名 -g <新组ID> 指定 工作组的新组ID 实操
(1)修改class24组名称为jinghang1 [root@hadoop101 ~]# groupmod -n jinghang1 class24
(2)修改jinghang1组id为450 [root@hadoop101 ~]# groupmod -g 450 jinghang1
经验技巧:新的组名和组ID必须唯一, 否则将报错。
查看创建的组
文件权限类操作
文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。
从左到右的10个字符表示
(1)0首位表示类型 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等 代表文件 d 代表目录 l 链接文档(link file); (2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。—User (3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—Group (4)第7-9位确定其他用户拥有该文件的权限 —Other [ r ]代表可读(read): 可以读取,查看 [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件. [ x ]代表可执行(execute):可以被系统执行
功能介绍:chmod 改变权限
语法
chmod [{ugoa}{±=}{rwx}] 文件或目录 chmod [mode=421 ] [文件或目录] 实操
(1)修改文件使其所属主用户具有执行权限 [root@hadoop101 ~]# cp xiyou/dssz/houge.txt ./ [root@hadoop101 ~]# chmod u+x houge.txt (2)修改文件使其所属组用户具有执行权限 [root@hadoop101 ~]# chmod g+x houge.txt (3)修改文件所属主用户执行权限,并使其他用户具有执行权限 [root@hadoop101 ~]# chmod u-x,o+x houge.txt (4)采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。 [root@hadoop101 ~]# chmod 777 houge.txt (5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。 [root@hadoop101 ~]# chmod -R 777 xiyou/
经验技巧: u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和) r=4 w=2 x=1 rwx=4+2+1=7
功能介绍:chown 改变文件或目录所有者
语法:chown [选项] [最终用户] [文件或目录]
选项 功能 -R 递归操作 -v 显示指令详细的执行过程 实操
(1)修改文件所有者 [root@hadoop101 ~]# chown jinghang houge.txt [root@hadoop101 ~]# ls -al -rwxrwxrwx. 1 jinghang root 551 5月 23 13:02 houge.txt (2)递归改变文件所有者和所有组 [root@hadoop101 xiyou]# ll drwxrwxrwx. 2 root root 4096 9月 3 21:20 xiyou [root@hadoop101 xiyou]# chown -R jinghang:jinghang xiyou/ [root@hadoop101 xiyou]# ll drwxrwxrwx. 2 jinghang jinghang 4096 9月 3 21:20 xiyou
功能介绍:chgrp 改变所属组
语法:chgrp [最终用户组] [文件或目录]
实操
(1)修改文件的所属组 [root@hadoop101 ~]# chgrp root houge.txt [root@hadoop101 ~]# ls -al -rwxrwxrwx. 1 jinghang root 551 5月 23 13:02 houge.txt
时间日期类操作
date 显示当前时间
语法
(1)date (功能描述:显示当前时间) (2)date +%Y (功能描述:显示当前年份) (3)date +%m (功能描述:显示当前月份) (4)date +%d (功能描述:显示当前是哪一天) (5)date “+%Y-%m-%d %H:%M:%S” (功能描述:显示年月日时分秒) 案例实操
(1)显示当前时间信息 [root@hadoop101 ~]# date 2017年 06月 19日 星期一 20:53:30 CST (2)显示当前时间年月日 [root@hadoop101 ~]# date +%Y%m%d 20170619 (3)显示当前时间年月日时分秒 [root@hadoop101 ~]# date “+%Y-%m-%d %H:%M:%S” 2017-06-19 20:54:58
语法
(1)date -d ‘1 days ago’ (功能描述:显示前一天时间) (2)date -d ‘-1 days ago’ (功能描述:显示明天时间) 案例实操
(1)显示前一天 [root@hadoop101 ~]# date -d ‘1 days ago’ 2017年 06月 18日 星期日 21:07:22 CST (2)显示明天时间 [root@hadoop101 ~]#date -d ‘-1 days ago’ 2017年 06月 20日 星期日 21:07:22 CST
语法:date -s 字符串时间
案例实操
(1)设置系统当前时间 [root@hadoop101 ~]# date -s “2019-06-19 20:52:18”
语法:cal [选项]
不加选项,显示本月日历 具体某一年 显示这一年的日历 案例实操
(1)查看当前月的日历 [root@hadoop101 ~]# cal (2)查看2017年的日历 [root@hadoop101 ~]# cal 2019
压缩和解压类操作
功能介绍: gzip/gunzip 压缩与解压缩
语法
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip 文件.gz (功能描述:解压缩文件命令) 实操
(1)gzip压缩 [root@hadoop101 ~]# ls test.java [root@hadoop101 ~]# gzip houge.txt [root@hadoop101 ~]# ls houge.txt.gz (2)gunzip解压缩文件 [root@hadoop101 ~]# gunzip houge.txt.gz [root@hadoop101 ~]# ls houge.txt
经验技巧 (1)只能压缩文件不能压缩目录 (2)不保留原来的文件
功能介绍: zip/unzip 压缩与解压缩
语法
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
选项 功能 -r 递归处理,将指定目录下的所有文件和子目录一并处理 unzip [选项] XXX.zip (功能描述:解压缩文件)
选项 功能 -d<目录> 指定解压后文件的存放目录 实操
(1)压缩 1.txt 和2.txt,压缩后的名称为mypackage.zip [root@hadoop101 opt]# touch bailongma.txt [root@hadoop101 ~]# zip houma.zip houge.txt bailongma.txt adding: houge.txt (stored 0%) adding: bailongma.txt (stored 0%) [root@hadoop101 opt]# ls houge.txt bailongma.txt houma.zip (2)解压 mypackage.zip [root@hadoop101 ~]# unzip houma.zip Archive: houma.zip extracting: houge.txt extracting: bailongma.txt [root@hadoop101 ~]# ls houge.txt bailongma.txt houma.zip (3)解压mypackage.zip到指定目录-d [root@hadoop101 ~]# unzip houma.zip -d /opt [root@hadoop101 ~]# ls /opt/
经验技巧 zip 压缩命令在window/linux都通用,可以压缩目录且保留源文件。
功能介绍: tar 打包备份
语法:tar [选项] XXX.tar.gz 将要打包进去的内容 (打包目录,压缩后的文件格式.tar.gz)
选项 功能 -z 打包同时压缩 -c 产生.tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -x 解包.tar文件 实操
(1)压缩多个文件 [root@hadoop101 opt]# tar -zcvf houma.tar.gz houge.txt bailongma.txt houge.txt bailongma.txt [root@hadoop101 opt]# ls houma.tar.gz houge.txt bailongma.txt (2)压缩目录 [root@hadoop101 ~]# tar -zcvf xiyou.tar.gz xiyou/ xiyou/ xiyou/mingjie/ xiyou/dssz/ xiyou/dssz/houge.txt (3)解压到当前目录 [root@hadoop101 ~]# tar -zxvf houma.tar.gz (4)解压到指定目录 [root@hadoop101 ~]# tar -zxvf xiyou.tar.gz -C /opt [root@hadoop101 ~]# ll /opt/
经验技巧 tar指令的3个主选项“c”,“x”只能使用一个,不能同时使用没否则将导致命令报错
进程管理类操作
功能介绍: 查看当前系统进程状态
语法
ps -aux | grep xxx (功能描述:查看系统中所有进程)
选项 功能
-a 选择所有进程
-u 显示所有用户的所有进程
-x 显示后台进程得运行参数
显示信息说明
USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源; %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源; VSZ:该进程占用虚拟内存的大小,单位KB; RSS:该进程占用实际物理内存的大小,单位KB; TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。 STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台 START:该进程的启动时间 TIME:该进程占用CPU的运算时间,注意不是系统时间 COMMAND:产生此进程的命令名
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
显示信息说明
UID:用户ID PID:进程ID PPID:父进程ID C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU时间 CMD:启动进程所用的命令和参数
实操
(1)查看进程的CPU占用率和内存占用率 [root@hadoop101 datas]# ps -aux (2)查看进程的父进程ID [root@hadoop101 datas]# ps -ef
经验技巧 如果想查看进程的CPU占用率和内存占用率,可以使用aux; 如果想查看进程的父进程ID可以使用ef;
功能介绍: kill 终止进程
语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
选项 功能 -9 表示强迫进程立即停止 killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
案例实操
(1)杀死浏览器进程 [root@hadoop101 桌面]# kill -9 5102 (2)通过进程名称杀死进程 [root@hadoop101 桌面]# killall firefox
功能介绍: pstree 查看进程树
语法:pstree [选项]
选项 功能 -p 显示进程的PID -u 显示进程的所属用户 案例实操
(1)显示进程pid [root@hadoop101 datas]# pstree -p (2)显示进程所属用户 [root@hadoop101 datas]# pstree -u
性能监控命令
功能介绍: top指令实时报告系统整体性能情况
系统响应变慢,首先得定位大致的问题出在哪里,是IO瓶颈、CPU瓶颈、内存瓶颈还是程序导致的系统问题; 使用top工具能够比较全面的查看我们关注的点 语法:top 【选项】
选项 功能 -d 秒数 指定top命令每隔几秒更新。默认是3秒 -i 使top不显示任何闲置或者僵死进程。 -p 通过指定监控进程ID来仅仅监控某个进程的状态。 案例实操
[root@hadoop101 jinghang]# top -d 10 [root@hadoop101 jinghang]# top -i [root@hadoop101 jinghang]# top -p 2575 执行上述命令后,可以按P、M、N对查询出的进程结果进行排序。
操作 功能 P 以CPU使用率排序,默认就是此项 M 以内存的使用率排序 N 以PID排序 q 退出top k 根据进程得id,杀死进程 参考:https://linuxtools-rst.readthedocs.io/zh_CN/latest/advance/03_optimization.html
功能介绍: 显示内存的使用情况
语法:free 【选项】
选项 功能 -b 以字节为单位显示内存使用情况 -k 以千字节为单位显示内存使用情况。默认 -m 以兆字节为单位显示内存使用情况 -t 显示汇总结果 -s<间隔秒数> 以指定间隔的秒数,显示内存使用情况 案例实操
(1)显示内存使用情况,以兆为单位输出信息 [root@hadoop101 home]# free -m
功能介绍: netstat 显示网络统计网络系统得状态信息和端口占用情况
语法
netstat -anp | grep 进程号 (功能描述:查看该进程网络信息) netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况) 案例实操
(1)通过进程号查看该进程的网络信息 [root@hadoop101 hadoop-2.7.2]# netstat -anp | grep 火狐浏览器进程号
(2)查看某端口号是否被占用 [root@hadoop101 桌面]# netstat -nlp | grep 端口号
磁盘分区类操作
功能介绍: df 查看磁盘空间使用情况(列出文件系统的整体磁盘使用量,显示磁盘分区上可用的磁盘空间)
语法:df 【选项】
选项 功能 -h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; 案例实操
(1)查看磁盘使用情况 [root@hadoop101 ~]# df -h 显示结果: Filesystem Size Used Avail Use% Mounted on /dev/sda2 15G 4.1G 9.9G 29% / tmpfs 931M 228K 931M 1% /dev/shm /dev/sda1 190M 39M 141M 22% /boot /dev/sr0 3.8G 3.8G 0 100% /media/CentOS_6.10_Fina
功能介绍: du 显示每个文件和目录的磁盘使用空间占用情况
语法:du 【选项】【目录】
选项 功能 -s 指定目录占用大小汇总 -h 带计量单位 -a 含文件 –max-depth=1 子目录深度 -c 列出明细的同时,增加汇总值 案例实操
(1)查询 /opt 目录的磁盘占用情况,深度为1 [root@jinghang01 ~]# du -ach --max-depth=1 /opt
显示结果: 4.0K /opt/rh 4.0K /opt/software 12K /opt 12K 总用量
功能介绍:查看磁盘使用情况和磁盘分区
语法:fdisk【选项】【参数】
fdisk -l
mount/umount
概述:对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它就是一个根目录、一个独立唯一的文件结构。 Linux中每个分区都是用来组成整个文件系统的一部分,Linux采用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
语法:
mount [-t vfstype] [-o options] device dir (功能描述:挂载设备) umount 设备文件名或挂载点 (功能描述:卸载设备) 卸载挂载案例.docx
工作常用指令
1)统计/root文件夹下的文件的个数
ls -l /root | grep “^-” | wc -l 2)统计/root文件夹下的目录的个数
ls -l /root | grep “^d” | wc -l 3)统计/root文件夹下文件的个数,包括子文件夹里的
ls -lR /root | grep “^-” | wc -l 4)统计文件夹下目录的个数,包括子文件夹里的
ls -lR /root | grep “^d” | wc -l 5)以树状显示目录结构
yum install tree tree 软件包管理类操作
概述:RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe,是Linux这系列操作系统里面的打包安装工具
RPM包格式
例如:Apache-1.3.23-11.i386.rpm -“apache” 软件名称 -“1.3.23-11”软件的版本号,主版本和此版本 -“i386”是软件所运行的硬件平台,Intel 32位微处理器的统称 -“rpm”文件扩展名,代表RPM包 查询
语法
rpm -qa (功能描述:查询所安装的所有rpm软件包) rpm -qi 安装包 (功能描述:查询安装的软件包的详细信息) 案例实操
(1)查询firefox软件安装情况 [root@hadoop101 Packages]# rpm -qa |grep firefox (2)查询安装的软件包的详细信息 [root@hadoop101 Packages]# rpm -qi firefox-45.0.1-1.el6.centos.x86_64
经验技巧: 由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包
语法:rpm -e 【软件包】【–nodeps】
选项 功能 -e 卸载软件包 –nodeps 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 实操案例
(1)卸载firefox软件 [root@hadoop101 Packages]# rpm -e firefox
语法:rpm -ivh 【软件包】【–nodeps】
选项 功能 -i -i=install,安装 -v -v=verbose,显示详细信息 -h -h=hash,进度条 –nodeps 不检测依赖进度 案例实操
(1)安装firefox软件 [root@hadoop101 Packages]# pwd /media/CentOS_6.8_Final/Packages [root@hadoop101 Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
概述:YUM(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
原理图解
语法:yum 【选项】 【参数】
选项 功能 -y 对所有提问都回答“yes” 参数
选项 功能 install 安装rpm软件包 update 更新rpm软件包 check-update 检查是否有可用的更新rpm软件包 remove 删除指定的rpm软件包 list 显示软件包信息 clean 清理yum过期的缓存 deplist 显示yum软件包的所有依赖关系 案例实操
(1)采用yum方式安装firefox [root@hadoop101 ~]#yum -y install firefox.x86_64
国内YUM源配置.docx
定时任务操作crondtab
启动服务:service crond restart | start
功能介绍:crontab指令周期性执行的任务
语法:crontab [选项]
选项 功能 -e 编辑crontab定时任务 -l 显示待执行任务列表 -r 删除当前用户所有的crontab任务 -i 删除用户的计划任务前要求用户进行确认 crontab相关参数说明 .docx
案例实操
(1)每隔1分钟,向/root/bailongma.txt文件中添加一个11的数字 */1 * * * * /bin/echo ”11” >> /root/bailongma.txt
1.修改"/root/test"这个目录的权限,让root组的用户对该目录有可读、可写、可执行权限?,r,w,x表示什么含义,代表哪些数字? chmod g+rwx /root/test r:可读 4 w:可写 2 x:可执行 1
453 text.txt r--r-x-wx2.将/home/lisi123目录的所属用户和所属组都改为root 使用root用户完成 chown chgrp chown root /home/lisi123 修改目录的所有者 chgrp root /home/lisi123 修改目录所属组
chown root:root /home/lisi123 修改目录的所有者和目录所属组3.修改Linux系统时间为2020-12-11 12:01:00 date -s “2020-12-11 12:01:00”
4.将/home/lisi目录下的log.txt、mail.txt、test目录打包为alldata.tar.gz,存放在home目录下
cd /home/lisi tar -zcvf alldata.tar.gz log.txt mail.txt test mv alldata.tar.gz /home5.将/home/jinghang/test1.tar.gz 文件解压到/home/test目录下 tar -zxvf /home/jinghang/test1.tar.gz -C /home/test
6.使用ps查看并过滤所有root用户启动的进程信息 ps -aux | grep “^root”
7.杀死进程号为2987的进程 kill -9 2987
top k 29878.查看进程cup和内存情况的命令是?查看父子进程关系的命令是? ps -aux | grep xxx top
ps -ef10.如何回到上一次所在目录,如何到当前目录得上一级目录 cd - cd …
11.在home目录下创建多级目录,/home/test1/test2/test3,并显示创建过程 mkdir -pv /home/test1/test2/test3
12.在/home目录下的test文件夹中有许多文件名包含aaa,现需要将aaa替换为bbb rename aaa bbb /home/test/aaa
13.在/home/test1/test2/test3/test4/bbb.txt 为bbb.txt创建一个软连接/home/aaa.txt?目录能否创建硬连接?文件呢? 如何进入到软连接对于得物理路径? ln -s /home/test1/test2/test3/test4/bbb.txt /home/aaa.txt
目录能否创建硬连接 不能 文件可以创建硬链接 如何进入到软连接对于得物理路径:前提是软连接指向的是一个目录地址,cd -P 软连接14.强制删除/home目录下的class开头的所有文件和目录 rm -rf /home/class*
15.查找出/root目录中所有以root开头的文件和目录 find -name “root*”
16.查找出/etc目录中大于2M小于3M的文件 find /etc -size +2048k -size -3072k find /etc -size +2048k -size -3072k | xargs ls -lh
17.使用grep命令过滤出/root目录下的文件 ,使用find命令过滤出/root目录下的文件 ll -R /root | grep “^-” find /root -type f
18.创建一个新用户lisi,并设置其家目录为/home/lisi123,并为该用户添加注释为“大数据开发组员工” useradd -d /home/lisi123 -c “大数据开发组员工” zhaoliu
19.删除ljh这个用户以及和该用户相关的所有文件 userdel -rf ljh
20.修改zhangsan这个用户所在的组为root组 usermod -g root zhangsan
21.解释说明改文件的相关属性例如 drwxr-xr-x. 2 root root 4096 10月 21 12:02 root123
22.如果现有一个命令top,不知道该命令得作用,如何查看该命令得使用说明?(或者说遇到不太熟得命令怎么查看其用法) man top linux 相关的命令网站搜索结果
23.Linux中定时任务命令分别是?选项有哪些说明选项作用?定时任务中各5个*号分别表示什么含义? service crond status
crontab -e (默认编辑的当前所在用户的定时任务) -l (查看定时任务列表) -ri (以交互的方式删除用户的定时任务) * * * * * 命令 分 0~59 时 0~23 天 1~31 月 1~12 星期 0~7 (0\7代表星期日) * , * 1,14 * * * - * 1-14 * * * */n */5 1-14 * * *24.完成下面定时任务得编写? 1、每月的1号、15号、30号,上午6点30分执行命令将/opt/software中的文件拷贝到/opt/module中 30 6 1,15,30 * * cp /opt/software/* /opt/module/
2、每天凌晨0点0分时,清理/tmp下所有的文件 0 0 * * * rm -rf /tmp/*25.Linux下如何查看服务进程和杀死进程? ps -aux | grep 服务名称 kill -9 进程id killall 服务名称
26.Linux下查看服务程序占用的端口命令是什么? netstat -nlp | grep “:端口号”
27.在Linux系统上,哪些命令可以用来查看文件内容? head tail cat more less
28.如何查看某一文件的第300-500行的内容? aa.txt 1000 head -n 500 aa.txt | tail -n 200
29.如何查看Linux系统得内核版本? cat /proc/version
30.哪些命令可以查看进程cpu和内存得使用情况? ps -aux top
31.用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)? wc 文件名
32.什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么? Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接. 硬链接:可以理解为一个指针,指向文件索引节点,不会重新分配inode。 可以用:ln命令来建立; 硬链接只能应用于文件,而不能应用于目录,而且不能跨文件系统(即分区) 软连接:可以当作 Windows的快捷方式来对待,会重新分配inode,权限位中“l”表示是一个软链接文件, 可以用:ln -s 命令来建立; 软连接既可以应用于文件也可以应用于目录,而且可以跨文件系统。
du 和 df 的作用和区别? 从字面上理解,du指disk usage,df指disk free。 du通常针对的是目录或者文件得磁盘空间使用情况, df通常针对的是整个文件系统磁盘空间使用情况。链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.
// An highlighted block var foo = 'bar';一个简单的表格是这么创建的:
项目Value电脑$1600手机$12导管$1使用:---------:居中 使用:----------居左 使用----------:居右
第一列第二列第三列第一列文本居中第二列文本居右第三列文本居左SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPEASCIIHTMLSingle backticks'Isn't this fun?'‘Isn’t this fun?’Quotes"Isn't this fun?"“Isn’t this fun?”Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash一个具有注脚的文本。1
Markdown将文本转换为 HTML。
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
#mermaid-svg-kSSTovjlipGswLal .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-kSSTovjlipGswLal .label text{fill:#333}#mermaid-svg-kSSTovjlipGswLal .node rect,#mermaid-svg-kSSTovjlipGswLal .node circle,#mermaid-svg-kSSTovjlipGswLal .node ellipse,#mermaid-svg-kSSTovjlipGswLal .node polygon,#mermaid-svg-kSSTovjlipGswLal .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-kSSTovjlipGswLal .node .label{text-align:center;fill:#333}#mermaid-svg-kSSTovjlipGswLal .node.clickable{cursor:pointer}#mermaid-svg-kSSTovjlipGswLal .arrowheadPath{fill:#333}#mermaid-svg-kSSTovjlipGswLal .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-kSSTovjlipGswLal .flowchart-link{stroke:#333;fill:none}#mermaid-svg-kSSTovjlipGswLal .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-kSSTovjlipGswLal .edgeLabel rect{opacity:0.9}#mermaid-svg-kSSTovjlipGswLal .edgeLabel span{color:#333}#mermaid-svg-kSSTovjlipGswLal .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-kSSTovjlipGswLal .cluster text{fill:#333}#mermaid-svg-kSSTovjlipGswLal div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-kSSTovjlipGswLal .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-kSSTovjlipGswLal text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-kSSTovjlipGswLal .actor-line{stroke:grey}#mermaid-svg-kSSTovjlipGswLal .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-kSSTovjlipGswLal .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-kSSTovjlipGswLal #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-kSSTovjlipGswLal .sequenceNumber{fill:#fff}#mermaid-svg-kSSTovjlipGswLal #sequencenumber{fill:#333}#mermaid-svg-kSSTovjlipGswLal #crosshead path{fill:#333;stroke:#333}#mermaid-svg-kSSTovjlipGswLal .messageText{fill:#333;stroke:#333}#mermaid-svg-kSSTovjlipGswLal .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-kSSTovjlipGswLal .labelText,#mermaid-svg-kSSTovjlipGswLal .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-kSSTovjlipGswLal .loopText,#mermaid-svg-kSSTovjlipGswLal .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-kSSTovjlipGswLal .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-kSSTovjlipGswLal .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-kSSTovjlipGswLal .noteText,#mermaid-svg-kSSTovjlipGswLal .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-kSSTovjlipGswLal .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-kSSTovjlipGswLal .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-kSSTovjlipGswLal .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-kSSTovjlipGswLal .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal .section{stroke:none;opacity:0.2}#mermaid-svg-kSSTovjlipGswLal .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-kSSTovjlipGswLal .section2{fill:#fff400}#mermaid-svg-kSSTovjlipGswLal .section1,#mermaid-svg-kSSTovjlipGswLal .section3{fill:#fff;opacity:0.2}#mermaid-svg-kSSTovjlipGswLal .sectionTitle0{fill:#333}#mermaid-svg-kSSTovjlipGswLal .sectionTitle1{fill:#333}#mermaid-svg-kSSTovjlipGswLal .sectionTitle2{fill:#333}#mermaid-svg-kSSTovjlipGswLal .sectionTitle3{fill:#333}#mermaid-svg-kSSTovjlipGswLal .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-kSSTovjlipGswLal .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal .grid path{stroke-width:0}#mermaid-svg-kSSTovjlipGswLal .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-kSSTovjlipGswLal .task{stroke-width:2}#mermaid-svg-kSSTovjlipGswLal .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal .taskText:not([font-size]){font-size:11px}#mermaid-svg-kSSTovjlipGswLal .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-kSSTovjlipGswLal .task.clickable{cursor:pointer}#mermaid-svg-kSSTovjlipGswLal .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-kSSTovjlipGswLal .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-kSSTovjlipGswLal .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-kSSTovjlipGswLal .taskText0,#mermaid-svg-kSSTovjlipGswLal .taskText1,#mermaid-svg-kSSTovjlipGswLal .taskText2,#mermaid-svg-kSSTovjlipGswLal .taskText3{fill:#fff}#mermaid-svg-kSSTovjlipGswLal .task0,#mermaid-svg-kSSTovjlipGswLal .task1,#mermaid-svg-kSSTovjlipGswLal .task2,#mermaid-svg-kSSTovjlipGswLal .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-kSSTovjlipGswLal .taskTextOutside0,#mermaid-svg-kSSTovjlipGswLal .taskTextOutside2{fill:#000}#mermaid-svg-kSSTovjlipGswLal .taskTextOutside1,#mermaid-svg-kSSTovjlipGswLal .taskTextOutside3{fill:#000}#mermaid-svg-kSSTovjlipGswLal .active0,#mermaid-svg-kSSTovjlipGswLal .active1,#mermaid-svg-kSSTovjlipGswLal .active2,#mermaid-svg-kSSTovjlipGswLal .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-kSSTovjlipGswLal .activeText0,#mermaid-svg-kSSTovjlipGswLal .activeText1,#mermaid-svg-kSSTovjlipGswLal .activeText2,#mermaid-svg-kSSTovjlipGswLal .activeText3{fill:#000 !important}#mermaid-svg-kSSTovjlipGswLal .done0,#mermaid-svg-kSSTovjlipGswLal .done1,#mermaid-svg-kSSTovjlipGswLal .done2,#mermaid-svg-kSSTovjlipGswLal .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-kSSTovjlipGswLal .doneText0,#mermaid-svg-kSSTovjlipGswLal .doneText1,#mermaid-svg-kSSTovjlipGswLal .doneText2,#mermaid-svg-kSSTovjlipGswLal .doneText3{fill:#000 !important}#mermaid-svg-kSSTovjlipGswLal .crit0,#mermaid-svg-kSSTovjlipGswLal .crit1,#mermaid-svg-kSSTovjlipGswLal .crit2,#mermaid-svg-kSSTovjlipGswLal .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-kSSTovjlipGswLal .activeCrit0,#mermaid-svg-kSSTovjlipGswLal .activeCrit1,#mermaid-svg-kSSTovjlipGswLal .activeCrit2,#mermaid-svg-kSSTovjlipGswLal .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-kSSTovjlipGswLal .doneCrit0,#mermaid-svg-kSSTovjlipGswLal .doneCrit1,#mermaid-svg-kSSTovjlipGswLal .doneCrit2,#mermaid-svg-kSSTovjlipGswLal .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-kSSTovjlipGswLal .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-kSSTovjlipGswLal .milestoneText{font-style:italic}#mermaid-svg-kSSTovjlipGswLal .doneCritText0,#mermaid-svg-kSSTovjlipGswLal .doneCritText1,#mermaid-svg-kSSTovjlipGswLal .doneCritText2,#mermaid-svg-kSSTovjlipGswLal .doneCritText3{fill:#000 !important}#mermaid-svg-kSSTovjlipGswLal .activeCritText0,#mermaid-svg-kSSTovjlipGswLal .activeCritText1,#mermaid-svg-kSSTovjlipGswLal .activeCritText2,#mermaid-svg-kSSTovjlipGswLal .activeCritText3{fill:#000 !important}#mermaid-svg-kSSTovjlipGswLal .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-kSSTovjlipGswLal g.classGroup text .title{font-weight:bolder}#mermaid-svg-kSSTovjlipGswLal g.clickable{cursor:pointer}#mermaid-svg-kSSTovjlipGswLal g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-kSSTovjlipGswLal g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-kSSTovjlipGswLal .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-kSSTovjlipGswLal .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-kSSTovjlipGswLal .dashed-line{stroke-dasharray:3}#mermaid-svg-kSSTovjlipGswLal #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal .commit-id,#mermaid-svg-kSSTovjlipGswLal .commit-msg,#mermaid-svg-kSSTovjlipGswLal .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-kSSTovjlipGswLal g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-kSSTovjlipGswLal g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-kSSTovjlipGswLal g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-kSSTovjlipGswLal g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-kSSTovjlipGswLal .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-kSSTovjlipGswLal .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-kSSTovjlipGswLal .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-kSSTovjlipGswLal .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-kSSTovjlipGswLal .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-kSSTovjlipGswLal .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-kSSTovjlipGswLal .edgeLabel text{fill:#333}#mermaid-svg-kSSTovjlipGswLal .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-kSSTovjlipGswLal .node circle.state-start{fill:black;stroke:black}#mermaid-svg-kSSTovjlipGswLal .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-kSSTovjlipGswLal #statediagram-barbEnd{fill:#9370db}#mermaid-svg-kSSTovjlipGswLal .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-kSSTovjlipGswLal .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-kSSTovjlipGswLal .statediagram-state .divider{stroke:#9370db}#mermaid-svg-kSSTovjlipGswLal .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-kSSTovjlipGswLal .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-kSSTovjlipGswLal .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-kSSTovjlipGswLal .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-kSSTovjlipGswLal .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-kSSTovjlipGswLal .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-kSSTovjlipGswLal .note-edge{stroke-dasharray:5}#mermaid-svg-kSSTovjlipGswLal .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-kSSTovjlipGswLal .error-icon{fill:#522}#mermaid-svg-kSSTovjlipGswLal .error-text{fill:#522;stroke:#522}#mermaid-svg-kSSTovjlipGswLal .edge-thickness-normal{stroke-width:2px}#mermaid-svg-kSSTovjlipGswLal .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-kSSTovjlipGswLal .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-kSSTovjlipGswLal .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-kSSTovjlipGswLal .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-kSSTovjlipGswLal .marker{fill:#333}#mermaid-svg-kSSTovjlipGswLal .marker.cross{stroke:#333} :root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-kSSTovjlipGswLal { color: rgba(0, 0, 0, 0.75); font: ; } 张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五这将产生一个流程图。:
#mermaid-svg-XElrXY6mOSZrHyFm .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-XElrXY6mOSZrHyFm .label text{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .node rect,#mermaid-svg-XElrXY6mOSZrHyFm .node circle,#mermaid-svg-XElrXY6mOSZrHyFm .node ellipse,#mermaid-svg-XElrXY6mOSZrHyFm .node polygon,#mermaid-svg-XElrXY6mOSZrHyFm .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-XElrXY6mOSZrHyFm .node .label{text-align:center;fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .node.clickable{cursor:pointer}#mermaid-svg-XElrXY6mOSZrHyFm .arrowheadPath{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-XElrXY6mOSZrHyFm .flowchart-link{stroke:#333;fill:none}#mermaid-svg-XElrXY6mOSZrHyFm .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-XElrXY6mOSZrHyFm .edgeLabel rect{opacity:0.9}#mermaid-svg-XElrXY6mOSZrHyFm .edgeLabel span{color:#333}#mermaid-svg-XElrXY6mOSZrHyFm .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-XElrXY6mOSZrHyFm .cluster text{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-XElrXY6mOSZrHyFm .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-XElrXY6mOSZrHyFm text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-XElrXY6mOSZrHyFm .actor-line{stroke:grey}#mermaid-svg-XElrXY6mOSZrHyFm .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-XElrXY6mOSZrHyFm .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-XElrXY6mOSZrHyFm #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-XElrXY6mOSZrHyFm .sequenceNumber{fill:#fff}#mermaid-svg-XElrXY6mOSZrHyFm #sequencenumber{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm #crosshead path{fill:#333;stroke:#333}#mermaid-svg-XElrXY6mOSZrHyFm .messageText{fill:#333;stroke:#333}#mermaid-svg-XElrXY6mOSZrHyFm .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-XElrXY6mOSZrHyFm .labelText,#mermaid-svg-XElrXY6mOSZrHyFm .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-XElrXY6mOSZrHyFm .loopText,#mermaid-svg-XElrXY6mOSZrHyFm .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-XElrXY6mOSZrHyFm .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-XElrXY6mOSZrHyFm .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-XElrXY6mOSZrHyFm .noteText,#mermaid-svg-XElrXY6mOSZrHyFm .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-XElrXY6mOSZrHyFm .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-XElrXY6mOSZrHyFm .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-XElrXY6mOSZrHyFm .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-XElrXY6mOSZrHyFm .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm .section{stroke:none;opacity:0.2}#mermaid-svg-XElrXY6mOSZrHyFm .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-XElrXY6mOSZrHyFm .section2{fill:#fff400}#mermaid-svg-XElrXY6mOSZrHyFm .section1,#mermaid-svg-XElrXY6mOSZrHyFm .section3{fill:#fff;opacity:0.2}#mermaid-svg-XElrXY6mOSZrHyFm .sectionTitle0{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .sectionTitle1{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .sectionTitle2{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .sectionTitle3{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-XElrXY6mOSZrHyFm .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm .grid path{stroke-width:0}#mermaid-svg-XElrXY6mOSZrHyFm .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-XElrXY6mOSZrHyFm .task{stroke-width:2}#mermaid-svg-XElrXY6mOSZrHyFm .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm .taskText:not([font-size]){font-size:11px}#mermaid-svg-XElrXY6mOSZrHyFm .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-XElrXY6mOSZrHyFm .task.clickable{cursor:pointer}#mermaid-svg-XElrXY6mOSZrHyFm .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-XElrXY6mOSZrHyFm .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-XElrXY6mOSZrHyFm .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-XElrXY6mOSZrHyFm .taskText0,#mermaid-svg-XElrXY6mOSZrHyFm .taskText1,#mermaid-svg-XElrXY6mOSZrHyFm .taskText2,#mermaid-svg-XElrXY6mOSZrHyFm .taskText3{fill:#fff}#mermaid-svg-XElrXY6mOSZrHyFm .task0,#mermaid-svg-XElrXY6mOSZrHyFm .task1,#mermaid-svg-XElrXY6mOSZrHyFm .task2,#mermaid-svg-XElrXY6mOSZrHyFm .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-XElrXY6mOSZrHyFm .taskTextOutside0,#mermaid-svg-XElrXY6mOSZrHyFm .taskTextOutside2{fill:#000}#mermaid-svg-XElrXY6mOSZrHyFm .taskTextOutside1,#mermaid-svg-XElrXY6mOSZrHyFm .taskTextOutside3{fill:#000}#mermaid-svg-XElrXY6mOSZrHyFm .active0,#mermaid-svg-XElrXY6mOSZrHyFm .active1,#mermaid-svg-XElrXY6mOSZrHyFm .active2,#mermaid-svg-XElrXY6mOSZrHyFm .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-XElrXY6mOSZrHyFm .activeText0,#mermaid-svg-XElrXY6mOSZrHyFm .activeText1,#mermaid-svg-XElrXY6mOSZrHyFm .activeText2,#mermaid-svg-XElrXY6mOSZrHyFm .activeText3{fill:#000 !important}#mermaid-svg-XElrXY6mOSZrHyFm .done0,#mermaid-svg-XElrXY6mOSZrHyFm .done1,#mermaid-svg-XElrXY6mOSZrHyFm .done2,#mermaid-svg-XElrXY6mOSZrHyFm .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-XElrXY6mOSZrHyFm .doneText0,#mermaid-svg-XElrXY6mOSZrHyFm .doneText1,#mermaid-svg-XElrXY6mOSZrHyFm .doneText2,#mermaid-svg-XElrXY6mOSZrHyFm .doneText3{fill:#000 !important}#mermaid-svg-XElrXY6mOSZrHyFm .crit0,#mermaid-svg-XElrXY6mOSZrHyFm .crit1,#mermaid-svg-XElrXY6mOSZrHyFm .crit2,#mermaid-svg-XElrXY6mOSZrHyFm .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-XElrXY6mOSZrHyFm .activeCrit0,#mermaid-svg-XElrXY6mOSZrHyFm .activeCrit1,#mermaid-svg-XElrXY6mOSZrHyFm .activeCrit2,#mermaid-svg-XElrXY6mOSZrHyFm .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-XElrXY6mOSZrHyFm .doneCrit0,#mermaid-svg-XElrXY6mOSZrHyFm .doneCrit1,#mermaid-svg-XElrXY6mOSZrHyFm .doneCrit2,#mermaid-svg-XElrXY6mOSZrHyFm .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-XElrXY6mOSZrHyFm .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-XElrXY6mOSZrHyFm .milestoneText{font-style:italic}#mermaid-svg-XElrXY6mOSZrHyFm .doneCritText0,#mermaid-svg-XElrXY6mOSZrHyFm .doneCritText1,#mermaid-svg-XElrXY6mOSZrHyFm .doneCritText2,#mermaid-svg-XElrXY6mOSZrHyFm .doneCritText3{fill:#000 !important}#mermaid-svg-XElrXY6mOSZrHyFm .activeCritText0,#mermaid-svg-XElrXY6mOSZrHyFm .activeCritText1,#mermaid-svg-XElrXY6mOSZrHyFm .activeCritText2,#mermaid-svg-XElrXY6mOSZrHyFm .activeCritText3{fill:#000 !important}#mermaid-svg-XElrXY6mOSZrHyFm .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-XElrXY6mOSZrHyFm g.classGroup text .title{font-weight:bolder}#mermaid-svg-XElrXY6mOSZrHyFm g.clickable{cursor:pointer}#mermaid-svg-XElrXY6mOSZrHyFm g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-XElrXY6mOSZrHyFm g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-XElrXY6mOSZrHyFm .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-XElrXY6mOSZrHyFm .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-XElrXY6mOSZrHyFm .dashed-line{stroke-dasharray:3}#mermaid-svg-XElrXY6mOSZrHyFm #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm .commit-id,#mermaid-svg-XElrXY6mOSZrHyFm .commit-msg,#mermaid-svg-XElrXY6mOSZrHyFm .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-XElrXY6mOSZrHyFm g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-XElrXY6mOSZrHyFm g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-XElrXY6mOSZrHyFm g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-XElrXY6mOSZrHyFm .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-XElrXY6mOSZrHyFm .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-XElrXY6mOSZrHyFm .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-XElrXY6mOSZrHyFm .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-XElrXY6mOSZrHyFm .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-XElrXY6mOSZrHyFm .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-XElrXY6mOSZrHyFm .edgeLabel text{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XElrXY6mOSZrHyFm .node circle.state-start{fill:black;stroke:black}#mermaid-svg-XElrXY6mOSZrHyFm .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-XElrXY6mOSZrHyFm #statediagram-barbEnd{fill:#9370db}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-state .divider{stroke:#9370db}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-XElrXY6mOSZrHyFm .note-edge{stroke-dasharray:5}#mermaid-svg-XElrXY6mOSZrHyFm .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-XElrXY6mOSZrHyFm .error-icon{fill:#522}#mermaid-svg-XElrXY6mOSZrHyFm .error-text{fill:#522;stroke:#522}#mermaid-svg-XElrXY6mOSZrHyFm .edge-thickness-normal{stroke-width:2px}#mermaid-svg-XElrXY6mOSZrHyFm .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-XElrXY6mOSZrHyFm .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-XElrXY6mOSZrHyFm .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-XElrXY6mOSZrHyFm .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-XElrXY6mOSZrHyFm .marker{fill:#333}#mermaid-svg-XElrXY6mOSZrHyFm .marker.cross{stroke:#333} :root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-XElrXY6mOSZrHyFm { color: rgba(0, 0, 0, 0.75); font: ; } 链接 长方形 圆 圆角长方形 菱形 关于 Mermaid 语法,参考 这儿,我们依旧会支持flowchart的流程图:
Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no 关于 Flowchart流程图 语法,参考 这儿.如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入, 继续你的创作。
注脚的解释 ↩︎