Liunx基础语法

linux的目录结构

  • llinux没有盘符的概念,所有的文件,都是从根目录开始的,按照层级依次查找,直到找到文件为止

  • 常用的目录:

    1. bin:储存二进制文件和常用的可执行文件

    2. etc:储存linux中的配置文件,一般我们会修改其中的相关配置,完成服务或者环境的搭建

    3. home:普通用户的家目录,一般用户产生的文件会默认存放在家目录中

    4. root:超级管理员的家目录,一般超级管理员产生的文件会默认存放在root目录中

    • 超级管理员拥有一切权限,甚至可以将所有的系统文件删除

  1. sbin:存储的是超级管理员使用的二进制文件和可执行文件,一般用于系统管理

linux的常用的命令

1、ls命令

  • ls 查看当前工作目录中的文件结构,显示所有文件的文件名

    • -a :显示所有文件的文件名,包括隐藏文件

    • -l:以列表的形式展示文件,包含多列文件信息

    • -h:更加人性化的展示文件大小,配合-l进行使用(单独使用没有效果)

# 查看文件目录
ls
# 查看文件目录,包括隐藏文件
ls -a
# 查看文件目录,以列表形式展示文件信息
ls -l  
等价于:ll
# 查看文件目录,以列表形式展示,并且人性化展示文件大小
ls -hl
# 查看文件目录,以列表形式展示,并且人性化展示文件大小,显示所有文件,包括隐藏文件
ls -ahl
ll -ah

2、cd命令

  • 绝对路径:从根目录开始,按照层级查找,直到找到该文件为止

  • 相对路径:从当前工作目录开始查找,知道找到该文件为止

    • .:当前目录(./可以被省略)

    • ..:上一级目录

  • cd 命令就是切换工作目录使用的,工作目录切换后,我们默认使用linux操作的就是当前工作目录的内容

  • cd 路径 (cd到的路径,必须是一个目录,并且,该目录必须存在)

# 切换共做目录为root目录
cd /root
# 使用绝对路径切换到bbb目录下的kettle目录
cd /root/bbb/kettle
# 使用相对路径切换到bbb目录下的kettle目录
cd ./bbb/kettle  # ./可以省略
# 切换到上一级目录
cd ..
# 切换到上两级目录
cd ../..
# 切换到上一次操作的工作目录
cd -
# 切换到家目录
cd ~
cd
# 切换到根目录
cd /

3、mkdir命令

  • mkdir用于创建空目录

  • 格式: mkdir 【-p】 目录名称

# 创建单个单层级目录
mkdir aaa
# 创建单个多层级目录(-p可以写在目录名称之前,也可以写在目录名称之后)
mkdir -p bbb/ccc/ddd
# 创建多个单层级目录
mkdir ccc ddd
# 创建多个多层级目录
mkdir -p eee/fff/eee fff/eee/fff

4、touch命令

  • touch 一般情况下是用来创建新文件的

    • 不能创建文件夹

    • touch创建的文件可以是任意扩展名

  • 格式:touch 文件名称/文件路径

# 创建一个txt文件
touch a.txt
# 创建一个。java文件
tocuh a.java
# 在bbb目录下创建一个a.txt文件
touch ./bbb/a.txt
# touch也可以同时创建多个文件
touch 文件路径1 文件路径2 。。。

5、rm命令

  • rm删除指定文件或文件夹

  • rm 【选项】 要删除文件的路径

    • -f 强行删除,不进行提示

    • -r 递归删除,可以删除文件夹

# 删除a.txt文件
rm a.txt
# 删除a.java文件,不进行提示
rm -f a.java
# 删除aaa文件夹
rm -r aaa
# 删除bbb文件夹,不进行提示
rm -rf bbb
# 删除根目录下所有文件,杀伤力极大,请谨慎使用
# 此命令一出,Linux根目录下很多文件,可以能彻底从这个星球上彻底消失了
rm -rf /
# 指定路径删除,菜刀可以用来做菜亦可以用来s人
rm -rf /home/fileName

6、mv命令

  • mv命令用来移动或者重命名文件

  • 格式:mv 源文件路径 目标文件路径

  • 如果要移动到的路径不存在则,重命名

  • 如果要移动到的路径存在则移动

# 移动a.txt文件到bbb目录中
mv a.txt bbb # 此时bbb目录已存在
# 将b.txt进行重命名为c.txt
mv b.txt c.txt
# 将aaa目录,移动到bbb目录下
mv aaa bbb # 此时bbb目录已存在
# 将aaa目录改名为bbb目录
mv aaa bbb  # 此时bbb目录不存在
# 将a.txt文件移动到bbb目录下,并改名为abc.txt
mv a.txt ./bbb/abc.txt

7、cat和more

  • cat读取文本文件,一次性输出到终端窗口中,并且光标停留在末尾

  • more 分页读取文本文件,一次读取一页可以使用命令进行换行或翻页

    • enter 向下一行或n行 ,可以设置

    • 空格 向下翻一页

    • b向上翻一页

    • q退出预览

  • 注意,无论是cat还是more只适合读取中小型文件,不适合读取大型文件

# 使用cat读取文本信息
cat a.txt
# 使用more读取文本信息
more a.txt

8、cp命令

  • cp用于复制文件

  • cp 源文件名 目标文件名

  • cp命令与mv命令使用方式基本一致,只是在复制或移动完成后,cp命令会保留源文件,mv命令会删除源文件

