2021-10-13

linux教案+笔记+案例(一)

提示:Linux 是一套免费使用和自由传播的类 UNIX 操作系统,是一个基于 POSIX 移植操作系统接口(Portable Operating System Interface of UNIX,POSIX)和 UNIX 的多用户、多任务、
支持多线程和多 CPU 的操作系统。
目前被广泛使用于企业服务器、WEB 网站平台、大数据、虚拟化、Android、超级计算机等领域,未来 Linux 将应用各行各业,例如云计算、物联网、人工智能等。

第四章 linux必备命令



前言

提示:Linux 系统启动默认为字符界面,一般不会启动图形界面,所以对命令行的熟练程度能更加方便、高效的管理 Linux 系统。
本章向读者介绍 Linux 系统必备命令各项参数及功能场景,Linux 常见命令包括:cd、ls、pwd、mkdir、rm、cp、mv、touch、cat、head、tail、chmod、vim 等。


一、cd 命令详解

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

cd 命令主要用于目录切换,例如:
cd /home 切换至/home 目录,
cd /root 表示切换至/root目录 ;
cd …/ 切换至上一级目录;
cd ./ 切换至当前目录。

其中.和…可以理解为相对路径,例如 cd ./test 表示以当前目录为参考,表示相对于当前,而 cd /home/test 表示完整的路径,理解为绝对路径),如图 4-1 所示
在这里插入图片描述

二、 ls 命令详解

ls 命令主要用于浏览目录下的文件或者文件夹,

语法

ls(选项)(参数)
-a, --all 不隐藏任何以. 开始的项目;
-A, --almost-all 列出除. 及.. 以外的任何项目;
--author 与-l 同时使用时列出每个文件的作者;
-b, --escape 以八进制溢出序列表示不可打印的字符;
--block-size=大小 块以指定大小的字节为单位;
-B, --ignore-backups 不列出任何以"~"字符结束的项目;
-d, --directory 当遇到目录时列出目录本身而非目录内的文件;
-D, --dired 产生适合 Emacs 的 dired 模式使用的结果;
-f 不进行排序,-aU 选项生效,-lst 选项失效;
-i, --inode 显示每个文件的 inode 号;
-I, --ignore=PATTERN 不显示任何符合指定 shell PATTERN 的项目;
-k 即--block-size=1K;
-l 使用较长格式列出信息;
-n, --numeric-uid-gid 类似 -l,但列出 UID 及 GID 号;
-N, --literal 输出未经处理的项目名称 (如不特别处理控制字符) ;
-r, --reverse 排序时保留顺序;
-R, --recursive 递归显示子目录;
-s, --size 以块数形式显示每个文件分配的尺寸;
-S 根据文件大小排序;
-t 根据修改时间排序;
-u 同-lt 一起使用:按照访问时间排序并显示;
同-l 一起使用:显示访问时间并按文件名排序;
其他:按照访问时间排序;
-U 不进行排序;按照目录顺序列出项目;
-v 在文本中进行数字(版本)的自然排序。

ls ./ 查看当前目录所有的文件和目录,
ls -a 查看所有的文件,包括隐藏文件,以.开头的文件,

常用组合
[1]查看文件详情:ls -l 或 ll
[2]增强对文件大小易读性,以人类可读的形式显示文件大小: ls -lh
[3]对文件或者目录进行从大到小的排序: ls -lhs
[4]查看当前目录下的所有文件或者目录,包括隐藏文件: ls -la
[5]只查看当前目录下的目录文件: ls -d .
[6]按照时间顺序查看,从上到倒下时间越来越近: ls -ltr
[7]查看文件在对应的inode信息:ls -li

详细命令学习点击该链接

三、 pwd 命令详解

pwd 命令主要用于显示或者查看当前所在的目录路径,如图 4-2 所示:

四、 mkdir 命令详解

mkdir 命令主要用于创建目录,用法 mkdir dirname,命令后接目录的名称,常用参数
详解如下:

