一.命令基础

1.关于[tesla@localhost ~]$[root@localhost ~]#的说明

格式为:[用户名@主机名 当前目录名] #或$
其中:
①#表示当前为root用户,$表示当前为普通用户;
②~表示家目录,root用户的家目录为/root,普通用户的家目录为/home/用户名;

[root@localhost ~]# pwd
/root
[tesla@localhost ~]$ pwd
/home/tesla

2.命令的基本格式

命令 [选项] [参数]
注意:
个别命令不遵守此格式;
有多个选项时,可以写在一起;
选项分完整选项(-- 完整选项名)和简化选项(-简化选项名),eg: --all-a;

3.命令分类

(1)帮助命令
(2)文件处理和搜索命令
(3)打包压缩命令
(4)关机重启命令
(5)其他常用命令

4.常用目录的基本作用

(1)/ 根目录
(2)/bin 命令保存目录(所有用户就可以执行的命令)
(3)/sbin 命令保存目录(超级用户才能执行的命令)
(4)/boot 启动目录,含有启动相关的文件
(5)/dev 设备文件保存目录
(6)/etc 配置文件保存目录
(7)/home 普通用户家目录的上级目录
(8)/root 超级用户的家目录
(9)/lib 系统函数库保存目录
(10)/mnt 空目录,用来挂载u盘等,linux常用空目录来挂载设备
(11)/media 空目录,用来挂载光盘
(12)/misc 空目录,用来挂载杂项设备
(13)/proc 内存的挂载目录
(14)/sys 内存的挂载目录
(15)/usr 系统软件资源目录
/usr/bin 系统命令(普通用户)
/usr/sbin 系统命令(超级用户)
(16)/tmp 临时目录
(17)/var 系统相关文档内容

说明:
//usr目录下的binsbin目录,都是用来保存系统命令的;
/proc/sys保存的是内存的挂载点,不能直接操作;
③可以在家目录(/root/home/xxx)和/tmp任意存放内容;

二.具体命令

1.帮助命令

(1)
man [选项] 命令:获取指定命令的帮助
man -k 字符串:查看所有包含字符串的命令的所有级别的帮助,相当于"apropos 命令";
man -f 命令:查看命令拥有哪些级别的帮助,相当于"whatis 命令";
然后用类似man 8 ifconfig的格式进一步查看特定级别的帮助。

(2)
命令 --help:获取命令的帮助选项
eg:ls --help

(3)
help shell内部命令:获取shell内部命令的帮助
eg:help cd

(4)
info 命令 :可以利用该命令获取帮助
·回车 进入子帮助页面(带有*标记)
·u 进入上层页面
·n 进入下一个帮助小节
·p 进入上一个帮助小节
·q 退出

2.文件处理和搜索命令

·文件处理

(1)
ls [选项] [文件或目录] :查询目录内容
选项:
-a 显示所有文件,包括隐藏文件
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
-l 查看详细信息

(2)
cd [目录] :change directory,切换目录
简化操作:
cd/cd - 进入上一次的目录
cd . 进入当前目录
cd .. 进入上一级目录
cd ~进入当前用户的家目录

(3)
mkdir [选项] [目录]:make directories,创建目录
·选项:
-p 递归创建

(4)
pwd :print working directory,显示当前所在目录

(5)
rmdir [目录名] :remove empty directories,删除空目录

(6)
rm [选项] [目录或文件名] :remove
· [选项]
-r 删除目录
-f 强制

(7)
cp [选项] [源文件或目录] [目标目录] :copy,复制文件或目录
·[选项]
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-r 复制目录
-a 相当于-pdr

(8)
mv [选项] [源文件或目录] [目标目录名或文件名] :move,移动文件或目录,若在同一个目录,可用来改名

(9)
ln [选项] [源文件] [目标文件] :link,生成链接文件,默认(不加-s)创建硬连接,文件的引用计数加一
·[选项]
-s 创建软链接
·说明:
-软链接特征
①类似windows快捷方式;
②软链接拥有自己的inode和block,但数据块中只保存原文件的文件名和inode,并没有实际的文件数据;
③lrwxrwxrwx,l表示软链接,其文件权限都为rwxrwxrwx;
④修改任一文件,另一个都会改变;
⑤删除原文件,软链接不能使用;

-硬链接特征
①拥有相同的inode和存储block,可以看作是同一个文件;(类似一个教室的前后门)
②可以通过inode识别;
③不能跨分区(同一教室的前后门无法存在于两个教学楼上);
④不能针对目录使用。

·文件搜索

(1)
locate 文件名:用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。

(2)
whereis [选项] 命令名:搜索命令或帮助文档的路径
·[选项]
-b 只查找可执行文件
-m 只查找可帮助文件
·相关命令

whoami
whatis

(3)
which 命令名:搜索命令的路径和别名
·$PATH:定义系统搜索命令的路径,可用echo $PATH输出

