Linux基础
Linux :
本身也是一个基于文件形式表示的操作系统。Linux一切皆文件。
①在windows是文件的,在Linux下同样也是文件;
②在windows不是文件的,在Linux下也是以文件的形式存储的;
查找网站:https://www.linuxcool.com/
目录结构
Bin:全称binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的。
Dev:该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。
Etc:该目录主要存储一些配置文件。
Home:表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。
Proc:process,表示进程,该目录中存储的是Linux运行时候的进程。
Root:该目录是root用户自己的家目录。
Sbin:全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。
Tmp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。
Usr:存放的是用户自己安装的软件。类似于windows下的program files。
Var:存放的程序/系统的日志文件的目录。
Mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。
基本指令
‑ls
#ls
含义:列出当前工作目录下的所有文件/文件夹的名称
#ls 路径
含义:列出指定路径下的所有文件/文件夹的名称
#ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录
pwd
#pwd (print working directory,打印当前工作目录)
cd
#cd 路径 用于切换路径
#cd ~****:切换到表示当前用户的家目录
Mkdir
#mkdir 路径 【路径,可以是文件夹名称也可以是包含名称的一个完整路径】 创建文件夹
#mkdir -p 路径 一次性创建多层不存在的目录
#mkdir 路径1 路径2 路径3 …. 表示一次性创建多个目录
-m 建立目录的同时设置目录的权限,权限设置和chmod命令一样
Chmod(目前没搞懂命令规则)
参考https://www.tutorialspoint.com/unix_commands/chmod.htm
用来改变文件或目录权限的命令,但是只有文件的属主和超级用户root才能执行这个命令。有两种模式,一种是采用权限字母和操作符表达式;另一种是采用数字。
Touch
#touch 文件路径 创建文件
#touch 路径1 路径2 路径3… 同时创建多个文件
Cp
#cp 被复制的文档路径 文档被复制到的路径: 复制一个文件
#cp -r 被复制的文件夹路径 文件夹被复制到的路径
-f | 若目标文件已存在,则会直接覆盖原文件 |
---|---|
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
Mv(可实现重命名)
#mv 需要移动的文档或文件夹路径 需要保存的位置路径
-i | 若存在同名文件,则向用户询问是否覆盖 |
---|---|
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
Rm
#rm 选项 需要移除的文档路径
rm -r删除文件夹
-f:force,强制删除,不提示是否删除
-r:表示递归
-i 删除前会询问用户是否操作
-p 用递归的方式删除指定的目录路径中的所有父级目录(上一级目录),非空则报错
Vim (重点)
#vim 文件的路径
作用:打开一个文件(可以不存在,也可以存在)
退出打开的文件:在没有按下其他命令的时候,按下shift+英文冒号,输入q,按下回车即可
vim三种模式
命令模式、编辑模式(输入模式)、末行模式(尾行模式)。
#vim +数字 文件的路径 作用:打开指定的文件,并且将光标移动到指定行
#vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词
命令模式
1、光标移动
①光标移动到行首
按键:shift + 6
②光标移动到行尾
按键:shift + 4
③光标移动到首行
按键:gg
④光标移动到末行
按键:G
⑤翻屏
向上翻屏:按键ctrl + b (before) 或 PgUp
向下翻屏:按键ctrl + f (after) 或 PgDn
2、复制操作
①复制光标所在行
按键:yy
粘贴:在想要粘贴的地方按下p键
②以光标所在行为准(包含当前行),向下复制指定的行数
按键:数字yy
③可视化复制
按键:ctrl + v(可视块)或V(可视行)或v(可视),然后按下↑↓←→方向键来选中需要复制的区块,按下y键进行复制,最后按下p键粘贴
3、剪切/删除
①剪切/删除光标所在行
按键:dd (删除之后下一行上移)
②剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
按键:数字dd (删除之后下一行上移)
③剪切/删除光标所在的当前行之后的内容,但是删除之后下一行不上移
按键:D (删除之后当前行会变成空白行)
④可视化删除
按键:ctrl + v(可视块)或V(可视行)或v(可视),上下左右移动,按下D表示删除选中行,d表示删选中块
4、撤销/恢复
撤销:输入:u (不属于命令模式) 或者 u (undo)
恢复:ctrl + r 恢复(取消)之前的撤销操作
5、光标的快速移动
①快速将光标移动到指定的行
按键:数字G
②以当前光标为准向上/向下移动n行
按键:数字↑,数字↓
③以当前光标为准向左/向右移动n字符
按键:数字←,数字→
④末行模式下的快速移动方式:移动到指定的行
按键:输入英文“:”,其后输入行数数字,按下回车
末行模式
进入方式:由命令模式进入,按下“:”或者“/(表示查找)”即可进入
退出方式:
a. 按下esc
b. 连按2次esc键
c. 删除末行全部输入字符
特殊:输入“x”即可保存退出
①保存操作(write)
输入:“:w” 保存文件
输入:“:w 路径” 另存为
②退出(quit)
输入:“:q” 退出文件
③保存并退出
输入:“:wq” 保存并且退出
④强制 (!)
输入:“:q!” 表示强制退出,刚才做的修改操作不做保存
⑤调用外部命令(了解)
输入:“:!外部命令”
编辑模式
重定向>,>>
#正常执行的指令 > / >> 文件的路径
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
eg.用一个命令将一条消息写到一个文件里去:
覆盖型写法 (文件里原来的内容被覆盖)
echo "aaa" > a.txt
echo aaa > a.txt
添加型写法 (新内容添加在原来内容的后面)
echo "aaa" >> a.txt
echo aaa >> a.txt
Cat
#cat 文件的路径 打开一个文件
cat还可以对文件进行合并
#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
-n | 显示行数(空行也编号) |
---|---|
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
echo
输出字符串或提取Shell变量的值
Df
查看磁盘空间
#df -h -h表示以可读性较高的形式展示大小
Free
查看内存使用情况
#free -m -m表示以mb为单位查看
Head
查看一个文件的前n行,如果不指定n,则默认显示前10行
#head -n 文件路径 【n表示数字】
Tail
查看一个文件的未n行,如果n不指定默认显示后10行
#tail -n 文件的路径 n同样表示数字
#tail -f 该参数用于监视File文件增长 ?
Wc
统计文件内容信息(包含行数、单词数、字节数)
#wc -lwc 需要统计的文件路径
-l****:表示lines,行数
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes,字节数
Less
查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多
#less 需要查看的文件路径
在退出的只需要按下q键即可
Date
表示操作时间日期(读取、设置)
#date 输出的形式:2018年 3月 24日 星期六 15:54:28
#date +%F (等价于#date “+%Y-%m-%d” ) 输出形式:2018-03-24
#date “+%F %T” 引号表示让“年月日与时分秒”成为一个不可分割的整体
获取之前或者之后的某个时间(备份)
#date -d “-1 day” “+%Y-%m-%d %H:%M:%S”
Cal
用来操作日历的
#cal 等价于 #cal -1 直接输出当前月份的日历
#cal -3 表示输出上一个月+本月+下个月的日历
#cal -y 年份 表示输出某一个年份的日历
管道(重要)
管道符:|
作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
①过滤案例:需要通过管道查询出根目录下包含“y”字母的文档名称。
#ls / | grep y
clear/ctrl + L
作用:清除终端中已经存在的命令和结果(信息)。
语法:clear 或者快捷键:ctrl + L
需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息。
Hostname
操作服务器的主机名(读取、设置)
#hostname 含义:表示输出完整的主机名
#hostname -f 含义:表示输出当前主机名中的FQDN(全限定域名)
Id
查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。
#id 默认显示当前执行该命令的用户的基本信息
#id 用户名 显示指定用户的基本信息
Whoami
显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。
ps -ef
ps
作用:主要是查看服务器的进程信息
-e:等价于“-A”,表示列出全部的进程
-f:显示全部的列(显示全字段)
列的含义:
UID:该进程执行的用户id;
PID:进程id;
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);
C:Cpu的占用率,其形式是百分数;
STIME:进行的启动时间;
TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径;
Top
作用:查看服务器的进程占的资源(100%使用)
进入命令:#top (动态显示)
-n 更新的次数,完成后将会退出 top
退出命令:按下q键
表头含义:
PID:进程id;
USER:该进程对应的用户;
PR:优先级;
VIRT:虚拟内存;
RES:常驻内存;
SHR:共享内存;
计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
S:表示进程的状态status(sleeping,其中S表示睡眠,R表示运行);
%CPU:表示CPU的占用百分比;
%MEM:表示内存的占用百分比;
TIME+:执行的时间;
COMMAND:进程的名称或者路径;
Du -sh
查看磁盘占用空间,但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,而不是某个分区。
-a | 显示目录中所有文件大小 |
---|---|
-k | 以KB为单位显示文件大小 |
-m | 以MB为单位显示文件大小 |
-g | 以GB为单位显示文件大小 |
-h | 以易读方式显示文件大小 |
-s | 仅显示总计 |
Find
根据给定的路径和表达式查找的文件或目录,和管道结合使用可以实现复杂的功能
find [参数] [路径] [查找和搜索范围]
-name | 按名称查找 |
---|---|
-size | 按大小查找 |
-user | 按属性查找 |
-type | 按类型查找 -type f查找所有文件 -type d查找所欲文件夹 |
-iname | 忽略大小写 |
Service
用于控制一些软件的服务启动/停止/重启
#service 服务名 start/stop/restart
--status-all 显示所服务的状态
Kill
表示杀死用来删除执行中的程序或工作。(当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
#kill 进程PID (语法需要配合ps一起使用)
kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。
Ifconfig
用于操作网卡相关的指令
#ifconfig (获取网卡信息)
add<地址> | 设置网络设备IPv6的IP地址 |
---|---|
del<地址> | 删除网络设备IPv6的IP地址 |
down | 关闭指定的网络设备 |
up | 启动指定的网络设备 |
IP地址 | 指定网络设备的IP地址 |
Reboot
重新启动计算机
#reboot 重启
#reboot -w 模拟重启,但是不重启(只写关机与开机的日志信息)
Shutdown
关机 (慎用)
#shutdown -h now “关机提示” 或者 #shutdown -h 15:25 “关机提示”
除了shutdown关机以外,还有以下几个关机命令:
#init 0
#halt
#poweroff
Uptime
输出计算机的持续在线时间(计算机从开机到现在运行的时间)
#uptime
-p 以漂亮的格式显示机器正常运行的时间
-s 系统自开始运行时间
Uname
#uname -a all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)
-a 显示系统所有相关信息
-m 显示计算机硬件架构
-n 显示主机名称
-r 显示内核发行版本号
-s 显示内核名称
-v 显示内核版本
-p 显示主机处理器类型
-o 显示操作系统名称
-i 显示硬件平台
netstat -tnlp
查看网络连接状态
#netstat -tnlp
Man
manual,手册(包含了Linux中全部命令手册,英文)
(退出按下q键)
通过man命令查询cp指令的用法
#man cp
-w 显示文件所在位置
History
用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。
-a | 将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件 |
---|---|
-c | 清空当前历史命令列表 |
-d | 删除历史命令列表中指定序号的命令 |
-n | 从命令历史文件中读取本次Shell会话开始时没有读取的历史命令 |
-r | 读取命令历史文件到当前的Shell历史命令内存缓冲区 |
-s | 将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令 |
-w | 把当前的shell历史命令内存缓冲区的内容写入命令历史文件 |
Passwd
用于设置用户的认证信息,包括用户密码、账户锁定、密码失效等。
直接运行passwd命令修改当前的用户密码,对其他用户的密码操作需要管理员权限。
# passwd
-d 删除密码
-l 锁定用户密码,无法被用户自行修改
-u 解开已锁定用户密码,允许用户自行修改
-e 密码立即过期,下次登陆强制修改密码
-k 保留即将过期的用户在期满后能仍能使用
-S 查询密码状态
Ssh
ssh [参数] [远程主机]
(该文仅供学习,若有冒犯,请联系博主)