Linux学习小记

328 阅读10分钟
  • 重启Linux系统:reboot
  • shutdown -h now 立刻进行关机 (使用 root用户 )
  • halt 立刻进行关机 (同上)(使用 root用户 )
  • sync 把内存的数据同步到磁盘 (防止数据丢失)
  • 尽量少用 root 账号进行登录,因为他是系统管理员,权限最大,避免操作失误,可以利用普通用 户登录,登录后再用 su - 用户名 命令来切换成系统管理员身份。

Linux的优点

Linux 是一个开源、免费的操作系统,其稳定性,安全性,处理多并发已经得到了业界的认可, 目前很多企业级的项目都会部署到 Linux 系统上

Linux的发行版本

  1. Ubuntu(乌班图) : Python
  2. RedHat(红帽)
  3. CentOS

Linux的目录结构

  1. 根目录:/
  2. linux,一切皆文件

image.png

  1. /bin:这个目录中存放着经常使用的命令
  2. /sbin:存放系统管理员使用的系统管理程序 super user
  3. /home:存放普通用户的主目录,在Linux中的每一个用户都有一个自己的目录,一般该目录名是以用户的账号命名
  4. /root:该目录为系统管理员,也称为超级权限者的用户主目录
  5. /lib:系统开机时所需的最基本的动态连接共享库,类似于window中的DLL文件。几乎所以的应用程序都需要利用到这些共享库。如果删除的话,很多文件将不能运行
  6. /etc:所有的系统管理所需要的配置文件和子目录my.conf
  7. /usr:用户安装的应用程序的文件都放在这个目录下,类似于windows下的program
  8. /boot:存放启动Linux时的核心文件,包括一些连接文件以及镜像文件。如果这个文件被删除或破坏,那么在启动的时候就会出现问题
  9. proc:【不能动】这是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息
  10. src:【不能动】service的缩写,该目录存放一些服务启动之后需要提取的数据
  11. sys:【不能动】该目录下安装了一个新的文件系统sysfs
  12. tmp:这个目录是用来存放一些临时文件
  13. /dev:类似于windows的设备管理器,把所有的硬件用文件的形式存储。比如:cpu,硬盘等都会被映射成一个文件来管理
  14. /media:Linux系统会自动识别一些设备,例如U盘,光驱等,当识别后,linux会把识别的设备挂载到这个目录下
  15. /mnt:为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载到/mnt/上,然后进入该目录就可以查看里面的内容
  16. /opt:给主机额外安装软件所存放的目录。将安装文件拷贝在此目录下。
  17. /usr/local:安装软件所安装的目录。一般是通过编译源码方式安装的程序
  18. /var:这个目录存放着一些不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件

vi,vim模式,模式切换,快捷键

三种模式

  1. 一般模式:vim打开一个文档就直接进入一般模式。在这个模式中,,可以使用【上下左右】按键来移 动光标,可以使用【删除字符】【删除整行】来处理档案内容,可以使用【复制,粘贴】来 处理文件数据。
  2. 插入模式:按下i,I,o,O,a,A进入编辑模式
  3. 命令行模式:你可以提供相关的指令,完成读取、存盘、替换、离开vim、显示行号等的动作则在此模式 中达成。输入 esc ,再输入:,wq 保存并退出

模式切换

image.png

快捷键

  • yy/xyy【一般】
  • p【一般】
  • dd/xdd【一般】
  • 在文件中查找某个单词【命令行下 /关键字 ,回车查找,输入n就是查找下一个】
  • 设置文件行号,取消文件的行号。【命令行 :set nu (显示行号) :set nonu (消除行 号)】
  • u【一般】
  • G/gg:编辑 /etc/profile 文件,使用快捷键到该文档的最后一行 G 和最首行 gg【一般】
  • 编辑 /etc/profile 文件,并将光标移动到20行,输入20,再输入shift+g【一般】

用户管理:

添加用户,指定/修改密码,删除用户,查询用户信息,切换用户,查询当前用户/登录用户

  1. useradd 用户名【利用root用户进行创建】
    • 家目录:/home/xx
  2. useradd -d 指定目录 新的用户名 给新创建的用户指定家目录
  3. passwd 用户名 【必须要添加后面的用户名,否则是给当前登录的用户在修改 密码】
  4. pwd 显示当前用户所在目录
  5. logout 注销
  6. userdel 用户名 【删除用户前,要先切换到 root 用户进行删除: su - root ;删除前要关闭用户进程, logout】
  7. userdel xm 删除用户但保留家目录
  8. userdel -r xm 删除用户和用户家目录
  9. id 用户名 查询用户信息
  10. su - 切换到最高权限用户,root
  11. su - 用户名
  12. exit/logout 返回到原来的用户
  13. whoami 查看当前用户
  14. who am i 查看登录用户

添加用户组,删除用户组,增加用户直接加上组,修改用户的组

  1. groupadd 组名
  2. groupdel 组名
  3. useradd -g 用户组 用户名【当创建用户并没有指定组时,会默认生成一个和用户名一样的组,并且会将用户放到组中】
  4. usermod -g 用户组 用户名

