【1】linux@ubuntu:~$
用户名@计算机名:路径$
whoami:显示用户名
hostname:显示计算机名
pwd:显示当前路径的绝对路径
~:家目录 /home/linux
/: 根目录
【2】常用快捷方式:
- ctrl+shift+‘+’:放大
- ctrl+‘-’:缩小
- tab 补全
- clear、ctrl+l:清屏
【3】ls :list 显示当前路径下的文件
- ls -l:列出当前路径下文件的详细信息
- 文件类型:7 b(块设备)c(字符设备)d(目录directory)-(普通文件)l(链接文件)s(套接字socket)p(有名管道)
- 用户权限(r:可读 w:可写 x:可执行)
组权限 其他用户权限 链接数 用户名 组名 大小 最后一次修改时间 文件名
ls -lh:列出当前路径下文件的详细信息,带单位
ls -a:列出当前路径下的所有文件,包含隐藏文件,以.开头
【4】cd :实现路径改变 change directory
cd 某文件夹:跳转到某路径下
cd / :跳转到根目录
cd ~ :跳转到家目录
cd /home/linux
cd : 跳转到最顶层目录
cd … : 跳转到上一级路径
cd . : 在当前路径下跳转,无任何变化
cd - :跳转到上一次操作路径
【5】mkdir:创建文件夹
mkdir 文件夹名 :创建文件夹
mkdir -p aa/bb/cc : 嵌套的创建文件
rmdir 文件夹名:删除空文件夹
rm -rf 文件夹名:删除文件夹
【6】touch 文件名:创建普通文件
建议加上后缀
linux中区分大小写
rm 文件名:删除文件(会提示是否删除)
rm -f 文件名 : 直接删除,不会提示。
【7】cp:copy复制
cp 要复制的内容 目标路径
cp a.txt 17061 : 将文件a.txt复制到目录17061下
cp game 17061 -r:将文件夹game复制到17061下
cp a.txt b.txt :将a.txt复制为b.txt
【8】mv:move移动和重命名
mv 要移动的内容 目的地
mv aa.c block : 将文件aa.c移动到文件夹block下
mv test block :将文件夹test移动到block下
mv hello.c world.c : 重命名
【9】vim编辑器:
1、命令行模式:
- yy :复制一行
nyy :复制n行
dd :删除一行
ndd :删除n行
p :在光标所在行的下一行粘贴
u :撤销
ctrl+r :反撤销
2 .插入模式:
i:在光标前插入
- 底行模式:
:w 保存
:q 退出
:wq 保存并退出
: x 保存并退出
:q!强制退出
:w!强制保存
:1,7y 复制1-7行的内容
:1,7d 删除1-7行的内容
:%s/main/MAIN/g :将文中所有的main替换为MAIN
% :指所有行
s :替换模式
g :可选,如果有将每一行中所有内容替换,如果无,只替换一行中第一次出现的字符串
:noh 去除高亮显示
/word:在文中查找单词
n:翻页
【10】 cat 指令 :
cat 查看文件内容,是以只读的方式打开
基本语法:
cat 【选项】要查看的文件名
cat 【选项】要查看的文件名 | more 可以分页浏览
常用选项:
-n : 显示行号
【11】more 指令:
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
more指令内置了若干快捷键,详见操作说明
基本语法:
more 要查看的文件。
快捷键:
空格键(space) 代表向下翻一页
Enter 代表向下翻一行
q 代表立刻离开more , 不再显示该文件内容
ctrl+F 向下滚动一屏
ctrl+B 向上滚动一屏
= 输出当前行号
:f 输出文件名 和 当前行号
【12】less 指令:
less指令用来分屏查看文章内容,它的功能与more指令类似,
但是比more指令更加强大,支持各种显示终端。
less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,
而是根据需要加载的内容,对于显示大型文件具有较高的效率。
基本语法:
less 要查看的文件。
less指令用来分屏查看文章内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。 less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据需要加载的内容,对于显示大型文件具有较高的效率。
基本语法:
less 要查看的文件。
【13】> 指令 和 >> 指令:
> 输出重定向 : 会将原来的文件内容覆盖
>> 追加 : 不会覆盖原来的内容,而是追加到文件的尾部
基本语法:
ls -l>文件名(a.txt ) : 列表得内容写入到文件 a.txt 中(覆盖写)
ls -al>>文件名(a.txt ) : 列表的内容追加到文件 aa.txt 中
cat 文件1 > 文件2 : 将文件1的内容覆盖到文件2 ,(若 > 换为 >> ,则表示追加)
echo “内容”>> 文件 : 将双引号中的内容追加到 文件中,(若 >> 换为 > ,则表示覆盖)
案例:
1): 将 /home 目录下的文件列表 写入到 /home/info.txt 中
ls -l/home > /home/info.txt
2): 将当前日历信息 追加到 /home/mycal 文件中 [ 提示 cal ]
cal >> /home/mycal
【14】echo 指令:
echo输出内容收到控制台。
· 基本语法:
echo [选项] [输出内容]
· 案例:
1) : 使用 echo 指令输出环境变量,输出当前环境路径。
echo $PATH
2) : 使用 echo 指令输出 hello , world !
echo "hello world !"
【15】head 指令:
head用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
· 基本语法:
head 文件名 : 查看文件前10行的内容
head -n 5 文件名 : 查看文件前5行的内容,5可以是任何数。
【16】tail 指令:
tail 用于输出文件中尾部多的内容,默认情况下 tail 指令显示文件的后10行内容。
· 基本语法:
1): tail 文件 :查看文件后10行得内容
2): tail -n 5 文件 : 查看文件后 5 行的内容
3): tail -f : 实时追踪该文档的所有更新(工作中经常用)
【17】ln 指令:
软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件是我路径
· 基本语法:
ln -s [ 原文件或目录 ] [ 软链接名 ] (功能描述:给原文件创建一个软链接)
· 应用实例:
案例1. 在/home 目录下创建一个软链接 linkToRoot , 链接到 /root 目录
ln -s /root linkToRoot
案例2. 删除软链接 linkToRoot
· 细节说明
当我们使用pwd指令查看目录时,仍然看到的是软链接所在的目录。
【18】history 指令:
查看已经执行过的历史指令,也可以执行历史指令
· 基本语法:
history (功能描述: 查看已经执行过的历史指令)
· 应用实例:
案例1: 显示所有的历史命令
history
案例2: 显示最近使用过的10个指令
history 10
案例3:指令历史编号为66的指令
!66
【19】 时间日期类指令
data指令-显示当前日期
·基本语法:
1) : date 显示当前时间
2) : date "+%Y" 显示当前年份
3) : date "+%m" 显示当前月份
4) : date "+%d" 显示当前是哪一天
5) : date + "+%Y-%m-%d %H:%M:%S" 显示年月日 时分秒
data指令-设置当前日期
· 基本语法
date -s 字符串时间
· 应用实例
案例: 设置系统当前时间,比如设置成 2020-04-02 12:55:00
date -s "2020-04-02 12:55:00"
cal 指令-查看日历指令
· 基本语法:
cal [选项] 不加选项,显示本月日历
· 应用实例
案例1: 显示当前日历
cal
案例2: 显示2020年日历
cal 2020
【20】 搜索查找类指令
find指令
find指令将从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端。
·基本语法:
find [搜索范围][选项]
. 选项说明
选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-name<*.txt> 按照通配符查找,查找所有后缀名为 .txt 的文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件
· 应用实例:
案例1: 按照文件名: 根据名称查找/home 目录下的 hello.txt 文件
find /home/ -name hello.txt
案例2: 按拥有者: 查找/opt目录下,用户名为 nobody 的文件
find /opt -user nobady
案例3: 查找整个 linux 系统下大于 20M 的文件 (+n 大于 -n 小于 n 等于)
find / -size +20M
locate指令
local指令可以快速定位文件路径。 locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。 Locate指令无序遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新时刻。
·基本语法:
locate 搜索文件
· 特别说明:
由于locate指令基于数据库进行查询,所以第一次运行前,
必须使用updatedb 指令创建locate数据库。
· 应用实例:
案例1: 请使用locate指令快速定位 hello.txt 文件所在目录。
locate hello.txt
grep指令 和 管道符号 |
grep 过滤查找, 管道符号“|” ,表示将前一个命令的处理结果输出传递给后面的命令处理。
· 基本语法:
grep [选项] 查找内容.源文件
. 常用选项
选项 功能
-n 显示匹配行和行号
-i 忽略字母大小写
· 应用实例
案例1 : 请在 hello.txt 文件中,查找“yes”所在行,并显示行号。
cat hello.txt | grep -n yes
若不区分 yes 的大小写:
cat hello.txt | grep -ni yes
【21】 压缩和解压缩指令
gzip / gunzip 指令
gzip 用于压缩文件(文件压缩后不会保留 原来的文件), gunzip用于解压
· 基本语法:
gzip 文件 压缩文件,只能将文件压缩为 *.gz文件
gunzip 文件.gz 解压缩文件命令
· 应用实例:
案例1:gzip压缩,将/home 下的hello.txt 文件进行压缩
gzip hello.txt
案例2: gunzip压缩,将/home 下的 hello.txt.gz 文件进行解压缩
gunzip hello.txt.gz
zip / unzip 指令
zip 用于压缩文件, unzip 用于解压的 , 这个在项目打包发布中很有用的
· 基本语法:
zip [选项] XXX.zip 将要压缩的内容 (压缩文件和目录的命令)
unzip [选项] XXX.zip 要解压缩的文件
· zip常用选项
-r : 递归压缩,即压缩目录
· unzip的常用选项
-d <目录> : 指定解压后文件存放的目录
· 应用实例
案例1 : 将/home 下的 所有文件进行压缩成 mypackage.zip
zip -r mypackage.zip /home/
案例2 : 将 mypackage.zip 解压到 /opt/tmp 目录下。
unzip -d /opt/tmp mypackage.zip
tar 指令
tar 指令是打包指令 , 最后打包后的文件是 .tar.gz 的文件。
· 基本语法
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
. 基本语法:
tar [选项] XXX.tar.gz 打包的内容 (功能描述: 打包目录,压缩后的文件格式 .tar.gz)
. 选项说明
选项 功能
-c 产生 .tar 打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包 .tar 文件
. 应用实例
案例1:压缩多个文件,将/home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz
tar -zcvf a.tar.gz a1.txt a2.txt
案例2:将/home 的文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
案例3:将a.tar.gz 解压到当前目录
tar -zxvf a.tar.gz
案例4:将 myhome.tar.gz 解压到 /opt 目录下
tar -zxvf myhome.tar.gz -c /opt/
【22】 组管理和权限管理
文件 / 目录 所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
文件所在的组 不一定是 文件所有者所在的组
· 查看文件的所有者
1): 指令: ls -ahl
· 案例:
创建了一个组police , 再创建一个用户tom , 将tom放在police组,然后使用tom创建一个文件 ok.txt , 看看情况如何。
groupadd police
useradd -g police tom
su tom
touch ok.txt
ls -ahl
· 修改文件所有者
1) :指令 : chown 用户名 文件名
· 案例:
要求: 使用root 创建一个文件apple.txt , 然后将其所有者修改为 tom
touch apple.txt
ls -l
chown tom apple.txt
组的创建
· 基本指令
groupadd 组名
· 应用实例
创建一个组 monster
groupadd monster
创建一个用户 fox ,并放入到 monster组中
useradd -g monster fox
组的创
· 基本指令
chgrp 组名 文件名
· 应用实例
使用root用户创建文件 orange.txt , 看看当前这个文件属于哪个组,
然后将这个文件所在组,修改到police组
touch orange.txt
chgrp police orange.txt
其他组
除文件的所有者和所在组的用户外,系统其它的用户都是文件的其他组
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。
· 改变用户所在组
1): usermod -g 组名 用户名
2): username -d 目录名 用户名 改变该用户登录的初始目录
· 应用实例
创建一个土匪组(bandit) 将 tom 这个用户从原来所在的 police 组,
修改到 bandit(土匪组)
id tom
groupadd bandit
usermod -g bandit tom
id tom