目录
一、Linux目录结构
重要目录结构
1. /bin 存放基础系统所需的命令 2. /sbin 存放超级用户root的可执行命令 3. /etc 存放系统程序或一般工具的配置文件 4. /usr 用户程序包含二进制文件,库文件,文档和二级程序的源代码 5. /home 所有用户用home来存储他们的个人档案 6. /mnt 挂载目录临时安装目录,系统管理员可以挂载文件系统
二、Linux系统的基本命令(操作命令)
2.1查看当前工作目录
pwd 例: [root@iZ2ze4hqf8zog4jrhl4pdcZ home]# pwd /home [root@iZ2ze4hqf8zog4jrhl4pdcZ home]#
2.2 查看目录内容
ls [选项] [文件或目录] 选项: -l:每列仅显示一个文件或目录名称。 -a 或--all :下所有文件和目录。 -i 或--inode:显示文件和目录的inode编号。 文件或目录: 指定的目录或文件,如果没有这一项,默认当前目录。
用ls -al查看到的内容:
2.3 切换工作目录
cd [文件或目录] 文件或目录: 绝对路径:一定由根目录/ 写起 相对路径:相对于某一路径,其中.表示当前目录、..表示上一级目录 ~:表示家目录
例:
-
cd /home:进入home目录
-
cd ~:回到家目录
-
cd .. :回到上一级目录
-
2.4 显示系统重要信息
uname [选项] 选项: -r:内核版本 -n: 主机名 -a: 所有信息 备注: 查看发行版的版本cat /etc/redhat-release
例:
-
uname -r:内核版本
-
uname -n:主机名
-
uname -a:显示所有系统重要信息
2.5 改变文件时间(文件不存在时可以创建文件)
touch [选项] [文件或目录] 选项: -t:使用指定的时间,而非现在的时间 文件或目录: 要改变的文件的路径。
例:touch file:创建文件
2.6 创建目录
mkdir [选项] [文件或目录] 选项: -p:递归创建目录,嵌套目录 文件或目录: 根目录的路径
例:
mkdir aa.txt :创建一个aa.txt文件
mkdir -p aa/bb/cc:创建连续嵌套的目录
2.7 拷贝文件或目录
cp [选项] [源文件或目录] [目的文件或目录] 选项: -i:在拷贝过程中询问是否要拷贝 -f:在拷贝过程中不询问直接拷贝 -r:拷贝目录中的所有文件和目录 文件或目录: 源文件或目录:指的是需要拷贝那个文件的路径 目的文件或目录:指要拷贝到的文件或目录
例:
cp -f ./aa.txt ../kk :将当前目录下的aa.txt文件拷贝到上一级目录下的kk中
2.8 删除空目录
rmdir [选项] [目录] 选项: -p:删除指定目录上的所有目录 文件或目录: 要删除的文件目录的路径
例:rmdir /aa:删除根目录下的aa空目录
2.9 删除文件或目录
rm [选项] [文件或目录] (要删除目录必须加上参数"-r",否则仅会删除文件。) 选项: -i:删除时询问是否要删除 -f: 删除时不询问直接删除 -r: 递归删除目录下的所有文件或目录 文件或目录: 所要删除的文件或目录的路径
例:
rm /aa.txt :删除根目录下的文件aa.txt
rm -rf /kk:删除kk目录下的所有文件或目录
2.10 移动文件或目录,更改文件或目录的名称
mv [选项] [源文件或目录] [目标文件或目录] 选项: -i:在移动时有覆盖询问是否要覆盖 -f: 在移动时有覆盖不询问直接覆盖 文件或目录: 源文件或目录:要移动或更名的文件或目录 目标文件或目录:如果有不是当前路径的路径就是要移动,如果是当前路径下就是更名
例:
mv aa bb:将aa更名bb
mv -i /aa ~:将当前目录下的aa移动到家目录下
2.11 打包
tar [选项] [目标包名] [源文件或目录] 选项: -c:创建一个包 -f: 定义目标包 目标包名: 要打成的包名 源文件名或目录名: 哪些文件要被打成包
例:tar -cf xxx.tar /aa:将aa打包成xxx.tar 包
2.12 向包中添加文件
tar [选项] [包名] [源文件或目录] 选项: -r:将文件追加到包中 -f: 定义目标包 包名: 要追加到那个包的路径 源文件或目录: 要添加的文件或这目录
例:tar -rf xxx.tar /kk:将kk文件或目录追加到包xxx.tar中
2.13 在不解包的情况下查看包中的文件或目录
tar [选项] [包名] 选项: -t:查看包里面的文件! -f: 定义目标包 目标包名: 要查看的包的名称
例:tar -tf xxx.tar:在不解包的情况下查看xxx.tar包中的内容
2.14 解包
tar [选项] [包名] 选项: -x:将包解包 -f: 定义目标包包名: 包名: 要解的那个包的名称
例:tar -xf xxx.tar :将xxx.tar解包
2.15 包的压缩
tar [选项] [压缩名] [源文件] 选项: -c:打包 -z:将打包的文件用gzip格式压缩 -v:显示过程 -f:定义目标包 压缩名: 指定压缩的名字 源文件: 要打包压缩的文件
例:tar -czf xxx.tar.gz /aa bb cc:将当前目录下的aa bb压缩到xxx.tar.gz压缩包中
2.16 包的解压缩
tar [选项] [包名] 选项: -x:解包解压 -z:以gzip的格式进行解压 -v:显示过程 -f:定义目标包 包名: 要解压的包的名称
例:tar -xzf xxx.tar.gz :将xxx.tar.gz解压到当前文件夹下
2.17 链接
软链接
ln -s 被链接文件(源文件) 链接文件(新创建的链接文件)
例:ln -s 小白兔 大灰狼
硬链接(系统默认硬连接)
ln 被链接文件 链接文件
软链接和硬连接的区别
软连接创建方式: ln -s 被链接文件 链接文件 (1)软链接是一个链接文件; (2)软链接有着自己的 inode 号(文件编号); (3)软链接有自己的文件属性及权限等; (4)可对不存在的文件或目录创建软链接; (5)软链接可交叉文件系统; (6)软链接可对文件或目录创建; (7)创建软链接时,链接计数 i_nlink 不会增加; (8)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。 硬链接创建方式: ln 被链接文件 链接文件 (1)文件有相同的 inode 及 data block; (2)只能对已存在的文件进行创建; (3)不能交叉文件系统进行硬链接的创建; (4)不能对目录进行创建,只可对文件创建; (5)删除或添加一个硬链接文件并不影响其他有相同 inode 号的文件,只是减少或增加链接计数,当链接计数为0,系统将彻底删除该文件。
2.18 退出shell
exit
2.19 控制台输出
echo[参数] 参数: 要输出的值或字符串
例:echo 'hello!'
2.20 给命令起别名
alias[选项] [参数] 选项: -p:打印已经设置的命令别名。 参数: alias 新的命令='原命令-选项/参数'
例:alias -p:显示所有已有别名
alias kk='ls-ali'
2.21取消命令的别名
unalias[选项] [参数] 选项: -a:取消所有命令别名。 参数: 命令别名:指定要取消的命令别名。
例:
unalias -a:取消所有命名别名
unalias kk:取消kk的别名
三、Linux系统的基本命令(查询命令)
3.1 man手册
man [选项] 命令名 选项: -a:在所有的man帮助手册中搜索; -f:等价于whatis指令,显示给定关键字的简短描述信息;
例:man ls:查看ls使用手册
3.2 按文件名称查询
find [查找的路径][选项] [参数] 选项: -name:按名称查找 -iname: 忽略大小写 选项: 用双引号引起来
例:
find . -name “*.txt”:在当前文件夹下查找以.txt结尾的文件
find . -iname “AA”:忽略大小写查找AA文件
3.3 按文件类型查询
find [查找的路径][选项] [参数] 选项: -type:文件分类超找 -maxdepth :从当前目录开始搜索的深度(也就是子目录的嵌套) 参数: f:纯文本档(ASCII)、二进制文件(binary)、数据格式文件(data) c:字符设备文件,即一些串行端口的接口文件,如键盘、鼠标等 d:目录 l:链接文件 b:块设备文件,即一些存储文件,如硬盘、软盘等 s:套接字还被称为数据接口文件,这种类型的文件通常被用在网络上的数据连接。我们可以启动一个程序来监听客户端的请求,而客户端就可以通过数据接口文件来进行数据通信。 p:管道文件(FIFO)也是一种特殊的文件类型,他主要的目的解决多个程序同时访问一个文件所造成的错误问题,first-in-first-out。
例:
find . -type f:在当前文件夹下查找普通文件
find . -type d:在当前目录下查找目录
find . -maxdepth 3 -type f:当前目录开始深度为3层的所有普通文件
3.4 查看时间
date [选项] [参数] 选项: -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号; -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号; -u:显示GMT(世界时间);
例:
date -u
3.5 查看日历
cal [选项] [月份] [年份] 选项: -s:显示星期天为一个星期的第一天,默认的格式 -m: 显示星期一为一个星期的第一天 -j: 显示在当年中的第几天 月份: 1-12 年份: 1-9999
例:
cal:显示当年当月的日历
cal 8 2017 :显示2017年8月的日历
cal -j 2024 :显示2024年的每一天是2024年的哪一天
3.6 查看文件大小
du[选项] [参数] 选项: -s 仅显示总计,只列出最后加总的值。 -h 以K,M,G为单位,提高信息的可读性。 参数: 目录或文件
例:du kk:显示kk文件的大小
3.7 根据条件查找文本
grep[选项] [参数] 选项: -i 忽略字符大小写的差别。 -n 在显示符合范本样式的那一列之前,标示出该列的编号。 -v 反转查找。 参数: 关键字:要查找的字符串 文件路径:要去哪个文件去查找
例:
grep "text" -n file_name:查找出所有的text文件
grep -v "text" file_name:查找出所有除了text的文件
3.8 统计文本内容
wc [选项] [文件] 选项: -c:只显示Bytes数; -l:只显示列数; -w:只显示字数。 文件: 要查看的文件的名称
例:
wc xxx.txt:显示文本的行号,字符数,单词数
wc -c:显示字符数
(wc /etc/passwd:第一个参数是行号,第二个参数是字符数,第三个参数是词数)
3.9 查看文本内容
cat [选项] [文件] 选项: -n:有1开始对所有输出的行数编号; -b:和-n相似,只不过对于空白行不编号; 文件: 要查看的文件的名称
例:
cat xxx.txt:显示文本的内容直接输出在屏幕上(不建议查看内容过多的文件,编辑器只能显示1000行)
cat -n xxx.txt:在每一行前加行号
3.9.1 分进度显示文本内容
more [文件] 文件: 要查看的文件的名称 操作 按Space键:显示文本的下一屏内容。 按Enier键:只显示文本的下一行内容。 按H键:显示帮助屏,该屏上有相关的帮助信息。 按B键:显示上一屏内容。 按Q键:退出more命令;
例:more xxx.txt :分进度显示文本内容
3.9.2 分屏显示文本内容
less [参数] [文件] 参数 -e:文件内容显示完毕后,自动退出; -N:每一行行首显示行号; 文件: 要查看的文件的名称
例:less xxx.txt:分屏显示文本内容
3.9.3 从头开始查看多少行
head [参数] [文件] 参数 -n:指定从头显示多少行; 文件: 要查看的文件的名称
例:head -5 xxx.txt:查看头5行
3.9.4 从尾查看多少行
tail [参数] [文件] 参数 -n:指定从尾显示多少行; -f:监控文件尾部插入的行 文件: 要查看的文件的名称
例:tail -5 xxx.txt:查看尾5行
四、Linux系统基础命令(进程管理命令)
4.1 进程的概念
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序的载体
4.2 进程的五种状态
R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列 S睡眠状态(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠) D磁盘休眠状态(Disk sleep)/不可中断睡眠状态(uninterruptible sleep): 在这个状态的进程通常会等待IO的结束。 T停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。 X死亡状态(dead): 这个状态只是一个返回状态,你不会在任务列表里看到这个状态。
4.3 查看当前用户进程
ps[选项] [参数] 选项: -a:显示所有用户的进程 -u:显示用户名和启动时间 -x:显示没有控制终端的进程 -e:显示所有进程,包括没有控制终端的进程 -l:长格式显示
例:
ps:只显示隶属于自己的进程状态
ps-aux:显示所有进程
ps–aux | grep mysql:过滤出要查看的mysql的进程信息(|是管道符)
4.4 杀死进程
kill[选项] [参数] 选项: -1:重启进程 -9:强制杀死 参数: pid进程编号
例:
Kill pid:杀死进程编号为pid的进程
Kill -1 pid:重新启动进程编号为pid的进程‘
Kill -9 pid:强制杀死进程编号为pid的进程
4.5 查看进程的信息
top (动态显示进程信息) 提示: 退出top按q
五、Linux系统基础命令(用户管理命令)
5.1 用户分类
超级管理员root: 用户ID为:0,在Linux中拥有任何权限 程序用户: 用户ID为:(0<use_id<1000),普通权限,但没家目录,也不能登录系统 普通用户: 用户ID为:(1000+),普通权限,但可以登录系统
5.2 新建用户
adduser 用户名
例:adduser fanfan
5.3 查看用户id
id[选项] [参数] 选项: -g:显示用户所属群组的ID。-u:显示用户ID。 参数: 用户名:要查看的用户名。
例:
id fanfan:查看fanfan的信息
id -u:查看当前用户的id
id -g:显示用户所属群组的id
5.4 改变文件的所属
chown[选项] [参数] 选项: -R:递归处理,将指定目录下的所有文件及子目录一并处理。 参数: 所属用户:要改变的所属用户。 所属组:要改变的所属组。
例:chown -R test /kk:将/kk目录下的所有文件改为test用户所有
5.5 改变文件的权限
chmod[选项] [参数] 选项: 权限:权限值。 参数: 文件名:设置权限的文件名。
权限设置
r = 4:表示有可读权限 w = 2:表示有可写权限 x = 1:表示有可执行权限 -= 0:表示该位置上没有具备的权限 u :rwx:所属用户拥有的权限 g :rwx:所属组拥有的权限 o:rwx:既不是所属用户,又不是所属组的其他用户所拥有的权限
例:
chmod u+x,g+w kk:文件kk设置权限
chmod u=rwx,g=rw,o=r kk:给kk文件设置权限
chmod 764 kk:文件kk设置权限
六、Linux系统基础命令(vim编辑模式)
vim 文件名
6.1 编辑模式下的操作
i:从光标所在处插入 a:从当前光标所在的下一个字符开始插入 o:从目前光标所在的下一行处插入新的一行 r:会取代当前光标所在的那一个字符一次 l:从当前光标所在位置的第一个非空格处开始插入 A:从当前光标所在行的在后一个字符处开始插入 O:从当前光标所在的上一行插入新的一行 R:会一直取代当前光标所在文字的文字,直到按esc结束
6.2 编辑器(编辑好后先按ESC)
:w是保存一些文本 :q退出当前的文本编辑器 :wq保存并退出当前文本编辑器 :w!强制写入该文件 :q!不想保存当前修改强制退出 :x保存后离开
6.3 多窗口操作
横向切割打开 :new+窗口名(文件名) :split+窗口名 纵向切割打开 :vsplit+窗口名(文件名) 关闭多窗口 :quall关闭当前窗口 窗口的切换 :Ctrl+w+j/k通过j/k可以上下切换或者通过Ctrl+w+左右键,还可以通过快速双击Ctrl+w键依次切换窗口
6.4 在不是写入模式下的快捷操作(一般模式下的操作)
x:向后删除一个字符 ndd:删除光标所在的向下n行 p:将已复制的数据粘贴在光标的下一行上 nx:连续向后删除n个字符 yy:复制光标所在的那一行 P(大写):将已复制的内容粘贴在光标显示的上一行 dd:删除光标所在的那一行 nyy:复制光标所在的向下n列 u:恢复上一个操作
6.5 vim和shell命令直接的切换
:shell通过在不关闭vim的情况下切换到shell命令行 :exit从shell回到vim
6.6 网络配置命令
ifconfig [参数] 参数: 网卡 ip 掩码 up down
6.7 网络状态查询
netstat [选项] 选项: -l:显示监控中的服务器的Socket; -n:直接使用ip地址,而不通过域名服务器; -p:显示正在使用Socket的程序识别码和程序名称;
6.8 通过网络下载文件
wget [选项] [参数] 选项: -b:进行后台的方式运行wget; -c:继续执行上次终端的任务 参数: 网址