[ Linux ] 前端工程师 复习 Linux 常用命令 (包括 Vim) [建议收藏]

822 阅读8分钟

Linux 介绍

  • Linux是一套免费使用的类Unix操作系统,在服务器端领域和嵌入式领域有非常广泛的应用

Linux 版本

  • 内核版本: kernel

  • 各个厂商会制作自己的发行版本

    • redhat
    • CentOS
    • ubuntu

Linux与 Windows的不同

  • Linux 严格区分大小写

  • Linux更多使用字符界面, widows 是图形界面,操作难度低,不安全。

    • 占用的系统资源更少
    • 减少了出错和被攻击的可能性,会让系统更稳定

Linux常用命令

常见目录

目录用途
/Linux 根目录
/bootLinux 启动目录,启动相关文件
/devLinux 设备文件
/etcLinux 配置文件
/homeLinux 普通用户的家目录,可以操作
/libLinux 系统库保存目录
/rootLinux 超级用户的家目录,可以操作
/tmpLinux 临时目录,可以操作
/varLinux 变量
/binLinux 普通的基本命令
/sbinLinux 基本的系统命令 只有管理员才可以运行
/usr/binLinux 是你在后期安装的一些软件的运行脚本
/usr/sbinLinux 放置一些用户安装的系统管理的必备程序

命令基本格式

命令提示符

1671266223442.png

  • root 当前登录用户
  • localhost/VM-12-10 主机名
  • ~ 当前工作目录,默认是当前用户的家目录,root(管理员) 就是** /root**,普通用户(用户组的某一个用户)是 /home/用户名
  • 提示符 超级用户是 #,普通用户是$

ls

  • 查询目录中的内容

  • ls [选项] [文件或者目录]

  • 选项

    • -a 显示所有文件,包括隐藏文件
    • -l 显示详细信息
    • -d 查看目录本身的属性而非子文件 ls /etc/
    • -h 人性化的方式显示文件大小
-l

显示详细信息

drwxr-xr-x  root  root   800 Sep 16 00:19 logs
drwxr-xr-xrootroot800Sep 16 00:19logs
文件类型和权限所有者所属组文件大小最后修改时间文件名

文件处理命令

mkdir

  • 建立目录 make directory

  • mkdir -p [目录名]

    • -p 递归创建

cd

  • 切换所在目录 change directory

  • cd [目录]

    • ~ 家目录
    • . 当前目录
    • .. 上级目录
  • 相对路径是参照当前所在目录

  • 绝对路径是从根目录开始

  • 按TAB键可以补全命令和目录

pwd

  • 显示当前目录 pwd

1671266497710.png

rmdir

  • 删除目录 remove empty directory
  • rmdir [目录名]

rm

  • 删除文件或者目录 remove

  • rm [文件或者目录]

    • -r 删除目录
    • -f 强制删除
  • rm -rf 文件或者目录] 递归强制删除所有目录

cp

  • copy 复制命令

  • copy [源文件或者目录] [目标文件]

    • -r 复制目录,默认是复制文件
    • -i 会在复制文件的时候给提示,如果复制的目标文件存在,会给你提示是否要覆盖
mkdir a
mkdir b
cd a/
touch 1.txt
cp 1.txt ~/b/

mv

  • 移动文件或者改名 move
  • mv [源文件或者目录] [目标文件]
mv 1.txt 11.txt

ln

  • 链接命令,生成链接文件 link

  • ln -s [源文件] [目标文件]

    • -s 创建软链接
  • 类似Windows快捷方式

  • 修改任意一个文件,另一个都会改变

  • 删除源文件,软链接不能使用

  • 软链接源文件必须写绝对路径

# ln -s /root/b/1.txt 2.txt

文件搜索命令

locate

  • 在后台数据库中按文件名搜索,速度比较快
  • 数据保存在/var/lib/mlocate/mlocate.db后台数据库,每天更新一次
  • 可以updatedb命令立刻更新数据库
  • 只能搜索文件名
yum  -y install mlocate