用户和组的相关文件

  • /etc/passwd【用户配置文件】
    • 用户名:口令(加密):用户标识号(uid):组标识号(gid):注释性描述:主目录 (用户所在家目录):登录shell
  • /etc/shadow【口令配置文件】
    • 登录名:加密口令(可以看到,若没有设置密码则没有内容):最后一次修改时 间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/group【组配置文件】
    • 口令:组标识号:组内用户列表(看不到收起来了)

文件目录管理

  1. pwd 显示当前工作目录的绝对路径
  2. ls -a 目录或文件 显示当前目录的文件或目录,包括隐藏文件
  3. ls -l 目录或文件 以列表的形式显示
  4. cd ~ 切换到自己的家目录
  5. cd .. 回到当前目录的上一级目录
  6. mkdir -p 要创建的目录 创建多级目录
  7. mkdir 要创建的目录 创建一级目录
  8. rmdir -rf 要删除的目录 删除非空目录
  9. rmdir 要删除的空目录 删除的是空目录,如果目录下有内容是无法删除的
  10. touch 文件名称 创建空文件
  11. cp -r source(被拷贝的文件) dest(指定位置) 递归复制整个文件夹
    • 将 /home/bbb 整个目录,拷贝到 /opt cp -r /home/bbb/ /opt/
  12. rm [选项] 要删除的文件或目录
    • -r 递归删除整个文件夹
    • -f 强制删除不提示
  13. mv oldNameFile newNameFile 【重命名文件】
  14. mv 现路径 移动后的路径【移动文件】
  15. mv pig.txt /root/cow.txt【移动并重命名】
  16. cat [选项] 要查看的文件
    • -n 显示行号
    • cat -n /etc/profile | more
  17. more指令
    • 基本语法: more 要查看的文件
    • 既可以结合 cat 使用,也可以单独使用 image.png
  18. echo [选项] [输出内容]
  19. head 文件 查看文件的头十行内容
  20. head -n 5 文件 查看文件的头五行内容,5可以是任意行数
  21. tail 文件 查看文件尾十行的内容
  22. tail -n 5 文件 查看文件尾5行的内容
  23. tail -f 文件 实时追踪该文件的所有更新
  24. ls -l > 文件 (将列表的内容写入文件中,覆盖写)
  25. ls -al >> 文件 (列表的内容追加到文件的末尾)
  26. cat 文件1 > 文件2 (将文件1的内容覆盖到文件2)
  27. echo 内容 >> 文件 (将内容追加到文件中)
  28. ln -s [原文件或目录] [软链接名称] (给原文件创建一个软链接)
  29. history - history 显示所有的历史命令 - history 10 显示最近使用过的10条历史命令 - !5 执行历史编号为5的指令

组管理和权限管理:

文件所有者

  1. 查看文件所有者ls -ahl
  2. 修改文件的所有者chown 用户名 文件名

文件所在组

  1. 查看文件所在组ls -ahl
  2. 修改文件所在组chgrp 组名 文件名

其他组

  1. 添加用户时,可以指定用户添加到哪个组
    • useradd -g 用户名 组名
  2. 利用root的管理权限可以改变某个用户所在的组
    • usermod -g 新组名 用户名
  3. 改变用户登录的初始目录,(前提是用户需要进入这个新目录的权限)
    • usermod -d 目录名 用户名

权限基本介绍

分析 -rw-rw-r-- 1 for fruit 0 7月 11 00:33 orange.txt

  1. 第0位确定文件的类型
    • l 链接
    • d 目录
      • 代表普通文件
    • c 字符设备文件 鼠标 键盘 /dev
    • b 块设备,硬盘
  2. 第1-3位确定所有者拥有该文件的权限
  3. 第4-6位确定所属组拥有该文件的权限
  4. 第7-9位确定其他组拥有该文件的权限 rwx权限详解 作用到文件:
  • r 可读
  • w 可修改,但不代表可以删除,删除一个文件是对该文件所在目录有写权限,才可以删除该文件
  • x 可执行fr 作用到目录:
  • r 可读,可读取查看,ls查看目录内容
  • w 可修改,对目录内创建+删除+重命名目录
  • x可执行,可以进入该目录,cd 1 文件:硬链接数或目录:子目录数+文件数 for 用户 fruit0 文件大小(字节) 如果是文件夹,显示4096 7月11 00:33 最后修改的日期 orange.txt 文件名

修改权限-chmod

通过+、-、= u所有者 g所在组 o其他人 a所有人

  • chmod u=rwx,g=rx,o=x 文件/目录名
  • chmod o+w 文件/目录名
  • chmod a-x 文件/目录名 通过数字变更权限
r=4,w=2,x=1;rwx=7
  • chmod u=rwx,g=rx,o=x 文件/目录名 等价于 chmod 751 文件/目录名

修改文件的所有者-chown

  • 改变所有者
    • chown newowner 文件/目录
  • 文件/目录
    • chown newowner:newgroup
  • -R 如果是目录,则使其下所有子文件或目录递归生效

修改文件/目录所在组-chgrp

  • chgrp newgroup 文件/目录

网络配置:

查看ip地址:ifconfig ping 自动获取ip 写静态ip 修改主机名 ip地址和主机号的映射

搭建Java项目的运行环境

jdk tomcat mysql

进程管理:

终止一个进程

服务管理:

systemctl ... 服务名 service 服务名 ... 服务运行级别

防火墙

开启防火墙 关闭防火墙 查看防火墙的状态

定时任务调度 crond