用法:mkdir [选项]... 目录;若指定目录不存在则创建目录;
长选项必须使用的参数对于短选项时也是必需使用的;
-m, --mode=模式 设置权限模式(类似 chmod),而不是 rwxrwxrwx 减 umask;
-p, --parents 需要时创建目标目录的上层目录,但即使这些目录已存在也不
当作错误处理;
-v, --verbose 每次创建新目录都显示信息;
-Z, --context=CTX 将每个创建的目录的 SELinux 安全环境设置为 CTX;
--help 显示此帮助信息并退出
--version 显示版本信息并退出。

五、 rm 命令详解

rm 命令主要用于删除文件或者目录,用法 rm –rf test.txt (-r 表示递归,-f 表示强制),常用参数详解如下:

用法:rm [选项]... 文件...删除 (unlink) 文件。
-f, --force 强制删除。忽略不存在的文件,不提示确认;
-i 在删除前需要确认;
-I 在删除超过三个文件或者递归删除前要求确认。此选项比-i 提
示内容更少,但同样可以阻止大多数错误发生;
-r, -R, --recursive 递归删除目录及其内容;
-v, --verbose 详细显示进行的步骤;
--help 显示此帮助信息并退出;
--version 显示版本信息并退出;
默认时,rm 不会删除目录,使用--recursive(-r 或-R)选项可删除每个给定的目录,以及其
下所有的内容;
要删除第一个字符为"-"的文件 (例如"-foo"),请使用以下方法之一:
rm -- -foo
rm ./-foo
4.6 cp 命令

六、 cp 命令详解

cp 命令主要用于拷贝文件,用法,cp old.txt /tmp/new.txt ,常用来备份,如果拷贝目录需要加-r 参数,常用参数详解如下:

用法:cp [选项]... [-T] 源文件 目标文件
或:cp [选项]... 源文件... 目录
或:cp [选项]... -t 目录 源文件... 将源文件复制至目标文件,或将多个源文件复制至目标目录。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive 等于-dR --preserve=all;
--backup[=CONTROL 为每个已存在的目标文件创建备份;
-b 类似--backup 但不接受参数;
--copy-contents 在递归处理是复制特殊文件内容;
-d 等于--no-dereference --preserve=links;
-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选
项;
存在时则不需再选此项);
-i, --interactive 覆盖前询问(使前面的 -n 选项失效);
-H 跟随源文件中的命令行符号链接;
-l, --link 链接文件而不复制;
-L, --dereference 总是跟随符号链接;
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效);
-P, --no-dereference 不跟随源文件中的符号链接;
-p 等于--preserve=模式,所有权,时间戳;
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果;
可能保持附加属性:环境、链接、xattr 等;
-c same as --preserve=context;
--sno-preserve=属性列表 不保留指定的文件属性;
--parents 复制前在目标目录创建来源文件路径中的所有目录;
-R, -r, --recursive 递归复制目录及其子目录内的所有内容。

七、 mv 命令详解

mv 命令主要用于重命名或者移动文件或者目录,用法, mv old.txt new.txt,常用参数详
解如下:

用法:mv [选项]... [-T] 源文件 目标文件;
或:mv [选项]... 源文件... 目录;
或:mv [选项]... -t 目录 源文件;
用法:mv [选项]... [-T] 源文件 目标文件;
或:mv [选项]... 源文件... 目录;
或:mv [选项]... -t 目录 源文件;
将源文件重命名为目标文件,或将源文件移动至指定目录。长选项必须使用的参数对于短
选项时也是必需使用的。
--backup[=CONTROL] 为每个已存在的目标文件创建备份;
-b 类似--backup 但不接受参数;
-f, --force 覆盖前不询问;
-i, --interactive 覆盖前询问;
-n, --no-clobber 不覆盖已存在文件,如果您指定了-i、-f、-n 中
的多个,仅最后一个生效;
--strip-trailing-slashes 去掉每个源文件参数尾部的斜线;
-S, --suffix=SUFFIX 替换常用的备份文件后缀;
-t, --target-directory=DIRECTORY 将所有参数指定的源文件或目录;
移动至 指定目录;
-T, --no-target-directory 将目标文件视作普通文件处理;
-u, --update 只在源文件文件比目标文件新,或目标文件;
不存在时才进行移动;
-v, --verbose 详细显示进行的步骤;
--help 显示此帮助信息并退出;
--version 显示版本信息并退出。