whereis

  • 搜索命令所在路径以及帮助文档所在位置

  • whereis 命令名 whereis ls

    • -b 只查找可执行文件
    • -m 只查找帮助文件
  • 可以查看Shell自带的命令,如 whereis cd

which

  • 可以看到别名 which ls
  • 能看到的都是外部安装的命令
  • 无法查看Shell自带的命令,如 which cd

环境变量

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

  • 定义的是系统搜索命令的路径
  • echo $PATH

find

  • 文件搜索命令
  • find [搜索范围] [搜索条件]
按名称搜索
  • 避免大范围的搜索,会非常消耗系统资源

    find / -name 11.txt
    
通配符
  • find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

  • 通配符

    • * 匹配任意内容
    • ? 匹配任意一个字符
    • [] 匹配任意一个中括号内的字符
# touch abc.txt
# find . -name "ab[cdef].txt"
-i
  • 不区分大小写
find . -iname "Ab[cdef].txt"
-user
  • 按所有者进行搜索
find /root -user root
find /root -nouser
按时间搜索
find . -mtime +5
参数含义
atime文件访问时间
ctime改变文件属性
mtime修改文件内容
参数含义
-55天内修改的文件
55天前当前修改的文件
+55天前修改的文件
按大小搜索
  • k小写,M大写
find . -size +0k
参数含义
-8k小于8K
8k等于8K
+8k大于8K
+8M小于8M
综合应用
find /tmp -size +10k -a -size -20k
  • 查找/etc目录下,大于10KB并且小于20KB的文件
  • -a and 逻辑与,两个条件都满足
  • -o or 逻辑或,两个条件满足一个就可以
find /tmp -size +10k -a -size -20k -exec ls -lh {} ;
  • exec 对上个命令的结果进行操作
grep
  • 在文件当中匹配符合条件的字符串

    • -i 忽略大小写
    • -v 排除指定字符串
  • find命令,在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

  • grep命令 在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

vi a.txt
grep b a.txt
grep -v b a.txt
grep -i f a.txt

压缩与解压缩命令

zip格式

  • 压缩文件或目录,是一种压缩格式, 源文件不会消失,会新增一个压缩包
功能命令
压缩文件zip 压缩文件名.zip 源文件
压缩目录zip -r 压缩目录名.zip 源目录
解压unzip 压缩目录名.zip
mkdir book
touch book/1.txt
touch book/2.txt
zip -r book.zip book
rm -rf book/ rmdir book
unzip book.zip

gzip

  • gzip为高压,可以把文件压缩得更小
  • gzip命令不支持目录
命令示例含义
gzip 源文件gzip book.txt压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件gzip -c book.txt > book.txt.gz压缩为.gz格式的压缩文件,源文件不会消失
gzip -r 目录gzip -r book把目录下的每个子文件都变成压缩包,并删除原文件,当前目录无变化
gzip -d 压缩文件名gzip -d 1.txt.gz解压缩文件,不保留压缩包
gunzip 压缩文件gunzip 2.txt.gz解压缩文件,也不保留压缩包
  • 压缩是压缩目录下的文件
touch book.txt
mkdir book
touch book/1.txt
touch book/2.txt
gzip book.txt //源文件会消失
gzip -c 1.txt > 1.txt.gz //源文件不消失
gzip book.txt  //压缩为.gz格式文件,源文件会消失
gzip -r book //把目录下的每个子文件都变成压缩包
cd book
gzip -d 1.txt.gz  //解压缩文件,不保留压缩包
gunzip 2.txt.gz 

tar

  • 打包命令,只打包并不压缩,既可以打包文件目录又可以是文件

  • tar -cvf 打包文件名 源文件

    • -c 打包
    • -v 显示过程
    • -f 指定打包后的文件名
tar -cvf book.tar book    //会打包出一个book.tar文件
  • x 解开包

    tar -xvf book.tar 
    

5.5.4 tar.gz压缩格式

  • zip可以压缩目录但压缩效率不高,gzip压缩效率高但不支持目录
  • 可以先打包为.tar格式,再压缩为.gz格式 -c 压缩为.tar.gz格式 -x 解压缩.tar.gz格式
