Linux 学习笔记
1 Linux 常用命令
1.1 文件处理命令
1.1.1 命令格式与目录处理命令(ls)
# 命令格式: 命令 [-选项] [参数]
例: ls -la /etc
# 说明:
(1)个别命令使用不遵循这种格式。
(2)当有多个选项时,可以写在一起。
(3)简化选项与完整选项。 如: -a 等同于 -all
# 基本描述
(1)名称: ls
(2)原意: list (即 列表)
(3)所在路径: /bin/ls
# 执行权限:所有用户
# 功能描述:显示目录文件
# 语法:ls 选项[-a 、-l 、-d] [文件或目录]
-a (即 all): 显示所有文件,包括隐藏文件
-l (即 long): 显示文件的详细信息
-d (即 description): 查看目录属性
示例:
(1)ls : 显示当前目录下的文件及目录 (2)ls -l : 显示文件的详细信息 (3) ls -lh :人性化显示(比如文件大小的单位 人性化)
备注: 第一列的含义 :如此处的: drwxrwxr-x (4)获取指定目录文件的详细信息
(5) 获取指定当前文件目录下所有文件/目录的节点 (下图的第一列)
1.1.2 目录处理命令
1.1.2.1 目录创建 :mkdir
# 命令描述
(1) 名称: mkdir
(2) 英文原意: make directories
(3) 所在路径: /bin/mkdir
# 执行权限:所有用户
# 语法:
mkdir -p [目录名]
# 功能描述 : 创建新目录
-p 递归创建 ,即连续创建目录包括深层的子目录
# 示例
(1)mkdir test : 在当前目录下创建一个名称为 “test” 的目录
(2)mkdir -p /tmp/dir1/dir2 : 在tmp目录下,先创建dir1目录,再在dir1目录下创建dir2, 即 【递归创建】
(3)mkdir /tmp/dir3 /tmp/dir4 : 在tmp目录下创建一次两个目录dir3 、dir4, 即 【多目录创建】
1.1.2.2 目录跳转/改变:cd
# 命令描述
(1) 名称: cd
(2) 英文原意: change directory
(3) 所在路径: shell内置命令
# 执行权限:所有用户
# 语法:
cd [目录名]
# 功能描述 : 切换目录
# 示例
(1)cd /tmp/dir1 : 切换到 /tmp/dir1 目录下
(2)cd .. : 返回上一级目录
1.1.2.3 显示当前目录: pwd
# 命令描述
(1) 名称: pwd
(2) 英文原意: print working directory
(3) 所在路径: /bin/pwd
# 执行权限:所有用户
# 语法:
pwd
# 功能描述 :显示当前目录的绝对路径
# 示例
(1)pwd
1.1.2.4 删除文件目录:rmdir
# 命令描述
(1) 名称: rmdir
(2) 英文原意: remove empty directories
(3) 所在路径: /bin/rmdir
# 执行权限:所有用户
# 语法:
rmdir [目录名称]
# 功能描述 :删除空的目录
# 示例
(1)rmdir /tmp/dir1 : 删除空目录 dir1
1.1.3 文件处理命令
1.1.3.1 文件/目录复制:cp
# 命令描述
(1) 名称: cp
(2) 英文原意: copy
(3) 所在路径: /bin/cp
# 执行权限:所有用户
# 语法:
cp -rp [源文件或目录名称] [目标/目的目录]
-r 复制目录
-p 保留文件属性(如文件最后修改的时间)
# 功能描述 :复制文件或目录
# 示例
(1)cp -r /tmp/dir1/test.txt /tmp/dir2 : 将dir1下的test.txt复制到dir2目录下
(2)cp -rp /tmp/dir1/test.txt /tmp/dir2 : 将dir1下的test.txt复制到dir2目录下,并且保留原有文件属性
(3)cp -r /tmp/dir1/test.txt /tmp/dir2/test2.txt :将dir1下的test.txt文件复制到dir2目录下,并修改文件名称为test2.txt
1.1.3.2 剪切/移动文件、改名:mv
# 命令描述
(1) 名称: mv
(2) 英文原意: move
(3) 所在路径: /bin/mv
# 执行权限:所有用户
# 语法:
mv [源文件或目录] [目标目录]
# 功能描述 :剪切、移动文件,改名
# 示例
(1)mv /tmp/dir1/data.txt /tmp/dir2/ : 将文件data.txt 移动到dir2目录下
(2)mv data.txt data2.txt :在同一一个目录下对一个文件进行改名操作
(3)mv /tmp/dir1/data.txt /tmp/dir2/data2.txt : 将文件data.txt 移动到dir2目录下,并修改名称为data2.txt
1.1.3.3 删除文件/目录 : rm
# 命令描述
(1) 名称: rm
(2) 英文原意: remove
(3) 所在路径: /bin/rm
# 执行权限:所有用户
# 语法:
rm -rf [文件名或目录名]
-r 删除目录
-f 强制执行删除(不询问)
# 功能描述 :删除文件、删除目录
# 示例
(1)rm -rf dir1 :强制删除(即不需要确认操作)dir1目录及其下的所有文件
(2)rm /tmp/data.txt : 删除data.txt文件
(3)rm -r /tmp/dir : 删除dir目录
1.1.3.4 新建文件: touch
# 命令描述
(1) 名称:touch
(2) 所在路径: /bin/touch
# 执行权限:所有用户
# 语法:
touch [文件名]
# 功能描述 :创建新(空)文件
# 示例
(1)touch data.txt : 在当前目录创建data.txt文件
(2)touch /tmp/data.txt : 在tmp目录下创建data.txt文件
(3)touch "profram files" : 创建文件名带空格的文件 (要用双引号 ” “ 括起来)
1.1.3.5 显示文件内容: cat 正向、tac反向
# 命令描述
(1) 名称:tac 、cat
(2) 所在路径: /bin/tac /bin/cat
# 执行权限:所有用户
# 语法:
cat [文件名]
tac [文件名]
# 功能描述 :显示文件内容
-n 显示行号
# 示例
(1)cat /tmp/data1.txt : 正向显示data1.txt的文件内容
(2)tac /tmp/data1.txt : 反向显示data1.txt的文件内容
# 缺点:
仅适用短文件,因为用该命令浏览长文件的话会一下加载完,最后只能看到最后一屏的文件内容,且不支持滚动 ,拓展:可以使用more分页显示内容命令
示例图片:
1.1.3.6 向下单向分页显示文件内容: more
# 命令描述
(1) 名称:more
(2) 所在路径: /bin/more
# 执行权限:所有用户
# 语法: more [文件名]
进入more命令之后,可以根据以下进行操作
(1) 空格键 或者 f键 : 翻页
(2) Enter 键 : 换行
(3) q 或者 Q : 退出more命令
# 功能描述 :分页显示文件内容
# 示例
(1)more /tmp/data.txt
# 缺点:
more 命令只能往下翻页浏览,不能往上翻页浏览
1.1.3.7双向分页显示文件内容: less
# 命令描述
(1) 名称:less
(2) 所在路径: /bin/less
# 执行权限:所有用户
# 语法: less [文件名]
进入less命令之后,可以根据以下进行操作 ,more命令能做的less同样可以做,以下只列出less命令下的其他额外操作
(1) PageUp 键 : 往上翻页
(2) 向上 键 : 向上换行
(3) /key : 斜杠 + 关键字可以在文件中搜索关键信息, 按 n 可以查看下一个出现关键词的位置
# 功能描述 :双向分页显示文件内容
# 示例
(1)more /tmp/data.txt
# 缺点:
more 命令只能往下翻页浏览,不能往上翻页浏览
1.1.3.8 查看指定文件头尾几行的内容: head 、 tail
# head 查看开始的n行
示例:head -n 7 /tmp/data.txt : 查看文件data.txt的前7行内容
# tail 查看倒数的n行 :可以动态变化,即当正在查看的文件,在其他位置插入内容时,tail打开的文件也会动态加载显示
示例:tail -n 7 /tmp/data.txt : 查看文件data.txt的倒数7行内容
1.1.4 链接命令(ln)
# 命令描述
(1) 名称:ln
(2) 所在路径: /bin/ln
(3) 英语原意: link
# 执行权限:所有用户
# 语法:
(1)创建硬链接: ln [源文件] [目标文件]
(2)创建软链接: ln -s [源文件] [目标文件]
# 功能描述 :
创建链接文件 :
(1)软连接 :相当于Windows的快捷方式
(2) 硬连接 :相当于 拷贝+同步更新
# 示例
(1)ln -s /tmp/data.txt tdata : 给文件/tmp/data.txt 创建名称为tdata的软链接,类似于创建一个data.txt的快捷方式
(2)ln -s /tmp/data.txt data.copy : 给文件/tmp/data.txt 创建名称为data.copy的链接,类似于创建一个data.txt的备份(能同步更新)
# 硬连接特征:
(1)拷贝 + 同步更新
(2)怎么辨别是硬连接?通过ls -i 命令查看节点可以判断,硬连接的文件与其源文件的节点都是一样的,而软连接则不是
(3)不能跨分区创建硬连接,但可以跨分区创建软链接
(4)不能针对目录来创建硬连接
1.2 权限管理命令(chmod)
1.2.1 权限管理命令: chmod
# 命令描述
(1) 名称:chmod
(2) 所在路径: /bin/chmod
(3) 英语原意: change the permissions mode of a file
# 执行权限:文件所有者、root用户
# 语法:
chmod [{u、g、o、a} {+、-、=} {r、w、x}] [文件或目录]
[mode = 421] [文件或目录]
-R 递归修改
1. 理解:{u、g、o 、a} :
(1)u: user,即文件的所有者
(2)g :group, 即文件的所属组
(3)o :other,即其他用户
(4)a : all ,即所有用户
2. 理解:{+、-、=} :
(1) + :即在原先基础上再添加权限
(2) - :去除某种权限
(3) = :修改权限,即不管之前是什么,现在就直接修改为当前的权限。
3. 理解: {r、w、x}:
(1)r : read,文件读权限
(2)w : write,文件写权限
(3)x : exe , 文件执行权限
# 功能描述 :改变文件或目录的权限
# 权限的数字表示:
r -----4
w -----2
x------1
# 示例
(1)chmod u-rw data.txt :去掉文件所有者的r、w权限,即去除其读写的权限
(2)chmod 764 data.txt : 设定权限,类似于 rwxrw-r--权限
(3)chmod -R 777 /tmp/a/b : 递归修改权限,这里是将文件夹a、b的权限都修改为777
(4)chmod 777 /tmp/a : 只修改a目录的权限为 777
1.2.2 文件目录权限总结表 *
代表字符权限对文件的定义对目录的定义
r读权限可以查看文件的内容(cat、tail、head、more、less)可以列出目录的内容:(ls)w写权限可以修改文件的内容 (vim)可以在目录中创建文件、删除文件(touch、mkdir、rmdir、rm)x执行权限可以执行文件 (script、command)可以进入目录
1.2.3 其他权限管理命令
1.2.3.1 更改文件所有者 : chown
# 命令描述
(1) 名称:chown
(2) 所在路径: /bin/chown
(3) 英语原意: change file ownership
# 执行权限:所有用户
# 语法:
chown [用户名] [文件或目录]
# 功能描述 :
改变文件或者目录的所有者
# 示例
(1)chown lcm data.txt : 将文件data.txt的所有者更改为用户 lcm
# 谁可以改变文件的所有者?
只有管理员root可以改变!!!
1.2.3.2 更改文件的所属组:chgrp
# 命令描述
(1) 名称:chgrp
(2) 所在路径: /bin/chown
(3) 英语原意: change file group
# 执行权限:所有用户
# 语法:
chown [用户组] [文件或目录]
# 功能描述 :
改变文件或者目录的所属组
# 示例
(1)chown lcmfamily data.txt : 将文件data.txt的所属组更改为 lcmfamily
1.2.3.3 显示文件的缺省权限:umask
# 命令描述
(1) 名称:umask
(2) 所在路径: Shell内置命令
(3) 英语原意: the user file-creation mask
# 执行权限:所有用户
# 语法:
umask [-S] : 以rwx的形式显示新建文件的缺省权限(或者说默认权限有哪些)
# 功能描述 :
显示、设置文件的缺省权限
# 示例
(1)umask -S
(2)umask : 获取新创建文件的缺省权限的代码 (与777进行逻辑与) 如 022 表示 --- -w- -w-
(3)umask 077 : 修改新建文件的缺省权限为 rwx --- --- (目录) 、rw- --- ---(文件)
示例:
# 由上图可知:
(1)新创建的目录的缺省权限为 : rwxrwxr_x
(2)新创建的文件的缺省权限为 : rw_rw_r__
# 可见:新创建的文件是没有x权限,即无执行权限的
1.3 文件搜索命令
1.3.1 文件搜索命令 find
# 命令描述
(1) 名称:find
(2) 所在路径: /bin/find
# 执行权限:所有用户
# 语法:
find [搜索范围] [匹配条件]
# 功能描述 :文件、目录查找搜索
1.3.1.1 根据文件名称查找文件 find -name 、find -iname
(1)根据文件名称搜索 :find /tmp -name init : 在目录/tmp 中搜索文件init 此处为精准搜索
find /tmp -iname init : 不区分大小写的搜索
(2)根据文件名称模糊搜索 :
* 号 匹配n个字符
?号 匹配单个字符
示例:
find /tmp -name *init* : 在目录/tmp 中搜索文件名中含有 init字符的文件 此处为模糊查询
(3)根据文件首字母+确定的n的字符匹配查询: ?表示单个字符
find /tmp -name data? : 在/tmp 目录下查询以data开头的并且末尾还有一个字符的文件
find -name data?.txt : 在当前目录下查询 data?.txt文件 ,其中?匹配单个字符
1.3.1.2 根据文件大小查找文件 find -size
# 文件大小单位换算: linux文件最小单位为数据块
以数据块来为最小换算单位, 1数据块=512字节 = 0.5K, 例如 204800数据块 = 102400Kb = 100Mb
# 语法 :find [文件目录] -size [文件大小]
+n 大于 :如 +204800 表示大于100Mb的
-n 小于 :如 -204800 表示小于100Mb的
n 等于 :如 204800 表示等于100Mb的
# 示例:
find / -size +204800 :在根目录下查找【大于204800数据块 (即100Mb)】的文件
1.3.1.3 根据文件所有者、所属组查找文件 find -user 、find -group
# 根据文件所有者查找文件:
(1)find /home -user lcm :在目录/home下查找所有者为lcm的文件
# 根据所属组来查找文件:
(1)find /home -group lcmfamily : 在目录/home下查找所属组为lcmfamily的文件
1.3.1.4 根据文件时间属性查找文件 find -cmin | -amin | -mmin
# 时间单位: 时间最小单位min,即分钟
# 语法 : find [文件目录] [时间属性] [时间]
-amin (access) 访问时间
-cmin (change) 文件属性
-mmin (modify) 文件内容
# 示例
find /tmp -cmin -5 : 在目录/tmp下查找【5分钟内】被修改过【属性】的文件和目录
find /tmp -mmin +5 : 在目录/tmp下查找被修改过【文件内容】并且【超过5分钟】的文件和目录
1.3.1.5多条件文件查询 (and 、or )
# -a 两个条件同时满足 (and 即逻辑与)
示例:
find /tmp -size +8 -a -name dir* : 在目录/tmp下查找大于8Kb 且 文件名以dir开头的文件/目录
# -o 多个条件满足任意一个即可(or 即逻辑或)
示例:
find /tmp -size +8 -o -name dir* : 在目录/tmp下查找大于8Kb 或 文件名以dir开头的文件/目录
1.3.1.6 根据文件类型查找文件 find -type
# 可选的类型
(1)f 文件 (2)d 目录 (3)l 链接文件
# 示例
find /tmp -type f : 在目录/tmp下查找所有的文件
1.3.1.7 对查找结果进行其他的命令操作 … -exec 命令 {} ;
# 语法:
find [文件目录] [查询类型] [查询条件] -exec/-ok 命令 {} \;
-exec 不需要确认
-ok 会有确认的选项,例如对查询结果进行删除时,用-ok可以询问是否执行删除操作
# 示例:
示例:
find other -name dir4 -exec ls -l {} \; : 在当前目录的other目录下查找名称为dir4的文件,并列出其详细信息
1.3.1.8 根据文件的节点查询文件 find -inum
# 语法:
find [文件目录] -inum [节点值]
# 示例:
示例:
find . -inum 31531 -exec rm {} \; : 在当前目录下查找节点值为31521的文件,并删除。
1.3.2 其他搜索命令
1.3.2.1 在文件资料库中查找文件 :locate
# 命令描述
(1)命令名称:locate
(2)命令所在路径: /usr/bin/locate
# 执行权限: 所有用户
# 功能描述:
在 [文件资料库] 中查找文件,类似于在一个文件索引数据库来查找,而不是从整个分区上面找,因此查询速度会非常快,类似于window的everything
# 范例:
(1)locate data.txt : 快速查找data.txt文件 (得到的是文件的路径)
(2)locate -i data.txt : 不区分大小写查找
1.3.2.2 查找命令的绝对路径,还能查到他的别名 : which
# 命令描述
(1)命令名称:which
(2)命令所在路径: /usr/bin/which
# 执行权限: 所有用户
# 功能描述:
查找一个命令的绝对路径,也可以获取他的别名(如果有的话)
# 范例:
(1)which mkdir : 查找命令mkdir的绝对路径 --> /usr/bin/which
(2)which rm : 查找命令rm的绝对路径
1.3.2.3 查找命令的绝对路径,以及帮助文档 : whereis
# 命令描述
(1)命令名称:whereis
(2)命令所在路径: /usr/bin/whereis
# 执行权限:所有用户
# 功能描述:
查找一个命令的绝对路径,同时查询他的帮助文档
# 范例:
(1)whereis mkdir : 查找命令mkdir的绝对路径和帮助文档的位置
1.3.2.4 在文件内容中查找到指定字符串所在对应行 : grep
# 命令描述
(1)命令名称:grep
(2)命令所在路径: /bin/grep
# 执行权限: 所有用户
# 功能描述:
在文件中搜寻字符串匹配的行并输出
-i 不区分大小写
-v 排除指定字符串
# 范例:
(1)grep mysql /root/install.log : 在文件install.log文件中查找关键字 mysql 所在的行并输出。
(2)grep -i msyql /root/install.log : 不区分大小写查找
(3)grep -v $ mysql /root/install.log : 屏蔽特定字符串 如$ ,且含关键词mysql的所在行,并输出
1.4 帮助命令
1.4.1 获取命令的帮助信息: man
# 命令描述
(1)命令名称:man
(2)命令所在路径: /usr/bin/man
(3)原意:manual
# 执行权限: 所有用户
# 语法: man [命令或者配置文件]
# 功能描述:
获得帮助信息
# 范例:
(1)man ls :查看ls命令的帮助信息
(2)man services :查看配置文件services 的帮助信息 ,注意,查看配置文件的话,不需要输入他的绝对路径,只需要输入他的文件名称即可
1.5 用户管理命令
1.6 压缩解压命令
1.7 关机重启命令
本文整理自 (史上最牛的Linux视频教程—兄弟连)