八、 touch 命令详解

touch 命令主要用于创建普通文件,用法为 touch test.txt,如果文件存在,则表示修改
当前文件时间,常用参数详解如下:

用法:touch [选项]... 文件... 将每个文件的访问时间和修改时间改为当前时间;
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项;
如果文件名为"-"则特殊处理,更改与标准输出相关的文件的访问时间;
长选项必须使用的参数对于短选项时也是必需使用的;
-a 只更改访问时间;
-c, --no-create 不创建任何文件;
-d, --date=字符串 使用指定字符串表示时间而非当前时间;
-f (忽略);
-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地;
(当系统支持更改符号链接的所有者时,此选项才有用);
-m 只更改修改时间;
-r, --reference=文件 使用指定文件的时间属性而非当前时间;
-t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间而非当前时
间;
--time=WORD 使用 WORD 指定的时间:access、atime、use 都等于-a;
选项的效果,而 modify、mtime 等于-m 选项的效果;
--help 显示此帮助信息并退出;
--version 显示版本信息并退出。

九、 cat 命令详解

cat 命令主要用于查看文件内容,用法 cat test.txt 可以查看 test.txt 内容,常用参数详解
如下:

用法:cat [选项]... [文件]... 将[文件]或标准输入组合输出到标准输出。
-A, --show-all 等于-vET;
-b, --number-nonblank 对非空输出行编号;
-e 等于-vE;
-E, --show-ends 在每行结束处显示"$";
-n, --number 对输出的所有行编号;
-s, --squeeze-blank 不输出多行空行;
-t 与-vT 等价;
-T, --show-tabs 将跳格字符显示为^I;
-u (被忽略);
-v, --show-nonprinting 使用^ 和 M- 引用,除了 LFD 和 TAB 之外;
--help 显示此帮助信息并退出;
--version 显示版本信息并退出。

cat 还有一种用法,cat …EOF…EOF,表示追加内容至/tmp/test.txt 文件中,如下:

cat >>/tmp/test.txt<<EOF
My Name is JFEDU.NET
I am From Bei jing. EOF

cat test.txt |more 分页显示 text 内容,|符号是管道符,用于把|前的输出作为后面命令的输入。More 命令常用于分页查看某文件或者内容。

十、 head 命令详解

head 命令主要用于查看文件内容,通常查看文件前 10 行,head -10 /var/log/messages 可
以查看该文件前 10 行的内容,常用参数详解如下:

用法:head [选项]... [文件]... 将每个指定文件的头 10 行显示到标准输出。
如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。
如果不指定文件,或者文件为"-",则从标准输入读取数据,长选项必须使用的参数对于短
选项时也是必需使用的;
-q, --quiet, --silent 不显示包含给定文件名的文件头;
-v, --verbose 总是显示包含给定文件名的文件头;
--help 显示此帮助信息并退出;
--version 显示版本信息并退出;
-c, --bytes=[-]K 显示每个文件的前 K 字节内容,如果附加"-"参数,
则除了每个文件的最后 K 字节数据外显示剩余全部内容;
-n, --lines=[-]K 显示每个文件的前 K 行内容,如果附加"-"参数,则
除了每个文件的最后 K 行外显示剩余全部内容。

十一、 tail 命令详解

tail 命令主要用于查看文件内容,通常查看末尾 10 行,tail –fn 100 /var/log/messages 可
以实时查看该文件末尾 100 行的内容,常用参数详解如下:

用法:tail [选项]... [文件]... 显示每个指定文件的最后 10 行到标准输出。
若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。
如果不指定文件或文件为"-" ,则从标准输入读取数据。
长选项必须使用的参数对于短选项时也是必需使用的。
-n, --lines=K 输出的总行数,默认为 10 行;
-q, --quiet, --silent 不输出给出文件名的头;
--help 显示此帮助信息并退出;
--version 显示版本信息并退出;
-f, --follow[={name|descriptor}] 即时输出文件变化后追加的数据;
-f, --follow 等于--follow=descriptor
-F 即--follow=name –retry
-c, --bytes=K 输出最后 K 字节;另外,使用-c +K 从每个文件
的第 K 字节输出。

十二、 chmod 命令详解

chmod 命令主要用于修改文件或者目录的权限,例如 chmod o+w test.txt,赋予 test.txt
其他人 w 写权限,常用参数详解如下:

用法:chmod [选项]... 模式[,模式]... 文件... 或:chmod [选项]... 八进制模式 文件... 或:chmod [选项]... --reference=参考文件 文件,将每个文件的模式更改为指定值。
-c, --changes 类似 --verbose,但只在有更改时才显示结果
--no-preserve-root 不特殊对待根目录(默认);
--preserve-root 禁止对根目录进行递归操作;
-f, --silent, --quiet 去除大部份的错误信息;
-R, --recursive 以递归方式更改所有的文件及子目录;
--help 显示此帮助信息并退出;
--version 显示版本信息并退出;
-v, --verbose 为处理的所有文件显示诊断信息;
--reference=参考文件 使用指定参考文件的模式,而非自行指定权限模式。

十三、 chown 命令详解

chown 命令主要用于文件或者文件夹宿主及属组的修改,命令格式例如 chown –R
root.root /tmp/test.txt,表示修改 test.txt 文件的用户和组均为 root,常用参数详解如下:

用法:chown [选项]... [所有者][:[]] 文件... 或:chown [选项]... --reference=参考文件 文件... 更改每个文件的所有者和/或所属组。
当使用 --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。
-f, --silent, --quiet 去除大部份的错误信息
--reference=参考文件 使用参考文件的所属组,而非指定值;
-R, --recursive 递归处理所有的文件及子目录;
-v, --verbose 为处理的所有文件显示诊断信息;
-H 命令行参数是一个通到目录的符号链接,则遍历符号链接;
-L 历每一个遇到的通到目录的符号链接;
-P 历任何符号链接(默认);
--help 显示帮助信息并退出;
--version 显示版本信息并退出。

十四、 echo 命令详解

echo 命令主要用于打印字符或者回显,例如输入 echo ok,会显示 ok, echo ok >
test.txt 则会把 ok 字符覆盖 test.txt 内容。>表示覆盖,原内容被覆盖,>>表示追加,原内容
不变。
例如 echo ok >> test.txt,表示向 test.txt 文件追加 OK 字符,不覆盖原文件里的内容,常用参数详解如下:

