前言:本文内容是在B站学习尚硅谷韩老师的Linux入门学习视频总结的笔记,特此声明。本文只用作自己学习使用,记录自己的学习过程。
教程链接尚硅谷韩老师的Linux入门学习视频
自己目前已经练习使用了178条指令,虽然很少,但是看着自己在进步,心情就是美丽的。
所有的 Linux 系统都会内建 vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
在正常模式下,我们可以使用快捷键。
以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用
『复制、贴上』来处理你的文件数据。
在模式下,程序员可以输入内容。
按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式, 一般来说按 i 即可
在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的!
使用 vim 开发一个 Hello.java 程序, 保存.步骤说明和演示
拷贝当前行 yy , 拷贝当前行向下的 5 行 5yy,并粘贴(p)。
删除当前行 dd , 删除当前行向下的 5 行 5dd
在文件中查找某个单词 [命令行下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ],查询
hello.
设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]
编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg],注意这些都是在正常模式下执行的。
在一个文件中输入 “hello” ,然后又撤销这个动作,再正常模式下输入 u
编辑 /etc/profile 文件,并将光标移动到 第 20 行 shift+g
第一步:显示行号 :set nu
第二步:输入 20 这个数
第三步: 输入 shift+g
*shutdown*
shutdown -h now : 表示立即关机
shutdown -h 1 : 表示 1 分钟后关机
shutdown -r now: 立即重启
*halt*
就是直接使用,效果等价于关机
*reboot*
就是重启系统。
*syn********c*
把内存的数据同步到磁盘
当我们关机或者重启时,都应该先执行以下 sync 指令,把内存的数据写入磁盘,防止数据丢失。
登录时尽量少用 root 帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份.
在提示符下输入 logout 即可注销用户
logout 注销指令在图形运行级别无效,在 运行级别 3 下有效.
运行级别这个概念,后面给大家介绍
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
Linux 的用户需要至少要属于一个组。
useradd [选项] 用户名
cd 表示 change directory, 切换目录.
(1) 当创建用户成功后,会自动的创建和用户同名的家目录
(2) 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
基本语法
passwd 用户名
应用案例
userdel 用户名
在删除用户时,我们一般不会将家目录删除。
id 用户名
在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如 root
su – 切换用户名
1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2)当需要返回到原来用户时,使用 exit 指令
类似于角色,系统可以对有共性的多个用户进行统一的管理。
groupadd 组 名
指令(基本语法)
groupdel 组 名
useradd -g 用户组 用户名
增加一个用户 zwj, 直接将他指定到 wudang
步骤看演示:
usermod -g 用户组 用户名
创建一个 shaolin 组,让将 zwj 用户修改到 shaolin
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
组(group)的配置文件,记录 Linux 包含的组的信息
运行级别说明:
0 :关机
1 :单用户【找回丢失密码】
2 :多用户状态没有网络服务
3 :多用户状态有网络服务
4 :系统未使用保留给用户
5 :图形界面
6 :系统重启
常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件
/etc/inittab 的 id:5:initdefault:这一行中的数字
init [012356]
案例 1: 通过 init 来切换不同的运行级别,比如动 5->3 , 然后关机
init 3
init 5
init 0
*如何找回* *root* *密码,如果我们不小心,忘记* *root* *密码,怎么找回。*
*思路:* 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。
演示一把(注意观察):
****总结********:****开机->在引导时输入 回车键-> 看到一个界面输入 e -> 看到一个新的界面,选中第二行(编辑内核)在输入 e-> 在这行最后输入 1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。
这时,我们就进入到单用户模式,使用 passwd 指令来修改 root 密码。
假设我们的 root 密码忘记了,请问如何找回密码
请设置我们的 运行级别,linux 运行后,直接进入到 命令行界面,即进入到 3 运行级别
vim /etc/inittab
将 id:5:initdefault:这一行中的数字, 5 这个数字改成对应的运行级别即可。
当我们对某个指令不熟悉时,我们可以使用 Linux 提供的帮助指令来了解这个指令的使用方法。
l 基本语法
man [命令或配置文件](功能描述:获得帮助信息)
l 应用实例
l 基本语法
help 命令 (功能描述:获得 shell 内置命令的帮助信息)
l 应用实例
百度帮助更直接
虽然上面两个都可以来获取指令帮助,但是需要英语功底,如果英语不太好的,我还是推荐大家直接百度靠谱。 ifconfig
• 基本语法
pwd (功能描述:显示当前工作目录的绝对路径)
• 应用实例
• 基本语法
ls [ 选 项] [目录或是文件]
• 常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息
• 应用实例
• 基本语法
cd [参数] (功能描述:切换到指定目录)
• 常用参数
绝对路径和相对路径
如何理解绝对路径和相对路径:
cd ~ 或者 cd :回到自己的家目录
cd … 回到当前目录的上一级目录
• 应用实例
案例 1:使用绝对路径切换到 root 目录
cd /root
案例 2: 使用相对路径到/root 目录
这里我们需要知道该用户目录在哪个目录下,才能写出这个指令,假设在/usr/lib
cd …/…/root
案例 3:表示回到当前目录的上一级目录
cd …
案例 4:回到家目录
cd
cd ~
9.4.4 mkdir 指令
mkdir 指令用于创建目录(make directory)
• 基本语法
mkdir [选项] 要创建的目录
• 常用选项
-p :创建多级目录
• 应用实例
案例 1:创建一个目录 /home/dog
案例 2:创建多级目录 /home/animal/tiger
l 介绍
rmdir 指令删除空目录
l 基本语法
rmdir [选项] 要删除的空目录
l 应用实例
rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录
touch 指令创建空文件
• 基本语法
touch 文件名称
• 应用实例
cp 指令拷贝文件到指定目录
• 基本语法
cp [选项] source dest
• 常用选项
-r :递归复制整个文件夹
• 应用实例
案例 1: 将 /home/aaa.txt 拷贝到 /home/bbb 目录下[拷贝单个文件]
案例 2: 递归复制整个文件夹,举例将/home/test 整个目录拷贝到 /home/zwj 目录
• 使用细节
可以通过 上下箭头的键,调出原来使用过的指令。
rm 指令移除【删除】文件或目录
• 基本语法
rm [选项] 要删除的文件或目录
• 常用选项
-r :递归删除整个文件夹
-f : 强制删除不提示
• 应用实例
案例 1: 将 /home/aaa.txt 删除
案例 2: 递归删除整个文件夹 /home/bbb
• 使用细节
强制删除不提示的方法:带上 -f 参数即可
mv 移动文件与目录或重命名
• 基本语法
mv oldNameFile newNameFile (功能描述:重命名) mv /temp/movefile /targetFolder (功能描述:移动文件)
• 应用实例
案例 1: 将 /home/aaa.txt 文件 重新命名为 pig.txt
案例 2:将 /home/pig.txt 文件 移动到 /root 目录下
cat 查看文件内容,是以只读的方式打开。
• 基本语法
cat [选项] 要查看的文件
• 常用选项
-n :显示行号
• 应用实例
案例 1: /etc/profile 文件内容,并显示行号
• 使用细节
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more
cat 文件名 | more [分页浏览]
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键,详见操作说明
• 基本语法
more 要查看的文件
• 操作说明
• 应用实例
案例: 采用 more 查看文件
/etc/profile
快捷键一栏
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
• 基本语法
less 要查看的文件
• 操作说明
• 应用实例
案例: 采用 less 查看一个大文件文件 /opt/金庸-射雕英雄传 txt 精校版.txt
快捷键
• 介绍
> 指 令 和 >> 指 令
> 输出重定向 : 会将原来的文件的内容覆盖
>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部。
• 基本语法
ls -l >文件(功能描述:列表的内容写入文件 a.txt 中(覆盖写))
说明:ls -l > a.txt , 将 ls -l 的显示的内容覆盖写入到 a.txt 文件,如果该文件不存在,就创建该文件。
ls -al >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
• 应用实例
案例 1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中
案例 2: 将当前日历信息 追加到 /home/mycal 文件中 [提示 cal ]
echo 输出内容到控制台。
• 基本语法
echo [选项] [输出内容]
• 应用实例
案例: 使用 echo 指令输出环境变量,输出当前的环境路径。
案例: 使用 echo 指令输出 hello,world!
head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
• 基本语法
head 文件 (功能描述:查看文件头 10 行内容)
head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)
• 应用实例
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。
• 基本语法
tail 文件 (功能描述:查看文件后 10 行内容)
tail -n 5 文件 (功能描述:查看文件后 5 行内容,5 可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新,工作经常使用)
• 应用实例
案例 1: 查看/etc/profile 最后 5 行的代码
案例 2: 实时监控 mydate.txt , 看看到文件有变化时,是否看到, 实时的追加日期
软链接指令,软连接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
• 基本语法
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
• 应用实例
案例 1: 在/home 目录下创建一个软连接 linkToRoot,连接到 /root 目录
案例 2: 删除软连接 linkToRoot
(之所以报资源忙,是因为如果带/会认为是把软链接目录下的文件删除,这是不允许的)
• 细节说明
当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在目录。
查看已经执行过历史命令,也可以执行历史指令
• 基本语法
history (功能描述:查看已经执行过历史命令)
• 应用实例
案例 1: 显示所有的历史命令
案例 2: 显示最近使用过的 10 个指令。
• 基本语法
date (功能描述:显示当前时间)
date +%Y (功能描述:显示当前年份)
date +%m (功能描述:显示当前月份)
date +%d (功能描述:显示当前是哪一天)
date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
• 应用实例
案例 1: 显示当前时间信息
案例 2: 显示当前时间年月日
案例 3: 显示当前时间年月日时分秒
• 基本语法
date -s 字符串时间
• 应用实例
案例 1: 设置系统当前时间 , 比如设置成 2018-10-10 11:22:22
查看日历指令
• 基本语法
cal [选项] (功能描述:不加选项,显示本月日历)
• 应用实例
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
• 基本语法
find [搜索范围] [选项]
案例 1: 按文件名:根据名称查找/home 目录下的 hello.txt 文件
案例 2:按拥有者:查找/opt 目录下,用户名称为 nobody 的文件
案例 :查找整个linux系统下大于20m +n 等于)
1m = 1024k
查询 / 目录下,所有 .txt 的文件
locaate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
• 基本语法
locate 搜索文件
• 特别说明
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
• 应用实例
案例 1: 请使用 locate 指令快速定位 hello.txt 文件所在目录
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
• 基本语法
grep [选项] 查找内容 源文件
• 常用选项
• 应用实例
案例 1: 请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号
My:案例 2:查找hello.txt的hello grep “hello” hello.txt
gzip 用于压缩文件(不能打包:压缩文件夹), gunzip 用于解压的
• 基本语法
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文 件.gz (功能描述:解压缩文件命令)
• 应用实例
案例 1: gzip 压缩, 将 /home 下的 hello.txt 文件进行压缩
案例 2: gunzip 压缩, 将 /home 下的 hello.txt.gz 文件进行解压缩
• 细节说明
当我们使用 gzip 对文件进行压缩后,不会保留原来的文件。
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
• 基本语法
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
• zip 常用选项
-r:递归压缩,即压缩目录
• unzip 的常用选项
-d<目录> :指定解压后文件的存放目录
• 应用实例
案例 1: 将 /home 下的 所有文件进行压缩成 mypackage.zip
案例 2: 将 mypackge.zip 解压到 /opt/tmp 目录下
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。
• 基本语法
tar [选项] xxx.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
案例 1: 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz
案例 2: 将/home 的文件夹 压缩成 myhome.tar.gz
案例 3: 将 a.tar.gz 解压到当前目录
案 例 4: 将 myhome.tar.gz 解压到 /opt/ 目录下
指定解压到的那个目录,事先要存在才能成功,否则会报错。