前期背景:
开源:
操作系统是一款做软硬件管理的软件
作用:使计算机更好用(游戏流畅,不卡顿)
操作系统贯穿始终:
Linux版本:
Linux应用场景
- 互联网公司的服务器后端
- 智能设备
- 嵌入式
安装方式
- 裸机安装或双系统 —— 不推荐
- 虚拟机安装 —— 不推荐
- 云服务器 —— 推荐
腾讯云/阿里云 -> 云服务器 -> 轻量应用服务器 -> 系统镜像-> CentOS7.6
Xshell下载路径
使用Xshell远程登陆Linux
在终端下敲
ssh 用户名@域名
用户名:root/用root账号创建的普通用户名(下面讲)
域名:服务器的公网IP
指令就是可执行程序和我们自己写的代码编译好的程序没有区别
- 增加普通用户
adduser 用户名
指令:adduser kpl
(kpl就是用户名)- 给普通用户设置密码 (或更改普通用户密码)
passwd 用户名
指令:passwd kpl
(给用户kpl设置密码,设置时密码不回显)- 删除用户
userdel -r 用户名
指令:userdel kpl
(删除kpl用户)- 查看当前登陆账号的用户名
指令:whoami
复制:ctrl + (Fn) + insert
粘贴:shift + (Fn) + insert
win + x(打开终端,就可以在Windows中输入Linux指令)
Linux指令的所在位置:ls /usr/bin (使用ls指令(后面讲)可以查看该路径下的指令)
拓展:win+x
可以打开终端在Windows下输入Linux指令
语法:
tree [目录]
如果只有tree指令,就默认当前目录
使用tree指令需要安装:yum install -y tree
补充
文件 = 文件内容 + 文件属性
文件操作 = 对文件内容的操作 + 对属性的操作
ls 携带的选项和文件的属性相关
语法:
ls [选项] [目录或文件]
用法:
ls [目录]
- 列出改目录的所有子目录和文件。(如果只有ls指令,就默认当前目录)
ls [文件名]
- 显示文件名以及其它信息(根据选项)
ls相关指令使用展示:
初次之外还有以下常用选项:
- -i:显示i节点的索引信息
- -k:以k字节的形式表示文件的大小
- -n:用数字的UID,GID代替名称
- -r:对目录反向排序
- -t:以时间排序
- -s:大小排序
语法:
pwd
语法:
cd [目录名]
语法:
touch [选项] [文件名]
注意:
- 除了新建文件,还有别的功能,eg:change file timestamps(后面修改时间的博客介绍)
- 新建文件名可以任意,但是同一目录下不能重复
语法:
mkdir [选项] dirname
dirname可以任意取名,但是同一目录下不能一样
语法:
rmdir [选项] [dirname]
选项:
- -p:子目录被删除后如果父目录也变成空目录,连带父目录一起删除
注意:常使用的删除操作还是下面rm命令
语法:
rm [选项] [目录名/文件名]
选项:
- -f(force):强制删除
- -i:删除前逐一询问确认
- -r:删除目录及其下所有文件
语法:
man [选项] 命令
选项:
- -k:根据关键字搜索联机帮助
- num:只在第num章寻找
- -a:将所有章节的该内容展示出来,一次展示一章,按q退出显示下一章。直到搜索完毕
手册的功能:不可能记住所有参数,所以可以通过手册获取帮助
语法:
cp [选项] [源文件/目录] [目标文件/目录]
选项:
- -f或- -force:强行复制文件或目录,不论是否存在
- -i或- -interactive:先询问用户
- -r(R或recursive):递归处理
注意:
- 可以同时指定两个以上的文件或目录复制到一个已经存在的目录下,但是反过来就会发生错误。
- man手册需要安装。安装命令:
yum install -y man-pages
语法:
echo [选项] [字符串]
语法:
cat [选项] [文件]
选项:
- -b:对非空输出行编号
- -n:对输出的所有行编号
- -s:不输出多行空行
如果只有cat命令,什么都不加会从键盘读取,然后显示在屏幕上
- 显示器是一个只能输出的文件,只能在显示器上打印内容,而不能从显示器上读取内容。
- 键盘是一个只能输入的文件,只能在键盘上读取内容,而不能往键盘上输出内容。
- 普通文件可写可读
输出重定向:向普通文件里写入分为两步
- 清空文件
- 写入新内容
追加重定向:向普通文件里写入
- 不清空文件
- 向文件结尾写入
注意:- echo写入后自动换行,如果不想换行可以使用printf,printf不加换行符是不会换的
在上面说cat指令时,说单独的cat会从键盘读,然后写到显示器上。
输入重定向的作用:从指定文件读取然后显示在显示器中
语法:
mv [选项] [源文件或目录] [目标文件或目录]
选项:
- -f:强制
- -i:如果目标文件已存在时,就会询问是否覆盖
whoami:查看当前登陆的用户。单独执行
which:查看对应指令的路径。
语法:which [指令]
输出10000行的hello Linux [序号] 到test.txt文件中:
cnt=1;while [ $cnt -le 10000 ]; do echo hello Linux $cnt; let cnt++; done > test.txt
cat适合看小文本不适合看大文本
语法:
more [-选项] [-num] [+/pattern] [+linenum] [fileNames..]
选项:
- -num 一次显示的行数
- +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
- +num 从第 num 行开始显示
按键:
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
less与more类似,但是更具有弹性。less可以随意浏览,而more仅只能向前移动,less在查看之前不会加载整个文件。less的功能及其强大。
语法:
less [参数] [文件]
选项:
- -i:搜索时忽略大小写
- -N:显示每一行的行号
- /字符串:向下搜索字符串的功能
- ?字符串:向上搜索字符串的功能
按键:
- n:重复前一个搜索(与/、?有关)
- N:反复重复前一个搜索(与/、?有关)
- pageup、pagedown: 上下翻页
语法:head [参数] [文件]
选项:
- -n:显示的行数
语法:
tail [必要参数] [选择参数] [文件]
选项:
- -f:循环读取(可以查看最新内容)
- -n:显示行数。
语法:
date [选项] [+格式]
- date -s //设置当前时间,只有root权限可以设置
- date -s 20231212 //设置成20231212,这样会把具体时间设置成空00:00:00
- date -s 01:01:01 //设置具体时间,不会对日期进行更改
- date -s “01:01:01 20231212” //这样可以设置全部时间
- date -s “01:01:01 2023-12-12” //这样可以设置全部时间
- date -s “20231212 01:01:01” //这样可以设置全部时间
- date -s “2023-12-12 01:01:01” //这样可以设置全部时间
时间->时间戳 — 语法:
date +%s
时间戳->时间 — 语法:date -d@时间戳
语法:
cal [参数] [月份] [年份]
注意:
如果只有一个参数,则表示年份。
选项:
- -j:显示当年的第几天
- -y:显示当前年份的日历
- -3:展示上一个月,当前月和下一个月的日历
语法:
find [路径] [选项] [文件名]
功能:
- find:search for files in a directory hierarchy
- whereis:locate the binary, source, and manual page files for a command
语法:
grep [选项] [搜索字符串] [文件]
选项:
- -i:忽略大小写的不同
- -n:输出行号
- -v:反向选择(显示没有要搜索的字符串的内容)
指定目录查找:
zip/unzip需要安装:
- 安装指令:
yum install -y zip unzip
语法:
- zip:
zip 压缩文件.zip 目录或文件
- unzip:
unzip 压缩文件.zip -d 路径
选项:- -r:递归处理
语法:
tar [选项] 文件与目录...[参数]
选项:
- -c:建立一个压缩文件的参数指令(create)
- -x:解开一个压缩文件的参数指令
- -t:查看tarfile里面的文件
- -z:是否同时具有gzip的属性?护着说是否需要用gzip压缩
- -j:是否同时具有bzip2的属性?护着说是否需要用bzip2压缩
- -v:压缩的过程显示文件(不建议用在背景执行过程)
- -f:使用档名。(注意:f之后需要直接跟档名,不能再加参数)
- -C:解压到指定目录
语法:
uname [选项]
选项:
- -a或-all:详细输出所有信息。
语法:
free [选项] [-s <间隔秒数>]
最后一个[]内容可加可不加。
选项:
- -b:以Byte为单位显示内存使用情况。
- -k:以KB为单位显示内存使用情况。
- -m:以MB为单位显示内存使用情况。
- -h:以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:B、K。M、G、T。
- -s<间隔秒数>:持续观察内存使用状况。
语法:
df [选项] [文件]
选项:
- -i:inode资讯,不列出已使用 block
- -h:使用人可读的格式
不进行详细介绍
语法:
ps [选项]
语法:
history
单输入该命令默认显示1000条指令
[Tab]按键——具有命令补齐和档案补齐功能
[Ctrl+c]按键——让当前的程序停掉
[Ctrl+d]按键——键盘输入结束的意思,exit
[Ctrl+r]按键——历史命令搜索
请尽量习惯阅读英文,所以我在指令的介绍中功能部分用英文介绍。当然也有演示所以不用担心看不懂,但是尽量尝试阅读
指令虽多,不需硬记,多用即可,忘记再翻
注意: 安装软件时需要有root权限,要不就是直接切换到root用户,要不就给普通用户提权
下次进行安装时,就可以使用已经完成提权的普通用户执行安装命令
eg:
root:
yum install -y zip unzip
被提权的普通用户:sudo yum install -y zip unzip