使用-e 扩展参数选项时,与如下参数一起使用,有不同含义,例如:
\a 发出警告声
\b 删除前一个字符
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入 tab; \v 与\f 相同;
\\ 插入\字符;
\033[30m 黑色字 \033[0m
\033[31m 红色字 \033[0m
\033[32m 绿色字 \033[0m
\033[33m 黄色字 \033[0m
\033[34m 蓝色字 \033[0m
\033[35m 紫色字 \033[0m
\033[36m 天蓝字 \033[0m
\033[37m 白色字 \033[0m
\033[40;37m 黑底白字 \033[0m
\033[41;37m 红底白字 \033[0m
\033[42;37m 绿底白字 \033[0m
\033[43;37m 黄底白字 \033[0m
\033[44;37m 蓝底白字 \033[0m
\033[45;37m 紫底白字 \033[0m
\033[46;37m 天蓝底白字 \033[0m
\033[47;30m 白底黑字 \033[0m

echo 颜色打印扩展,auto_lamp_v2.sh 内容如下:

echo -e "\033[36mPlease Select Install Menu follow:\033[0m" 
echo -e "\033[32m1)Install Apache Server\033[1m" 
echo "2)Install MySQL Server" 
echo "3)Install PHP Server" 
echo "4)Configuration index.php and start LAMP server" 
echo -e "\033[31mUsage: { /bin/sh $0 1|2|3|4|help}\033[0m"

十五、 df 命令详解

df 命令常用于磁盘分区查询,常用命令 df –h,查看磁盘分区信息,常用参数详解如下:

用法:df [选项]... [文件]... 显示每个文件所在的文件系统的信息,默认是显示所有文件系统。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all 显示所有文件系统的使用情况,包括虚拟文件系统;
-B, --block-size=SIZE 使用字节大小块;
-h, --human-readable 以人们可读的形式显示大小;
-H, --si 同-h,但是强制使用 1000 而不是 1024;
-i, --inodes 显示 inode 信息而非块使用量;
-k 即--block-size=1K;
-l, --local 只显示本机的文件系统;
--no-sync 取得使用量数据前不进行同步动作(默认);
-P, --portability 使用 POSIX 兼容的输出格式;
--sync 取得使用量数据前先进行同步动作;
-t, --type=类型 只显示指定文件系统为指定类型的信息;
-T, --print-type 显示文件系统类型;
-x, --exclude-type=类型 只显示文件系统不是指定类型信息;
--help 显示帮助信息并退出;
--version 显示版本信息并退出。

十六、 du 命令详解

du 命令常用于查看文件在磁盘中的使用量,常用命令 du -sh,查看当前目录所有文件及文件及的大小,常用参数详解如下:

用法:du [选项]... [文件]... 或:du [选项]... --files0-from=F
计算每个文件的磁盘用量,目录则取总用量。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all 输出所有文件的磁盘用量,不仅仅是目录; --apparent-size
显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有
时它会因为稀疏文件间的"洞"、内部碎片、非直接引用的块等原因而变大;
-B, --block-size=大小 使用指定字节数的块;
-b, --bytes 等于--apparent-size --block-size=1;
-c, --total 显示总计信息;
-H 等于--dereference-args (-D);
-h, --human-readable 以可读性较好的方式显示尺寸(例如:1K 234M 2G);
--si 类似-h,但在计算时使用 1000 为基底而非 1024;
-k 等于--block-size=1K;
-l, --count-links 如果是硬连接,就多次计算其尺寸;
-m 等于--block-size=1M;
-L, --dereference 找出任何符号链接指示的真正目的地;
-P, --no-dereference 不跟随任何符号链接(默认);
-0, --null 将每个空行视作 0 字节而非换行符;
-S, --separate-dirs 不包括子目录的占用量;
-s, --summarize 只分别计算命令列中每个参数所占的总用量;
-x, --one-file-system 跳过处于不同文件系统之上的目录;
-X, --exclude-from=文件 排除与指定文件中描述的模式相符的文件;
-D, --dereference-args 解除命令行中列出的符号连接;
--files0-from=F 计算文件 F 中以 NUL 结尾的文件名对应占用的磁盘空间,
如果 F 的值是"-",则从标准输入读入文件名。

如上为 Linux 初学者必备命令,当然 Linux 命令还有很多,后面章节会随时学习新的命令。

十七、 vi|vim 编辑器实战

VI 是一个命令行界面下的文本编辑工具,最早在 1976 年由 Bill Joy 开发,当时名字叫
做 ex。vi 支持绝大多数操作系统(最早在 BSD 上发布),并且功能已经十分强大
1991 年 Bram Moolenaar 基于 vi 进行改进,发布了 vim,加入了对 GUI 的支持。
随着 VIM 更新发展,VIM 已经不是普通意义上的文本编辑器,而是被广泛的作为在文
本编辑、方本处理、代码开发等用途,Linux 中主流的文本编辑器包括:VI、Vim、Sublime、
Emacs、Light Table、Eclipse、Gedit 等。
Vim 强大的编辑能力中很大部分是来自于其普通模式命令。vim 的设计理念是命令的组
合。
 “5dd”5 表示总共 5 行,删除光标所在后的 5 行,包含光标行;
 “d$” $"代表行尾,删除到行尾的内容,包含光标;
 “2yy”表示复制光标及后 2 行,包括光标行;
 “%d” %代表全部或者全局,%d 表示删除文本所有的内容,也即是清空文档所有的
内容。
VIM 是一个主流开源的编辑器,其默认执行 vim 命令,会显示帮助乌干达贫困的孩子,
如图 4-4 为 vim 与键盘键位功能对应关系:
在这里插入图片描述

十八、 VIM 编辑器模式

Vim 编辑器模式常用有三种,分别是:
 命令行模式;
 文本输入模式;
 末行模式。
vim 是 vi 的升级版本,它是安装在 Linux 操作系统中的一个软件,官网为:www.vim.org
在 Linux Shell 终端下默认执行 vim 命令,按 Enter 键后:
 默认进入命令行模式;
 在命令行模式按 i 进入文本输入模式;
 按 ESC 进入命令行模式;
 按:进入末行模式。

十九、 VIM 编辑器必备

VIM 编辑器最强大的功能,就在于内部命令及规则使用,如下为 VIM 编辑器最常用的
语法及规则:
命令行模式:可以删除、复制、粘贴、撤销,可以切换到输入模式,输入模式跳转至命
http://www.jfedu.net/ 学习交流群:418600627
Linux 架构师公众号学习,重点推荐
令行模式:按 ESC 键。
yy 复制光标所在行;
nyy 复制 n 行;
3yy 复制 3 行;
p,P 粘贴;
yw 复制光标所在的词组,不会复制标点符号;
3yw 复制三个词组;
u 撤消上一次;
U 撤消当前所有;
dd 删除整行;
ndd 删除 n 行;
x 删除一个字符;
u 逐行撤销;
dw 删除一个词组;
a 从光标所在字符后一个位置开始录入;
A 从光标所在行的行尾开始录入;
i 从光标所在字符前一个位置开始录入;
I 从光标所在行的行首开始录入;
o 跳至光标所在行的下一行行首开始录入;
O 跳至光标所在行的上一行行首开始录入;
R 从光标所在位置开始替换;
 末行模式主要功能包括:查找、替换、末行保存、退出等;
:w 保存;
:q 退出;
:/s/x/y 替换 1 行;
:wq 保存退出;

二十、 本章小结

通过对本章内容的学习,读者对 Linux 操作系统引导有了进一步的理解,能够快速解决Linux 启动过程中的故障,同时学习了 CentOS6 与 CentOS7 系统的区别,理解了 TCP/IP 协议及 IP 地址相关基础内容。
学会了 Linux 初学必备的 16 个 Linux 命令,能使用命令熟练的操作 Linux 系统,通过对 VIM 编辑器的深入学习,能够熟练编辑、修改系统中任意的文本及配置文件。对 Linux系统的认识及操作有了更进一步的飞跃。

二十一、 同步作业

  1. 修改密码的命令默认为 passwd,需要按 Enter 键两次,如何一条命令快速修改密码呢?
  2. 企业服务器,某天发现系统访问很慢,需要查看系统内核日志,请写出查看系统内核日志的命令;
  3. 如果在 Linux 系统/tmp/目录,快速创建 1000 个目录,目录名为:jfedu1、jfedu2、jfedu
    依次类推,不断增加;
  4. Httpd.conf 配置文件中存在很多以#号开头的行,请使用 vim 相关指令删除#开头的行;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘来在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值