yuanxiaojiang
人的放纵是本能,自律才是修行

Linux必知必会技术点

  Linux命令行于快捷键

 star法则⭐

情境(Situation):描述故障的背景情况,使用什么软件
任务(Task):一般的任务都是解决问题
行动(Action):你怎么做,做了什么
结果(Result):结果如何

 Linux命令行格式

[root@yuan ~]#
# root  用户名,当前用户的名称
# yuan  主机名,默认是localhost
# ~  当前位置,相对的一个位置,默认不会显示全。~破浪线表示用户的家目录
$表示普通用户  #表示root用户

 Linux命令格式⭐

[root@yuan ~]# ls -a /etc/
command option arguments/parameter
# 命令:Linux通过命令操控整个系统
# 选项:同一个命令的不同功能
# 参数:命令处理的目标
温馨提示:一般把选项和参数统称为参数,不是所用的常用命令都要加上参数、选项

 查询帮助⭐

  • 网站:https://tool.lu/command/
  • man命令:查询帮助
  • --help命令:精简查询帮助
  • help:查询Linux内置命令a
  • info:超级详细帮助(不用)

 Linux快捷键⭐⭐⭐

Linux快捷键合集

# 移动光标类快捷键
    光标移动到行首:Ctrl + a
    光标移动到行尾:Ctrl + e
# 剪切(删除)类快捷键
    将光标所在位置到行首的内容剪切(删除):Ctrl + u
    将光标所在位置到行末的内容剪切(删除):Ctrl + k
# 功能性快捷键
    清屏:Ctrl + l (clear)
    取消当前的命令:Ctrl + c (cancel)
温馨提示
ctrl + s Linux(锁屏) windows(保存)
ctrl + q Linux(解锁)
ctrl + z Linux(让当前正在运行的命令后台挂起) Windows(撤销)

  Linux核心目录结构⭐⭐⭐⭐⭐

在Linux中一切都从根目录开始,Linux目录类似倒挂的大树
目录(windows中叫文件夹):一般用来存放文件

 Linux核心目录⭐⭐⭐⭐⭐

  • /etc/:存放系统管理所需的配置文件的目录
  • /home/:普通文件家目录
  • /root/:root用户家目录
  • /tmp/:存放临时文件的目录
  • /dev/:存放外部设备文件的目录
  • /usr/:目录存放了系统所有用户共享的、只读的应用程序、程序库、文档等资源,是系统核心软件和用户安装软件的主体所在地
  • /var/:存放经常变化的文件(日志、缓存)
  • /proc/:存放内存中的信息、进程、服务信息、内核信息的虚拟目录(只能查看相关配置参数)
  • /sys/:存放内存中的信息、进程、服务信息、内核信息的虚拟目录(可以修改相关配置参数)
  • /bin/:存放所有用户都可以使用的基础命令
  • /sbin/:存放仅供管理员用户用户系统管理和修复的关键命令
  • /boot/:存放Linux系统启动与引导相关的文件,系统内核镜像
  • /lib/ /lib64/:存放系统最基础的内核模块和共享库(共享库:功能代码集合,包括命令、图形功能、多媒体处理等)
  • /mnt/:临时挂载文件的手动挂载点
  • /opt/:用于存放第三方应用程序

 绝对路径与相对路径

绝对路径:从根目录开始的路径

/etc/hostname/etc/sysconfig/network-scripts/ifcfg-eth0/
相对路径:不从根目录开始的路径
etc/hostname

  Linux核心命令⭐⭐⭐

 Linux关机重启命令

# 关机
  shutdown:★★★
      shutdown -c:取消关机
      shutdown-h:
          shutdown -h now:立刻关机
          shutdown -h 10:10分钟后关机
    poweroff:关机
    init 0:关机
    half:关机,关闭系统,不关闭电源,需要手动关闭电源(不推荐使用)  

# 重启
    shutdown -r:★★★
        shutdown -r now:立即重启
        shutdown -r 10:10分钟后重启
    init 6:重启
    reboot:重启

 cd与pwd

# cd:change directory 进入到某个目录(只能是目录)
    cd ~:回到家目录
    cd:回到家目录
    cd -:返回上次所在目录
    cd .:进入当前目录(未来一般与复制,移动一起用)
    cd ..:进入上级目录
        如果想向上多层可以使用 cd ../../的形式
# pwd:print working directory 显示当前所在位置(以绝对路径方式显示)

 mkdir(make directory)创建目录