# 复制a.txt到当前目录下,命名为b.txt
cp a.txt b.txt
# 复制a.txt文件到ccc目录下
cp a.txt ccc # ccc目录存在
# 复制aaa目录到当前目录下,并改名为bbb
cp -r aaa bbb # bbb目录不存在
# 复制aaa目录到ccc目录下
cp -r aaa ccc  # ccc目录存在

9、ps和kill

  • ps 查看进程信息

    • -ef 查看所有进程信息

  • kill -9 杀死进程

    • kill -9 进程号

10、ifconfig命令

  • 获取当前主机的网络环境信息

    • mac 和 Linux 使用 ifconfig

    • windows 系统使用 ipconfig

[root@node1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
      inet 192.168.88.100 netmask 255.255.255.0 broadcast 192.168.88.255
       #虚拟机局域网网络环境
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
      inet 127.0.0.1 netmask 255.0.0.0
          #本地回环地址
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
      inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
            #外网连接环境

11、clear命令

  • 对当前终端窗口进行清空

    • 清空不是删除历史命令,而是将其上移,使光标处于终端窗口的第一行

    • ctrl+l 也可以进行清空窗口

12、重启及关机命令

  • reboot 重启命令

  • shutdown -h now 立即关机

    • shutdown -h 10 十分钟后关机

  • halt 立即关机

13、which命令

  • which 是查询当前的可执行文件所在位置的绝对路径

  • which ls 查询ls所在位置的绝对路径

    • ll命令就是系统底层调用了ls-l ,并没有ll命令

14、hostname

  • 使用hostname可以查询主机名称

15、grep和管道

  • grep 要查询的文本信息,目标文本文件

#在aaa.txt文件中查找lang
grep   lang   aaa.txt  
#在aaa.txt文件中查找a,高亮显示
grep a aaa.txt  --color
  • |第一个命令的输出,就是第二个命令的输入

#查询所有的进程  (所有的进程信息就是输出)
ps -ef
#init。。文件中查询a文本出现的位置
grep a init。。
#查询所有进程中包含mysql的信息(下边两行信息即为如下命令的输出)
ps -ef | grep mysql
#mysql 1607 1 1 08:54 ? 00:01:47 /usr/sbin/mysqld
#root 46773689 0 10:47 pts/0 00:00:00 grep --color=auto mysql
#查询所有进程中,包含mysql且为root用户服务的信息
ps -ef | grep mysql | grep root
#查询6月份创建的所有名字中带a 的文件信息
ps -ef | grep a | grep 6月

16、用户管理命令

  • 创建用户:useradd 用户名

  • 设置用户密码: passwd 用户名

  • 删除用户:userdel -r 用户名

    • 当前用户如果已经登陆或者远程访问则需要先关闭进程才可以被删除

17、用户权限管理

  • 怎么查看用户权限:ll或者ls -l 前10列数据进行了文件或目录的权限展示

  • 第1列:文件类型 d代表文件夹 -代表普通文件 l连接

  • 后9列:权限展示

    • 前三列:当前用户权限(u)user

    • 中三列:用户组权限(g)group

    • 后三列:其他用户权限(o)other

  • 权限类型:

    • r:读取权限

    • w:写入权限

    • x:可执行权限

    • -:没有权限

  • 字母型权限设置:

    # 给a.txt文件添加当前用户的可执行权限
    chmod u+x a.txt
    # 给a.txt文件当前用户减少写入权限
    chmod u-w a.txt
    # 给a.txt,当前用户添加写入权限,给所在组用户减少写入权限,给其他用户增加只读权限
    chmod u+w,g-w,o+r a.txt
    # 给aaa目录,组用户添加写入权限,减少可执行权限,变为(rw),给其他用户增加写入权限
    chmod g=rw,o+w aaa
  • 数字型权限设置:r:4 w:2 x:1

    # 给aaa.txt文件条件当前用户可读可写可执行,所属组可读可写,其他用户只可以读
    chmod 764 aaa.txt

vi编辑器

  • vi编辑器有三种模式:命令模式,插入模式,末行模式(底行模式)

  • vi 文件名  进入命令模式
    • 命令模

      • 进入插入模式 o O ia

      • 进入末行模式

    • 插入模式

      • 进入命令模式 先使用esc进入命令模式,使用 进入末行模式

      • 进入末行模式 esc

    • 末行模式

      • 进入命令模式 enter esc

        • 进入插入模式 使用esc 进入命令,使用o Oia 进入插入模式

  命令模式 插入模式 末行模式
命令模式 o O ia
插入模式 esc
末行模式 enter esc o Oia

1、命令模式相关命令

命令 功能
o 在当前行后面插入一空行
O 在当前行前面插入一空行
dd 删除光标所在行
ndd 从光标位置向下连续删除 n 行
yy 复制光标所在行
nyy 从光标位置向下连续复制n行
p 粘贴
u 撤销上一次命令
gg 回到文件顶部
G 回到文件末尾
/str 查找str

2、底行模式相关命令

命令 功能
:w 文件 另存为
:w 保存(ctrl + s)
:q 退出, 如果没有保存,不允许退出
:q! 强行退出, 不保存退出
:wq 保存并退出
:x 保存并退出
Shift + z + z 保存退出
:set nu 设置行号
:%s/旧文本/新文本 文本替换
:nohl 取消高亮
上一篇:deepdiff:对比文件


下一篇:SpringMVC框架----入门