(4)
find [搜索范围] [搜索条件]:搜索文件
find /root -name install.log
在/root下搜索符合文件名的文件;
如果文件名不区分大小写用-iname
如果要进行匹配搜索,可以用通配符;
linux的常用通配符:
*匹配任意内容,?匹配任意一个字符,[]匹配其中任意一个字符
find /root -user root
按所有者搜索
find /root -nouser
查找没有所有者的文件
find /var/log -mtime +10
查找10天前修改的文件,-10(10天内),10(10天当天);
atime文件访问时间,ctime改变文件属性,mtime修改文件内容
find . -size 25k
查找文件大小是25KB的文件
-25k 小于25KB
+25k 大于25KB
find . -inum 262422
查找i节点是262422的文件
find /etc -size +20k a -mtime +10 -exec ls -lh {}\;
查找/etc目录下大于20KB且在10天之前最后修改的文件,并显示详细信息;
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{}代表前面find查找出来的文件名。

(5)
grep [选项] 字符串 文件名:在文件当中匹配符合条件的字符串
·[选项]
-i 忽略大小写
-v 排除指定字符串
·find与grep的区别
find是在系统当中搜索复合条件的文件名,需要匹配时使用通配符进行完全匹配;grep在文件中搜索复合条件的字符串,需要匹配时使用正则表达式进行包含匹配。

3.打包压缩命令

常见压缩格式1:.tar.gz,.tar.bz2
常见压缩格式2:gz,.bz2,.zip
(1)
·zip 压缩后文件名 原文件名:压缩文件
·zip -r 压缩后文件名 原目录名:压缩目录
·unzip 压缩文件:解压缩文件

(2)
·gzip 源文件:压缩为.gz格式的文件,源文件会消失
·gzip -c 源文件 > 压缩文件:压缩为.gz格式的文件,保留源文件
·gzip -r 目录:压缩目录下的所有文件,但不能压缩目录(用tar先打包)
·gzip -d .gz格式压缩文件:解压缩.gz格式的文件
·gunzip .gz格式压缩文件:解压缩.gz格式的文件

(3)
·bzip2 源文件:压缩为.bz2格式的文件,源文件会消失,加-k保留源文件,不能压缩目录
·bzip2 -d .bz2格式压缩文件:解压缩.bz2格式的文件,加-k保留源文件
·bunzip2 .bz2格式压缩文件:解压缩.bz2格式的文件,加-k保留源文件

(4)
·tar -cvf 打包后文件名.tar 源文件:打包文件
-c打包
-t测试,显示打包后文件名,并不真正打包
-v显示过程
-f指定打包后的文件名
eg:tar -cvf mytar.tar mytar
·tar -xvf 打包文件名.tar [-C 解压缩位置]:解打包文件
-x解打包
·tar -zcvf 打包后文件名.tar.gz 源文件:打包压缩文件为.tar.gz格式
·tar -zxvf 打包文件名.tar.gz :解打包解压缩.tar.gz格式文件
·tar -jcvf 打包后文件名.tar.bz2 源文件:打包压缩文件为.tar.bz2格式
·tar -jxvf 打包文件名.tar.bz2:解打包解压缩.tar.bz2格式文件

4.关机重启命令

(1)
shutdown [选项] 时间
·[选项]:
-c取消前一个关机命令
-h关机
-r重启
eg:shutdown -r now
shutdown -h 05:30 &

(2)其他关机命令:
halt
power off
init 0

(3)其他重启命令:
reboot
init 6

(4)系统运行级别
·0关机
·1单用户
·2不完全多用户,不含NFS服务
·3完全多用户
·4未分配
·5图形界面
·6重启
·runlevel 显示上一个运行级别和当前运行级别

(5)
logout:退出登录

5.其他常用命令

(1)挂载命令
mount:查看系统中已经挂载好的设备
mount -a:依据配置文件/etc/fstab的内容,自动挂载
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
·选项:
-t 文件系统:指定挂载的文件系统(ext3/ext4/iso9660等)
-o 特殊选项:指定挂载的额外选项(如exex/noexec,是否允许该处执行可执行文件,默认可以)

④挂载光盘
·mkdir mnt/cdrom/ 建立挂载点
·mount [-t iso9660] /dev/sr0 /mnt/cdrom/ 挂载光盘
/dev/cdrom是/dev/sr0的软链接,依赖系统,推荐使用/dev/sr0;
系统能自动识别光盘的文件系统,所以-t iso9660可以省略。
⑤挂载U盘(忽略)

(2)卸载命令
umount 设备文件名或挂载点
eg:umount /dev/sr0umount /mnt/cdrom

(3)用户登录查看命令

w:查看当前用户登录的信息(详细)
命令输出:
·USER:登录的用户名
·TTY:登录终端
·FROM:登录IP
·LOGIN@:登录时间
·IDLE:用户闲置时间
·WHAT:当前正在运行的命令

who:查看当前用户登录的信息(简单)
命令输出:
·用户名
·登录终端
·登录时间(登录IP)

