Linux学习 基础篇
1 Vi和Vim编辑器
//新建文本文件,若改文件名存在,则为打开该文件 [vim 文件名]
(1) vi和vim常用的三种模式
<1> 正常模式
//只可以浏览。
<1.1> 插入模式下:输入 [esc]
<1.2> 命令行模式下:输入 [esc]
<1.3> 在这个模式中,可以使用『上下左右』按键来移动光标,可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理文件数据。
<2> 插入模式
//可以写入内容。
<2.1> 正常模式下:按下i,I,o,O,a,A,r,R等任何一个字母之后进入编辑模式, 一般来说按 [i](insert) 即可。
<2.2> 命令行模式下:输入 [esc] 再输入 [:] ,进入命令行模式。
<2.3> 返回正常模式:输入 [esc] ,先进入正常模式,再输入 [i]。
<3> 命令行模式
//用来输入命令。
<3.1> 正常模式下:输入 [:]。
<3.2> 插入模式下:输入 [esc] ,先进入正常模式,再输入 [:] 。
<3.3> 返回正常模式:输入 [esc]
<3.4> 在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显行号等的动作则是在此模式中达成的!
(2) vi和vim快捷键
<1> 拷贝当前行 [yy](copy)(若拷贝当前行向下的5行 [yy5] ,并粘贴 [p],一般模式下 )
<2> 删除当前行 [dd](delete)(若删除当前行向下的5行 [5dd],一般模式下 )
<3> 到达该文档的最末行 [G] 和最首行 [gg](一般模式下)
<4> 撤销动作 [u](一般模式下)
<5> 快速到达特定行 [行数+G](一般模式下)
<6> 保存修改[:w](write) 强制写入只读文件[:w!] 离开[:q](quit) 离开但不保存[:q!] 储存后离开[:wq](插入模式下)
//即使没有权限也可以强制写入,写入后文件的所有者会变成强制修改的用户。
<7> 在文件中查找某个单词 [/关键字](查找下一个 [n](next) ,在命令行模式下)
<8> 设置文件的行号 [:set nu](number) 取消文件的行号 [:set nonu](命令行模式下)
2 开机、重启和用户登录注销
(1) 关机&重启命令
//虽然目前的shutdown/reboot/halt等命令均已经在关机前进行了sync,不管是重启系统还是关闭系统,首先要运行 sync命令,把内存中的数据写到磁盘中。
<1> 立该进行关机 [shutdown –h now](halt)
<2> 1分钟后会关机 [shudown -h 1]
//直接输入shutsdown,默认是1分钟后关机。
<3> 现在重新启动计算机 [shutdown –r now](reboot)
<4> 立该进行关机 [halt]
<5> 现在重新启动计算机 [reboot]
<6> 把内存的数据同步到磁盘 [sync]
(2) 用户登录和注销
//用户登录时默认到家目录/home/用户名
<1> 切换成系统管理员身份 [su - 用户名]
//[su 用户名] 只是使用该用户权限,并未切换用户。
//[logout] 注销指令在图形运行级别无效
<2> 即可注销用户 [logout]
3 用户管理
(1) 添加用户 [useradd 用户名]
//当创建用户成功后,会自动的创建和用户同名的家目录/home/用户名/
(2) 指定/修改密码 [passwd 用户名]
//若不添加用户名则修改当前用户密码。
(3) 删除用户但是要保留家目录[userdel 用户名] 删除用户以及用户主目录[userdel -r 用户名]
//一般情况下,我们建议保留家目录。
(4) 查询用户信息指令 [id 用户名]
(5) 切换用户 [su - 用户名] //从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
//su root只是使用root权限,并未切换root用户。
(6) 查看当前用户[whoami] 查看初次登录用户[who am I]
(7) 用户组
//详细观 5 组管理和权限管理
<1> 新增组 [groupadd 组名]
<2> 删除组 [groupdel 组名]
<3> 增加用户时直接加上组 [useradd –g 用户组 用户]
//新建用户时不加组,默认新建一个与用户名相同的组,并加入用户。
<4> 修改已有用户的组 [usermod –g 用户组 用户名]
(8) 用户和组相关文件
<1> /etc/passwd文件 [cat /etc/passwd]
<1.1> 用户(user)的配置文件,记录用户的各种信息
<1.2> 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
<2> /etc/shadow文件
<2.1> 口令的配置文件
<2.2> 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
<3> /etc/group文件
<3.1> 组(group)的配置文件,记录 Linux 包含的组的信息
<3.2> 每行含义:组名:口令:组标识号:组内用户列表
4 实用指令
(1) 指定运行级别
<1> 运行级别[0]:关机[1]:单用户【找回丢失密码】[2]:多用户状态没有网络服务[3]:多用户状态有网络服务[4]:系统未使用保留给用户[5]:图形界面[6]:系统重启
<2> 命令 [init 运行级别]//暂时性的
<3> CentOS7后默认运行级别//永久性的
<3.1> 查看当前默认运行级别 [systemctl get-default]
<3.2> 设置默认运行级别 [systemctl set-default 运行级别.target]
//multi-user.target: 代指运行级别3
//graphical.target: 代指运行级别5
(2) 找回 root 密码
(3) 帮助指令
<1> 获得帮助信息 [man 命令或配置文件](manual)
<2> 获得shell内置命令的帮助信息 [help 命令]
(4) 文件目录类
<1> 显示当前工作目录的绝对路径 [pwd](print working directory)
<2> 查看当前目录的所有内容信息 [ls 选项 目录](list)
//可连起来用 [ls -al]
//文件名前加.,即可隐藏文件。
-a(all):显示当前目录所有的文件和目录,包括隐藏的
-l(line):以列表的方式显示信息
//“ll”命令指的是“ls -l”命令,它是“ls -l”命令的一个别名。
-h(human):以更人性化方式展现
<3> 切换到指定目录 [cd 目录]
//绝对路径或相对路径
回到自己的家目录:[cd ~]
回到当前目录的上一级目录:[cd ..]
<4> 创建目录 [mkdir 选项 目录](make directory)
-p:创建多级目录
<5> 删除目录 [rmdir 选项 目录](remove directory)
//如果需要删除非空目录,需要使用rm -rf要删除的目录(recursive force)
<6> 创建空文件 [touch 文件名称]
<7> 拷贝文件到指定目录 [cp 选项 源目录 目的目录](copy)
//强制覆盖不提示的方法:[\cp 选项 源目录 目的目录]
-r(recursive):递归复制整个文件夹
<8> 移除文件或目录 [rm 选项 文件名或目录](remove)
//是y(yes),否n(no)。
-r(recursive):递归删除整个文件夹
-f(force):强制删除不提示
<9> 重命名 [mv 文件名 新文件名]
//文件必须在当前目录下。
<10> 移动文件与目录 [mv 源目录 目的目录]
<11> 查看文件内容 [cat 选项 文件名]
//只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more
-n(number):显示行号
<12> 分页查看文件的内容 [more 文件名]
space:向下翻一页
Enter:向下翻一行
Ctrl+F:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行的行号
:f:输出文件名和当前行的行号
q:退出more
<13> 分屏查看文件内容 [less 文件名]
//不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
space:向下翻一页
pagedown:向下翻动一页
pageup:向上翻动一页
/关键字:向下搜寻关键字的功能
n:向下查找
N:向上查找
?关键字:向上搜寻关键字的功能
n:向上查找
N:向下查找
q:退出less
<14> 输出内容到控制台 [echo 选项 输出内容]
<15> 显示文件的开头部分内容 [head 文件名]
//默认情况下head指令显示文件的前10行内容。
//可以写入内容。
查看文件前几行内容 [head -n 行数 文件名]
<16> 显示文件中尾部的内容 [tail 文件名]
//默认情况下tail指令显示文件的前10行内容。
//可以写入内容。
查看文件后几行内容 [tail -n 行数 文件名]
实时追踪该文档的所有更新 [tail -f 文件名]
<17> 输出重定向(覆盖) [命令>文件名]
//将命令的输出覆盖写入到文件中。
<18> 追加 [命令>>文件名]
//将命令的输出追加写入到文件中。
<19> 给原文件创建一个软链接 [ln -s 文件名或目录 软链接名]
//通过ln -s创建链接时,必须使用绝对路径,否则会出错,Linux符号连接的层数过多。
<20> 显示所有的历史命令 [history]
显示特定数目的历史命令 [history 条数]
执行特定历史编号的指令 [!条数]
(5) 时间日期类
<1> 显示当前日期 [date]
显示当前年份 [date +%Y]
显示当前月份 [date +%m]
显示当前是哪一天 [date +%d]
显示年月日时分秒 [date "+%Y-%m-%d %H:%M:%S"]
//若内容中间有空格则必须加引号。
<2> 设置日期 [date -s "时间"]
<3> 查看日历指令 [cal 选项]
//不加选项,显示本月日历。
查看某年日历 [cal 年份]
(6) 搜索查找类
<1> 从指定目录向下递归地遍历其各个子目录 [find 搜索范围 选项]
-name<文件名>:按照指定的文件名查找模式查找文件
-user<用户名>:查找属于指定用户名所有文件
-size<文件大小>:按照指定的文件大小查找文件(单位有 k,M,G)
+n:文件大于n
-n:文件小于n
n:文件等于n
<2> 快速定位文件路径 [updatedb][locate 文件名]
//所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
//利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。
//Locate 指令无需遍历整个文件系统,查询速度较快。
<3> 查看某个指令在哪个目录下 [which 命令]
<4> 过滤查找 [grep 选项 关键字 文件名]
//常在管道符“|”后,[cat hello.txt | grep yes]。
-n(number):显示匹配行及行号
-i(ignore):忽略字母大小写
(7) 压缩和解压类
<1> 压缩文件 [gzip 文件名]
//只能压缩单个文件,不能压缩文件夹。
//只能压缩文本文件。
//只能将文件压缩为*.gz 文件。
解压文件 [gunzip 文件.gz]
<2> 压缩文件和目录 [zip 选项 文件名.zip 文件名或目录]
-r(recursive):递归压缩,即压缩目录
解压缩文件 [unzip 选项 文件名.zip]
-d(directory)<目录>:指定解压后文件的存放目录
<3> 打包目录 [tar -zcvf 文件名.tar.gz 文件名或目录]
//可压缩多个文件,只需多加几个文件名或目录。
//tar既可打包也可解压。
解压目录 [tar -zxvf 文件名.tar.gz]//不指定解压目录。
解压目录 [tar -zxvf 文件名.tar.gz -C 目录]//指定解压目录。
//压缩后的文件格式.tar.gz。.tar代表打包,.gz代表压缩。
-c(create):产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z(zip):打包同时压缩/解压同时解包
//解压时,若文件为.tar.gz格式,则使用该选项;若文件为.tar格式,则不使用该选项,即[tar -xvf 文件名.tar.gz]。
//压缩时,若使用选项,文件为.tar.gz格式;若不使用该选项,文件为.tar格式。
-x(extract):解包.tar文件

浙公网安备 33010602011771号