mkdir创建目录 说明
-p 创建多层目录(mkdir一次只能创建一层目录,创建多层目录需要通过-p来实现)
-v 显示创建目录的过程
# 案例:创建/yuan/ 、/xiao/jiang/目录
[root@yuan ~]# mkdir -pv /yuan/ /xiao/jiang/
mkdir: 已创建目录 "/yuan/"
mkdir: 已创建目录 "/xiao"
mkdir: 已创建目录 "/xiao/jiang/"
[root@yuan ~]# ls /
bin   dev  home  lib64  mnt     opt   root  sbin  sys  usr  xiao
boot  etc  lib   media  oldboy  proc  run   srv   tmp  var  yuan

 touch创建文件

用touch创建文件时其对应的目录需要存在,否则报错

# 案例:在/yuan/目录下创建a.txt b.txt两个文件
  # 相对路径
      [root@yuan ~]# cd /yuan/
      [root@yuan yuan]# touch a.txt b.txt
  # 绝对路径
      [root@yuan ~]# touch /yuan/a.txt /yuan/b.txt

 ls(list)查看目录的内容

ls命令选项 说明
-l(long) 以长格式显示(显示详细信息:文件时间、文件大小、所有者)
-t(time) 按照修改时间排序显示
-r(reverse) 按照逆序排序显示
-h 以人类可读形式显示
-i print the index number of each file 打印每个文件的索引号

 mv(move)移动/改名

  • 如何判断是移动还是改名?
    • 分析接收的目录或文件存在不存在,存在则为移动,不存在则为改名
# 案例:移动/yuan/a.txt到/tmp/
    [root@yuan ~]# ls /yuan/
    a.txt  b.txt
    [root@yuan ~]# mv /yuan/a.txt /tmp/  目录存在即为移动  
    [root@yuan ~]# ls /tmp/
    a.txt

# 案例:将/yuan/a.txt 改名为/yuan/c.txt
    [root@yuan ~]# ls /yuan/    
    a.txt 
    [root@yuan ~]# mv /yuan/a.txt /yuan/b.txt  文件不存在即为改名
    [root@yuan ~]# ls /yuan/
    b.txt 

# 案例:将/yuan/改名为/xiaoyuan/
    [root@yuan ~]# ls /
    yuan
    [root@yuan ~]# mv /yuan/ /xiaoyuan/  目录不存在即为改名
    [root@yuan ~]# ls /
    xiaoyuan

# 总结:
mv既可以移动目录/文件,又可以修改目录目录名/文件名
Linux中有许多命令(touch、mkdir、mv)可以同时处理多个目录/文件

 cp(copy)复制文件或目录

cp  源文件  目标文件

cp无法直接复制目录,需要配合-r使用

cp命令选项 说明
-a  == -dpr all简单理解为复制所有的
详情:-dpr
-r 递归复制,复制目录及其目录下面的内容
-p 复制的时候保持属性不变
-d 可以复制软链接
# 案例:复制/etc/hostname文件到/yuan/下面
    [root@yuan ~]# cp /etc/hostname /yuan/  (/yuan/目录不存在则报错
    # 如果写成 cp /etc/hostname /yuan/my_hostname  (my_hostname文件不存在则自动创建
    [root@yuan ~]# ls /yuan/
    my_hostname
总结:cp复制文件时,目标目录不存在则报错,目标文件不存在则自动创建
cp隐藏功能:备份
# 案例:把系统的网卡配置文件备份到/backup/目录下 # 创建/backup/目录 [root@yuan ~]# mkdir /backup/ [root@yuan ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /backup/ [root@yuan ~]# ls /backup/ ifcfg-eth0 #如果要恢复 [root@yuan ~]# cp /backup/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0

 rm(remove)移除、删除文件或目录

rm无法直接删除目录,需要配合-r使用

rm命令参数 说明
-f force  强制删除不提示(危险)
-r 递归删除,删除目录及其目录内容
# 案例:删除/yuan/a.txt文件
    [root@yuan ~]# ls /yuan/
    a.txt  b.txt
    [root@yuan ~]# rm /yuan/a.txt
    rm:是否删除普通空文件 "/yuan/a.txt"?y
    [root@yuan ~]# ls /yuan/
    b.txt

# 案例:强制删除目录/yuan/
    [root@yuan ~]# rm -rf /yuan/

 echo(回声)输出信息到屏幕

# 案例:输出yuanxiaojiang到屏幕
    [root@yuan ~]# echo yuanxiaojiang
    [root@yuan ~]# yuanxiaojiang

# 案例:利用echo将yuanxiaojiang写入/yuan/a.txt文件中(重定向)
  [root@yuan ~]# mkdir /yuan/
    [root@yuan ~]# echo yuanxiaojiang >/yuan/a.txt  没有a.txt则自动创建
    [root@yuan ~]# cat /yuan/a.txt
    yuanxiaojiang

