前言
下面是常用命令的介绍,这些命令都是以后会用到的,熟练掌握便是最终的目标。
第一章 Linux文件及目录管理命令基础
1.1 pwd: 显示当前所在位置的信息
[功能说明]
显示当前所在目录的绝对路径
[语法格式]
pwd [option]
pwd 选项
[说明]
1.注意pwd命令与后面的选项之间至少要有一个空格
2.通常情况下,执行pwd命令过不需要附带任何参数
[举例]
1.2 cd: 切换目录
[功能说明]
切换到不同的目录
[语法格式]
cd [option] [dir]
cd [选项] [目录]
[注意]
1.注意cd命令以及后面的选项和目录,每个元素之间都至少有一个空格。
2.cd命令后面的选项都可以省略。默认情况下,单独执行cd命令,可以切换到当前登陆用户的家目录。
3.cd是bash shell的内置命令,查看命令帮助需要使用help cd。
[选项说明]
[技巧]
1.当使用cd命令切换目录时,多用tab补全键可以补全路径,可以提高输入速度和准确度。
2.相对路径和绝对路径区别
相对路径是以当前所在的目录为起点,而不是以"/"为起点
绝对路径是以"/"为起点,例如 /etc/ /data/
[举例]
进入一个目录
切换上一次的目录使用cd -
切换到上一级目录使用cd ..
切换到家目录使用cd ~
1.3 tree: 以树状目录结构显示目录下的内容
[功能说明]
以树状目录结构显示目录下的内容
[语法格式]
tree [option] [directory]
tree [选项] [目录]
[注意]
1.注意tree命令以及后面的选项和目录,每个元素之间都至少有一个空格。
2.若tree命令后不接选项和目录,则默认显示当前所在路径目录的目录结构。
[选项说明]
[举例]
1.只列出根目录下第一层的目录结构
2.使用tree命令区分目录和文件的方法
3.只显示目录
1.4 mkdir: 创建目录
[功能说明]
1.功能是创建目录
2.默认如果目录已存在,则会提示目录存在,而不会继续创建
[语法格式]
mkdir [option] [directory]
mkdir [选项] [目录]
[选项说明]
[举例]
1.创建一个目录
2.使用-p参数递归创建目录
1.5 touch: 创建文件或更改文件时间戳
[功能说明]
2个功能:
1.创建一个空文件
2.改变已有文件的时间戳属性
[语法格式]
touch [option] [file]
touch [选项] [文件]
[注意]
1.注意touch命令以及后面的选项和目录,每个元素之间都至少有一个空格。
2.注意区分touch和mkdir命令的功能,mkdir是创建空目录,而touch是创建空文件。
3.Linux中一切皆文件。虽然touch命令不能创建目录,但是可以修改目录的时间戳。
[选项说明]
[举例]
1.批量创建多个空文件
2.更改时间戳
touch test.txt
stat test.txt
touch -a test.txt
stat test.txt
touch -m test.txt
stat test.txt
3.指定时间属性创建/修改文件
ls -lh test.txt
touch -d 20201206 test.txt
ls -lh test.txt
[拓展]
Linux的文件中包含3种类型的时间戳:
1.6 ls: 显示目录下内容及属性信息的命令
[功能说明]
列出目录的内容及其属性信息。
[语法格式]
ls [option] [file]
ls [选项] [文件或目录]
[说明]
1.注意ls命令以及后面的选项和目录,每个元素之间都至少有一个空格。
2.ls命令后的选项和目录文件可以省略,表示查看当前路径的文件信息。
[选项说明]
[举例]
1.切换目录,批量创建文件,显示目录内容
2.显示目录文件的详细内容
3.显示目录下的所有文件,包括隐藏文件
4.只显示目录的信息,而不是目录下的文件的信息
5.查找最近更新过的文件
6.以人类可读信息输出
[拓展]
ls命令输出信息解读:
1.7 cp: 复制文件或目录
[功能说明]
功能为复制文件或目录
[语法格式]
cp [option] [source] [dest]
cp [选项] [源文件] [目标文件]
[选项说明]
[举例]
cp file1.txt file2.txt
cp -a file1.txt file3.txt
ls -lh
/bin/cp file1.txt file2.txt
cp file1.txt file2.txt
cp /etc/ssh/sshd_config{,.bak}
1.8 mv: 移动或重命名文件
[功能说明]
移动或重命名文件
[语法格式]
mv [option] [source] [dest]
mv [选项] [源文件] [目标文件]
[注意]
命令与每个参数之间都需要有空格
[选项说明]
[举例]
mv file6.txt file7.txt
mv file4.txt file7.txt
mv file7.txt dir1/ #如果目录已经存在,则把文件移动到文件里。若不存在,则重命名为dir1的普通文件。
mv file1.txt file2.txt dir1/
mv -t dir1/ file1.txt file2.txt file3.txt #-t参数将源和目标进行调换。
mv dir1 dir5
1.9 rm: 删除文件或目录
[功能说明]
删除一个或多个文件或目录,这是Linux最危险的命令之一,跪求谨慎使用。
[语法格式]
rm [option] [file]
rm [选项] [文件或目录]
[选项说明]
[举例]
mkdir -p /data/{dir1,dir2,dir3}
touch /data/{file1.txt,file2.txt,file3.txt}
tree /data
cd /data
rm file3.txt
rm -f file3.txt
rm -rf dir1
[注意]
1.用mv替代rm,不要着急删除,而是先移动到回收站"/tmp"
2.删除前务必做好备份,最好保存在其他地方,出现问题可以随时还原
3.如果非要删除,请用find替代rm,包括通过系统定时任务等清理文件方法
4.最好使用-rf参数组合,因为不会有任何提示和确认
5.root用户下绝对不要使用rm -rf / 以及其他配置文件,如:rm -rf /etc等。
第二章 Linux重要系统文件
2.1 Linux重要目录介绍
FHS标准(filesystem hierarchy standard):希望用户可以了解已经安装的程序在哪个目录下:
根文件文件系统(/):rootfs:root filesystem
/bin:二进制,存放命令(所有用户都可以执行)
/boot:存放启动和内核相关文件
/dev:存放设备文件
/etc:存放应用程序的配置文件
/home:普通用户的家目录(存放普通用户),默认为/home/USERNAME
/lib和/lib64:存放系统开机时需要用的函数库及/bin和/sbin命令调用函数库
/lib/modules:存放内核相关的模块(驱动程序等)
/media和/mnt:挂载点,/media挂载移动设备 /mnt挂载临时设备
(当存在光驱的时候需要挂载到里面,直接访问是没法的,需要访问media)
/opt:第三方软件存放目录(用户自行安装的软件存放处),现在一般安装到/usr/local下
/proc:伪文件系统,数据存放在内存中,存放关于进程的相关信息(调优)
/root:管理员的家目录
/sbin:存放管理员使用的命令
/srv:service缩写,存放服务数据目录,如可以把www服务的网页存放到该目录
/tmp:存放临时文件,所有用户都可以访问创建文件,但是每个用户只能删除自己的文件(到了一定时间会清除)
/sys:伪文件系统,存放在内存中,记录内核相关的信息,包括目前加载内核模块和内核检测到的硬件设备等
/usr:UNIX software resource:存放安装的应用程序(使用频率最大的)
/usr/bin:普通用户使用的命令(和/bin区别是否与开机有关)
/usr/sbin:网络服务器命令
/usr/lib和/usr/lib64:包含各种应用程序函数库
/usr/share:存放共享文件目录(在线帮助文件,杂项,时区文件等)
/usr/include:存放头文件
/usr/src:释放源代码目录
/var:vary缩写,存放经常变动的文件,比如日志,mail等
/var/cache:存放应用程序运行时产生的缓存文件
/var/lib:程序运行时,需要使用的数据文件的存放目录
/var/lock:设备或资源一次只能被一个应用程序使用,如果多应用程序会产生错误,因为要为设备或资源上锁(存放锁文件)
/var/log:存放日志目录(系统,用户登录,服务日志等)
/var/mail:存放个人电子邮件(系统报警产生邮件信息等)
/var/run:存放应用程序运行时PID文件(进程号.pid结尾)
/var/spool:存放队列数据,排队等待其他用户程序使用的数据,数据通常使用完成后会被删除
FHS规定:/etc /bin /dev /lib /sbin五个目录必须要和根目录位于同一文件系统
2.2 Linux重要系统文件介绍
2.2.1 /etc系统初始化及设置相关重要文件
2.2.2 /var目录下的路径知识
2.3 /proc下重要路径知识
第三章 CentOS 6&7启动流程
3.1 CentOS6启动流程
3.2 CentOS7启动流程
第四章 Linux文本处理
4.1 VI/VIM编辑器
[三种模式]
1.普通模式
2.编辑模式
3.命令行模式
常用快捷键
4.2 echo 输出文本
[练习]
1.打印文本输出到屏幕里
2.将单行文本追加到某个文件中
3.打印变量内容
4.3 cat 合并文件或查看文件内容
[选项说明]
[举例]
1.直接查看文件内容
2.使用cat的完整命令生成test.txt的内容
3.查看文件内容并显示行号-n -b
4.查看文件内容的的特殊字符
4.4 head 显示文件头部信息
[语法格式]
head [option] [file]
head [选项] [文件]
[选项说明]
[举例]
1.显示文件前10行
2.显示文件前3行
4.5 tail 显示文件内容尾部
[语法格式]
tail [option] [file]
tail [选项] [文件]
[选项说明]
[举例]
1.显示文件最后10行文本
2.显示文件最后5行文本
3.持续的显示文本的变化
4.7 grep 文本过滤工具
[功能说明]
grep命令是Linux系统中最重要的命令之一,其功能是从文本或管道数据流中筛选匹配的行及数据,如果配合正则表达式技术一起使用,则功能会更加强大,他是Linux运维人员必须要掌握的命令之一。
grep过滤就相当于一个筛子,有可能筛子里面的东西是要保留的,也有可能筛出来的需要保留。
[语法格式]
grep [options] pattern [file]
greo 参数 匹配模式 文件
[选项说明]
[举例]
1.过滤包含Jerome字符串的行
2.过滤不包含Jerome字符串的行
3.显示所有行的行号
4.不区分大小写的过滤
5.过滤包含Jerome或test的行
6.只输出匹配的内容,而匹配的行
7.精确搜索包含Jerome的字符串
4.8 定向符号
[功能说明]
">"为重定向符号,表示清除原文件里的所有内容,然后将内容追加到文件的末尾(危险操作!慎用)
">>"为追加重定向符号,即追加内容到文件的尾部(文件的最后一行)
[举例]
1.清空一个文本
2.清空一个文本并写入一行内容
3.输出一行内容并追加到文本的最后
第五章 Linux文件及目录查找命令
5.1 file 显示文件的类型
[语法格式]
file [option] [file]
5.2 which 显示命令的全路径
[语法格式]
file 命令
5.3 whereis 显示命令及其相关文件全路径
[语法格式]
whereis 命令
5.4 find 查找目录下的文件
[语法格式]
find [path] [option] [cmd]
find 路径 选项参数 执行命令
[选项说明]
[举例]
1.查找2天内被访问的文件
2.查找修改时间在5天内容的文件
3.查找/var/log目录下5天前以*.log结尾的文件
4.查找当前的目录
5.查找当前目录下文件大小超过1000字节的文件
6.查找用户为oldboy的文件
7.查找1级目录
8.查找14天以前的文件并删除
9.加入网站的网页被挂马了,如何批量找出并删除?
[时间查找说明]
[find练习题]
创建测试文件命令:
mkdir /opt/dir{1..4} -p
touch -d "2020-11-26 01:00" /opt/dir1/111.txt
touch -d "2020-11-27 01:00" /opt/dir1/111.jpg
touch -d "2020-11-28 01:00" /opt/dir2/222.txt
touch -d "2020-11-29 01:00" /opt/dir2/222.jpg
touch -d "2020-11-30 01:00" /opt/dir3/333.html
touch -d "2020-12-01 01:00" /opt/dir4/444.conf
touch -d "2020-12-02 01:00" /opt/dir4/555.conf
dd if=/dev/zero of=/opt/dir1/111.data bs=1K count=100
dd if=/dev/zero of=/opt/dir2/222.data bs=1K count=300
dd if=/dev/zero of=/opt/dir3/333.data bs=1M count=10
dd if=/dev/zero of=/opt/dir4/444.data bs=1M count=100
echo "DB_NAME=Jerome" >> /opt/dir4/444.conf
echo "DB_PASSWD=123456" >> /opt/dir4/444.conf
echo "www.baidu.com" >> /opt/dir2/222.html
echo "www.test.com" >> /opt/dir3/333.html
useradd www
chown www:www /opt/dir2/222.html
chown www:www /opt/dir3/333.html
练习题:
1.找出/opt目录下所有以txt结尾的文件
find /opt -type f ".txt"
2.找出/opt目录下所有以txt结尾的文件但是排除掉文件名包含222的文件
find /opt -type f ".txt" ! -name 222
3.找出/opt/目录下所有的conf文件
find /opt -type f "conf"
4.找出/opt目录下大于500K的文件
find /opt -type f -size +500K
5.找出/opt目录下大于10M的文件
find /opt -type f -size +10M
6.找出/opt目录下前3天的文件
find /opt -type f -mtime +3
7.找出/opt目录下最近2天的文件
find /opt -type f -mtime -2
8.找出/opt/dir2目录下以jpg结尾的文件
find /opt/dir2 -type f ".jpg"
9.找出/opt/目录下文件内容包含baidu的文件
find /opt -type f "" |xrags grep "baidu"
10.找出/opt目录下文件内容包含oldboy的文件
find /opt -type f "*" |xrags grep "oldboy"
11.用一条命令找出/opt目录下所有的data文件并显示详细信息
find /opt -type f "data" |xrags ls -al
12.用一条命令找出/opt目录下大于1M的文件并删除
rm -rffind /opt -type f -size +1M
find /opt -type f -size +1M用`号括起来
5.5 xargs 将标准输入转换成命令行参数
find . -type f -name ".txt" -size -100k|xargs ls -lh
find . -type f -name ".txt" -size -100k|xargs rm -rf
5.6 tar 打包压缩命令
[语法格式]
压缩;
tar [选项] 压缩包名称 需要压缩的文件
解压:
tar [选项] 需要解压的文件
[选项说明]
举例说明
mkdir /code/www/html/ -p
touch /code/www/html/{1..5}.html
ls /code/www/html/
cd /code/www/
tar zcvf html.tar.gz ./html
tar ztvf html.tar.gz
tar zxvf html.tar.gz
tar zxvf html.tar.gz -C /opt/
5.7 显示与设置系统时间
yum install ntpdate -y
date
date -s "2020-11-05"
ntpdate time1.aliyun.com
date
5.8 基础命令综合练习题
1.linux命令格式是什么样?
2.linux命令必须添加参数才能执行吗
3.解释linux的命令提示符,如何用linux命令解析[root apylinux opt]#
4.linux的目录分隔符是?
5.简述Linux的目录结构
6.切换到上一级目录
7.切换到上一次目录
8.切换到用户家目录
9.查看当前工作目录
10.当前目录是/home,以绝对、相对两种路径方式进入/opt目录
11.列出/opt/下所有文件,包含隐藏文件,且显示详细信息(时间、文件大小)
12.以树状结构显示文件夹内容
13.—条命令创建/tmp/chaoge/linux文件夹
14.创建python脚本first.py
15.—条命令创建/tmp/chaoge1.txt /tmp/chaoge2.txt /tmp/chaoge3.txt
16.复制/opt/下所有内容到/tmp/下
17.更改文件名first.txt为second.txt
18.把/opt/下所有内容移动到/tmp下
19.强制删除/tmp下所有内容
20.查看Is命令的帮助信息
21.立即重启的命令
22.如何永久设置linux环境变量
23.linux的常见配置文件目录是
24.vim三种模式是?使用流程是?
25.查看文件且显示行号
26.如何清空文件内容,注意是空内容,而非空格
27.显示文件前30行
28.显加文件后50行
29.实时刷新文件内容
30.读取文件内容且倒序排序
31.读取文件内容进行排序后去重
32.读取文件内容且排序后,统计重复行的次数
33.统计文件一共有多少行
34.如何查看文件的详细信息(inode号,访问、修改时间、链接数)
35.找出服务器上所有以".py"结尾的文件
36.找出服务器2天内被访问过的文件
37.找出服务器大于50M的文件
38•找出/tmp/目录下所有的txt文件,然后删除
39.把/data/html/文件夹打包压缩成data_html.tgz文件
40.如何解压缩alltmp.gz文件
41.如何解压缩data.zip文件
42.显示具体的系统时间,时:分:秒
43.如何彻底粉碎文件
第六章 Linux权限和用户管理
6.1 用户及用户组介绍
在Linux系统中创建,增加,以及删除用户和用户组,实际上都是修改系统中对应的文件,因此有必要熟悉一下用户和用户组相关的重要文件知识。
在Linux系统中,与用户和用户组直接相关的文件主要有/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow这四个文件。
6.2 存储用户信息的文件 /etc/passwd
[文件说明]
/etc/passwd文件是Linux中重要的系统文件之一,主要作用是存储系统用户信息,文件中的每一行表示一个用户信息,有多少行就表示存在多少个用户信息,仔细观察其中的一行,可以清晰看出,各内容之间通过":"号划分了多个字段,这7部分分别定义了用户的不同属性。
注意:没事别动这个文件,不要删除也不要修改。
[字段说明]
[详细说明]
6.3 存储用户密码信息的文件/etc/shadow
[文件说明]
前面说到,因为passwd文件必须要被所有的用户读取,所以会带来安全隐患。
而shadow文件就是为了这个安全隐患而增加的,下面我们看看/etc/shadow文件的权限。
[root@oldboy ~]# ls -l /etc/shadow
----------. 1 root root 593 Dec 2 15:00 /etc/shadow #<==所有用户都不可读,但是不包含root用户
[通过查看具体文本内容如下:]
[root@oldboy ~]# head -3 /etc/shadow
root:$6$IbFgv2F4o6JnsNzE$qq0G6Kk/VHKtBGzriqCpH.nNcJkdGNPkBW84QTbkH5XaVd/XHYIv.b0I7Mr/7Ycg.Tl1Zel7FQVQaAayuKbej/::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
[字段解释]
6.4 用户管理的常见命令
6.5 组管理的常见命令
6.6 useradd添加用户命令实战
常用参数
[练习命令]
默认不接任何参数
useradd oldboy
ls -lh /home
tail -1 /etc/passwd
tail -1 /etc/group
tail -1 /etc/gshadow
指定uid,gid
group oldya 777
useradd oldya -u 777 -g 777
id oldya
创建虚拟用户mysql,禁止其登陆,且不创建家目录
useradd mysql -s /sbin/nologin -M
tail -1 /etc/passwd
6.7 usermod 修改用户和组的属性
usermod olddong -d /home/test01
usermod olddong -s /bin/bash
groupmod olddong -g 2001
usermod olddong -g 2001
第七章 Linux定时任务管理
7.1 什么是Cron定时任务
简单来说,定时任务就是按照系统管理员的要求,周期性的定时运行指定的任务,可以是命令,也可以是脚本。
对于安全管理员来说,很多病毒都是利用定时任务来从网络上下载病毒并运行的。
7.2 选项参数
-e 编辑定时任务
-l 显示所有的定时任务
7.3 语法格式
口诀:分时日月周
* * * * * 命令
分 时 日 月 周 命令
7.4 字段的含义
7.5 举例说明
*/1 * * * * ntpdate time1.aliyun.com
30 */6 * * * echo "吃饭"
00 00 * * * echo "跳广场舞"
00 */1 * * * echo "上卫生间"
30 09 * * 0 echo "去老男孩上课"
第八章 Linux常用系统命令
8.1 查看进程
ps -ef
[说明]
ps命令参数很多,就不一一介绍了,参考:
https://www.runoob.com/linux/linux-comm-ps.html
8.2 查看端口
netstat -anp
[说明]
netstat命令参数很多,就不一一介绍了,参考:
https://www.runoob.com/linux/linux-comm-netstat.html
8.3 查看内存
top
[参数说明]
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
总结
以上便是对Linux基础知识的总结,同时也是常用命令需要牢记,更多的常用命令可以参考手册。