last:查看当前和过去用户登录的信息
默认读取的是/var/log/wtmp文件数据
命令输出:
·用户名
·登录终端
·登录IP
·登录时间
·退出时间(在线时间)

lastlog:查看所有用户的最后一次登录时间
默认读取的是/var/log/lastlog文件数据
命令输出:
·用户名
·登录终端
·登录IP
·最后一次登录时间

(4)命令别名
alias :查看系统中的所有命令别名
alias 别名 = '原命令':设定命令别名(注销或重启则失效)
unalias 别名 :删除别名(注销或重启则失效)
要让别名永久生效或失效可以写入环境变量配置文件,如~/.bashrc
·命令生效顺序
①用相对或绝对路径执行的命令
②别名
③Bash的内部命令
④按照$PATH环境变量定义的目录的顺序查找到的第一个命令
·bash常用快捷键
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 移动光标到命令行首
ctrl+e 移动光标到命令行尾
ctrl+u 从光标所在位置一直删除到行首
ctrl+z 将命令放入后台
ctrl+r 在历史命令中搜索

(5)历史命令
history [选项]
·[选项]
-c 清空历史命令
-w 把缓存中的历史命令写入~/.bash_history中
·历史命令默认保存1000条,可在/etc/profile中的HISTSIZE进行修改
·历史命令的调用:
①上下箭头
②"!!"重复执行上一条命令,
"!n"重复执行第n条命令,
"!字符串"重复执行最近一条以该字符串开头的命令

(6)输出重定向
①标准输入输出

设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

②输出重定向:改变输出方向,从显示器转移到别的地方。

类型 符号 作用 备注
标准输出重定向 命令 > 文件 覆盖  
命令 >> 文件 追加  
标准错误输出重定向 错误命令 2>文件 覆盖 没有空格
错误命令 2>>文件 追加
正确输出错误输出同时保存 命令 >  文件 2>&1 覆盖  
命令 >> 文件 2>&1 追加(重要)  
命令 &>文件 覆盖 ls &>null将执行命令结果丢到黑洞中
命令 &>>文件 追加(重要)  
命令 >>文件Right  2>>文件Error 追加(重要) 正确命令的结果写入文件1,错误的写入文件2

(7)输入重定向(了解,很少用)
wc [选项] [文件名]
直接输入wc,然后随便输入内容,ctrl+d统计行数+单词数+字符数
·[选项]
-l 统计行数
-w 统计单词数
-c 统计字符数
wc < access.log ,其实可以直接用wc access.log;
wc <<deli
.............
deli
统计两个分隔符deli之间的内容的行数+单词数+字符数

(8)多命令顺序执行
命令1;命令2 命令之间无逻辑关系
命令1||命令2 逻辑或
命令1&&命令2 逻辑与

(9)管道符
命令1|命令2
命令2把命令1的正确输出当作操作对象,只有命令1正确,命令2才会执行;

(10)特殊符号
·通配符
:任意一个字符
* :任意内容
[] [-] [^] :范围
·Bash中其他特殊符号
'' 单引号,其中所有的特殊符号都没有特殊含义,如 $和`(反引号);
"" 双引号,除$ ` \外,其中所有的特殊符号都没有特殊含义,这三个符号的作用依次分别是"调用变量的值"、"引用命令"、"转义符";
$()反引号 用来引用系统命令,在bash中会先执行,推荐使用$(),反引号容易看错
# 在shell中代表注释
$ 用于调用变量的值,如$var
\ 转义符,之后的特殊符号将失去特殊意义

6.vi常用指令

(1)底行模式常用指令
:w
:q
:!
:ls
:n
:15
/xxx
?xxx

(2)命令模式常用指令
h光标向左移
j光标向下移
k光标向上移
l光标向右移
ctrl + f 向下翻页(front)
ctrl + b 向上翻页(back)
ctrl + d 向下翻半页(down)
ctrl + u 向上翻半页(up)
o 在光标所在行的下方插入一行,并切换到输入模式
p 在光标所在行的下方粘贴,P在光标所在行的上方粘贴
dd删除光标所在行
yy复制光标所在行

7.磁盘管理

(1)
df :查看磁盘分区使用情况
[选项]
-l 仅显示本地磁盘(默认)
-a 显示所有文件系统的磁盘使用情况,包含/proc/等
-h 以1024为进制,按最合适单位显示磁盘容量(-H 1000)
-t 显示指定文件系统的磁盘分区(-x 不显示)
-T 显示磁盘分区类型

(2)
du :统计磁盘上文件的大小
[选项]
-b 以byte为单位统计文件大小(-k Kb,-m Mb)
-h 以1024为进制,按最合适单位统计大小(-H 1000)
-s 指定统计目标

8.分区模式

(1)MBR
①主分区不超过4个
②单个分区容量不超过2TB

(2)GPT
①主分区个数"几乎"没有限制(GPT的分区表最多可以支持128个主分区)
②单个分区容量"几乎"没有限制


leetesla
139 声望5 粉丝

PHP GO JAVA (SPRING BOOT)