命令示例含义
tar -zcvf 压缩包名 .tar.gz源文件tar -zcvf b.tar.gz book可以先打包为.tar格式,再压缩为.gz格式,将 b 目录打包并压缩为 b.tar.gz
tar -zxvf 压缩包名.tar.gztar -zxvf b.tar.gz解压tar.gz压缩包
tar -zcvf b.tar.gz book
tar -zxvf b.tar.gz

关机和重启命令

shutdown

  • shutdown 关机命令

    • -c 取消前一个关机命令
    • -h 关机
    • -r 重启
shutdown -r 06:00 在早晨六点重启
shutdown -c

init

关机

init 0

重启

init 6

logout

退出登录

logout

查看登录用户信息

w

1671266911720.png

查看登录用户信息

  • USER 登录的用户名
  • TTY 登录的终端 tty1 本地终端 pts/0远程终端
  • FROM 登录的IP
  • LOGIN 登录时间
  • IDLE 用户闲置时间
  • JCPU 该终端所有进程占用的时间
  • PCPU 当前进程所占用的时间
  • WHAT 正在执行的命令

who

  • 查看登录用户信息

    • USER 登录的用户名
    • TTY 登录的终端 tty1 本地终端 pts/0远程终端
    • LOGIN 登录时间(登录的IP)

last

  • 查看当前登录和过去登录的用户信息

  • 默认读取 /var/log/wtmp 文件

    • 用户名
    • 登录终端
    • 登录IP
    • 登录时间
    • 退出时间(在线时间)

lastlog

  • 查看所有用户的最后一次登录时间

    • 用户名
    • 登录终端
    • 登录IP
    • 最后一次登录时间

文件查看命令

cat

  • cat 命令用于连接文件并打印到标准输出设备上。

  • cat [-AbeEnstTuv] [--help] [--version] fileName

  • 参数

    • -n 或 --number:由 1 开始对所有输出的行数编号。

      cat -n textfile1
      

more

  • Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
  • more fileName
more  a.txt

head

  • 用来显示开头某个数量的文字区块
head -5 readme.txt  //展示该文件当中前 5 行的内容

tail

  • tail命令可用于查看文件的内容

  • 有一个常用的参数 -f 常用于查阅正在改变的日志文件。

  • tail [参数] [文件]

  • 参数

    • -f 循环读取

    • -n<行数> 显示文件的尾部 n 行内容

      tail -5 mail.txt
      tail -f access.log
      

vi编辑器

操作模式

模式的切换和模式含义:

模式名含义
命令模式等待输入的模式
输入模式编辑模式,用于输入文本
底行(尾行、末行)模式可以输入指令,搜索,保存

vimode

a 在光标后 append , i 在当前光标下插入,o 换行插入,s 删除当前光标的字符并插入

打开文件

  • 输入vi 文件名可以进入这个模式, 打开文件定位到第一行

底行模式

命令含义
:w把写入保存到硬盘中
:q退出当前VI编辑器打开的文件
:wq!强制保存

命令模式

光标

命令含义
h光标左移
j光标下移
k光标上移
l光标右移

插入

命令含义
i在当前位置插入
a在当前光标右边插入
A在当前光标右的行末插入文件
o在光标所在行的下方插入一行并切换到输入模式
O在光标所在行的上方插入一行并切换到输入模式
s删除当前光标位置并插入

删除

命令含义
x删除当前字符
dd删除光标所在行

撤销

命令含义
u撤消最后执行的一次命令

剪切类

命令含义
dd删除光标所在行
yy复制光标所在的行
p在光标所在行的下方粘贴
P在光标所在行的上方粘贴

替换类

命令含义
r替换当前位置字符

搜索

命令含义
/输入/可以在当前的文件中查找该字符串
n查找下一个
Shift-N查找上一个

修正错误

命令含义
:s/old/new把光标所在行的old替换成new
:s/old/new/g把所有行的old替换成new

模式切换

vi

键位图

vikey