Linux进阶

LINUX

1、LINUX文件目录

image-20240711210109731

以下是对这些目录的解释:

  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /boot:
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev :
    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /etc:
    etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

  • /lib
    lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • /opt
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc
    proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    1
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv
    该目录存放一些服务启动之后需要提取的数据。

  • /sys

    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

  • /usr
    usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin:
    系统用户使用的应用程序。

  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:
    内核源代码默认的放置目录。

  • /var
    var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是 /bin、**/usr/bin** 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

2、vim编辑器

  • 正常模式

    直接使用命令 vim [文件名] 就可以对文件进行复制、粘贴、删除文本内容

  • 插入模式

    打开文件之后,按下按键 i 即可进入插入模式

  • 命令行模式

    【按下ESC,输入:】在这个模式下可以根据你提供地相关指令,完成读取、存盘、替换、离开vim、显示行号等动作

    拷贝当前行 yy,拷贝当前行向下五行 5yy,并粘贴 (输入 p)

    删除当前行 dd,删除当前行向下五行 5dd

    在文件中查找某个单词【命令行下 / 关键字,回车 查找,输入 n 就是查找下一个】

    设置行号 【 set nu 】 | 取消行号【 set nonu】

    快速查看第一行和最后一行【 G | gg 】

    撤销已经输入的文字 在一般模式下输入小写的【 u 】

    光标快速定位到某一行 【行号 shift + g】

3、安装Java

命令行安装

  1. 执行安装命令
    1
    yum install java-1.8.0-openjdk-devel -y
  2. 检查Java版本
    1
    java -version
    如果成功安装,你应该可以看到类似以下的版本信息:
1
2
3
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
  1. 设置JAVA_HOME环境变量

编辑/etc/profile文件,将以下行添加到文件底部

1
2
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
  1. 使之生效

执行以下命令,使之生效:

1
source /etc/profile

4、关机重启

基本命令

1
2
3
4
5
6
shutdown -h now  立即关机
shutdown -h 1 一分钟之后关机
shutdown -r now 现在重新启动计算机
halt 关机
rebot 现在重启
sync 把内存数据同步到磁盘

5、登陆注销

1
2
su 【用户名】  切换用户
logout 注销用户

6、用户管理

  • 创建用户

    1
    2
    useradd 【用户名】   此命令会默认创建一个与用户名相同的家目录 -g 指定组
    useradd -d 【用户名】 指定目录创建用户
  • 设置/修改密码

    1
    passwd  【用户名】  -不指定用户名就会给当前用户修改密码
  • 删除用户

    1
    2
    userdel 【用户名】
    userdel -r 【用户名】
  • 查询用户信息

    1
    2
    id 【用户名】  
    whoami/who am i 查看当前登录用户信息
  • 用户组

    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

    用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

    1
    2
    3
    4
    5
    6
    groupadd 【组名】  -添加组
    groupdel 【组名】 -删除组
    groupmod 选项 【组名】 -修改组 选项 -g GID 为用户组指定新的组标识号。
    -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
    -n新用户组 将用户组的名字改为新名字

  • 用户和组相关文件

    1
    2
    3
    /etc/passwd 用户配置文件,存储用户各种信息
    /etc/shadow 口令配置文件,存放登录名,加密口令等信息
    /etc/group 组配置文件,记录linux包含的组信息,包括组名,口令,组标识号,组内用户列表
  • 指定运行级别

    image-20240714180138133

    执行运行级别

    1
    2
    3
    4
    5
    init 【运行级别】       -- 切换运行级别
    systemctl get-default --查看当前运行级别
    systemctl set-default 【级别】 --查看默认级别
    【multi-user.target】 -无图形化界面
    【graphical.target】 -图形化界面
  • 帮助指令

    1
    2
    man 【命令或配置文件】 --获取命令帮助信息
    help --获取shell内置命令帮助信息

7、文件目录指令

  • cd 命令

    1
    2
    cd ~  -- 直接回到家目录
    cd .. -- 返回上一级
  • mkdir 创建指令

    1
    2
    mkdir 【目录】     --默认只可以创建一级目录
    mkdir -p 【目录】 -- 可以创建多级目录
  • rmdir 删除指令

    1
    2
    3
    rmdir  【选项】  -- 默认只可以删除空目录
    rm -r 【选项】 -- 强制删除
    rm -rf 【选项】 -- 强制递归删除
  • cp 拷贝指令

    1
    2
    cp 【选项】 target    -- 拷贝到指定目录
    cp -r 【选项】 target -- 递归拷贝到指定目录
  • mv 移动指令

    1
    mv 【旧文件】 【新文件】   --在同一个目录为重命名,不在同一个目录为移动文件
  • head 查看文件头部

    1
    2
    head -f --查看文件前十行
    head -n 【行数】 -- 查看头部N行
  • tail 查看文件尾部内容

    1
    2
    tail -f -- 动态查看尾部10行
    tail -n 【行数】 -- 查看末尾N行
  • 指令>【输出重定向】和指令>>【追加】

    示例

    1
    2
    ls -l >  【文件】   将列表内容覆盖写到该文件中
    ls -l >> 【文件】 将列表内容追加写到该文件末尾
  • ln 指令 软连接

    软连接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径

    1
    ln -s 【源文件目录】 【软链接名称】  -- 给源文件创建一个软链接
  • history 指令

    查看曾静执行过的指令

    1
    2
    history 【行数】   -- 查看最近执行的N条指令
    !【行号】 -- 执行曾经执行过的指令

8、时间日期指令

  • date 指令 -显示当前日期

    基本语法

    1
    2
    3
    4
    5
    date						 -- 显示当前时间
    date +%Y -- 显示当前年份
    date +%m -- 显示当前月份
    date +%d -- 显示当前是哪一天
    date "+%Y-%m-%d %H:%M:%s" -- 显示年月日时分秒

9、搜索指令

  • find指令

    find指令将从指定目录向下递归遍历各个子目录进行文件查找,将满足条件的文件或者目录显示在终端

    1
    2
    3
    4
    find 【搜索范围】 【选项】
    -name -- 按照指定文件名查找文件
    -user -- 查找指定用户名所有文件
    -size -- 按照指定文件大小查找文件
  • grep指令 和 管道符 |

    grep过滤查找,管道符,“|” ,表示将前一个命令的处理结果输出传递给后面的命令处理

    基本语法

    1
    2
    3
    grep 【选项】 查找内容 源文件
    -n 显示匹配行及行号
    -i 忽略字母大小写

10、压缩指令

  • gzip/gunzip 指令

    1
    2
    gzip   【文件】  -- 压缩文件,将文件压缩为gz文件
    gunzip 【文件】 -- 解压文件
  • zip/unzip 指令

    1
    2
    3
    4
    5
    6
    zip   【选项】 xxx.zip -- 压缩
    unzip 【选项】 xxx.zip -- 解压缩
    zip选项
    -r -- 递归压缩
    unzip选项
    -d <目录> -- 解压后指定解压目录