# 案例:利用echo将is beautiful追加到/yuan/a.txt文件中(追加)
    [root@yuan ~]# echo is beautiful >>/yuan/a.txt
    [root@yuan ~]# cat /yuan/a.txt
    yuanxiaojiang
    is beautiful

总结:
echo :输出
echo >:重定向
echo >>:追加
# 案例:利用echo输出有规律的内容
    echo {0..100}  #输出0-100
    echo {a..z}  #输出a-z
    echo yuan{01..100}  #输出yuan(001)-yuan(100)

# 温馨提示:{}生成序列
    简单是与echo使用输出
    普通是与touch/mkdir一起使用,批量创建文件或目录

 cat(concatenate)显示文件内容

-n number 显示文件内容及行号
合并 扩展
# 案例:输出/etc/hostname 和 /etc/passwd 两个文件的内容
    cat /etc/hostname /etc/passwd
    # 保存到一个文件中
    cat /etc/hostname /etc/password >/yuan/a.txt

Linux环境初步优化(yum源配置)

1、检查是否联网(虚拟机是否可以访问外部网络)

ping www.baidu.com

2、配置yum源(安装软件的软件仓库)

默认情况下yum下载软件的时候是从随机地址下载,配置yum从国内下载

https://developer.aliyun.com/mirror/

# 备份原配置
[root@yuan ~]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    Linux中.bak是备份文件的后缀
    Linux中.repo是yum源配置文件的后缀

# 下载centos7镜像源:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 下载epel镜像源:
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
    没有wget命令需要下载(yum install wget)

# 安装Linux常用工具
yum install -y tree vim wget bash
completion bash-completion-extras lrzsz net
tools sysstat iotop iftop htop unzip nc nmap
telnet bc psmisc httpd-tools bind-utils
nethogs expect
 
#Linux娱乐命令
yum install -y sl cowsay
运行tree命令,运行sl命令

vim编辑器⭐⭐⭐⭐⭐ 

  vi-vim的基本使用

 a)打开文件

vi/vim
如果文件不存在则自动创建
如果目录不存在不会创建,会在保存并退出的时候报错

 b)进入编辑模式

按字母i即可编辑这个文件

 c)退出编辑模式

esc键退出编辑模式

 d)保存与退出

:wq write  quit(退出)
:q! 强制退出不保存
:wq! 强制退出并保存

 e)检查

[root@yuan ~]# cat /yuan/a.txt
yuanxiaojaing is beautiful    #编辑完记得检查

  vim的模式转换⭐⭐⭐⭐⭐

  • 命令模式:通过vi/vim打开文件后进入的模式,默认进入的模式。可以输入各种vi/vim命令(快捷键)
  • 编辑模式(插入模式):用于编辑,修改文件的内容
  • 底层模式:保存退出,搜索使用(退出时输入: 的地方)
  • 可视化模式:用于批量编辑

  vim快捷键⭐⭐⭐⭐⭐

 移动光标类快捷键⭐⭐⭐⭐⭐

# 行之间调整
移动到最后一行行首:  G(shift+g)
移动到第一行行首:  gg
移动到某一行行首:  xxgg(移动到100行:100gg)

# 列之间调整
光标移动到行首:  ^(shift+数字6)
光标移动到行尾:  $(shift+数字4)

 复制、删除(剪切)、粘贴⭐⭐⭐⭐⭐

复制当前行:  yy
删除当前行:  dd
粘贴到当前行后:  p(重复粘贴xxp:重复粘贴三次  3p)

 其他快捷键⭐⭐⭐⭐⭐

撤销 u(undo)
显示行号 :set nu 或  :set number
取消显示行号 :set nonu
搜索(默认是向下查找)

/输入想要查找的内容
n  继续向下搜索
N  继续向上搜索

 可视化模式批量操作⭐⭐⭐⭐⭐

shift+v 进入可视行模式(批零操作行)
ctrl+v 进入可视行模式(批量操作列) 按上下键,选择要处理的范围 如果删除d,如果复制y

  故障案例⭐⭐⭐

 故障原因

  • vi/vim编辑文件的时候,会生成临时文件(隐藏文件)
  • 通过保存退出,隐藏文件会消失
  • 异常情况、断电、同时编辑这个文件,就会出现这个提示 

 解决方案

  • 方案01:✔ 删除临时文件,工作中也可以删掉.,根据提示的路径删除对应的临时文件后重新打开即可.
  • 方案02:恢复未保存数据
    • vim -r /yuan/a
    • rm -r /yuan/.a.txt.swp 
    • 重新打开文件即可修复
posted on 2024-08-28 23:10  猿小姜  阅读(60)  评论(0)    收藏  举报

levels of contents