Linux

79 阅读9分钟

一、目录结构

  1. /bin :存放二进制可执行文件
  2. /boot:存放开机时用到的各种文件
  3. /dev:Device设备,存放设备,这里的设备不能直接使用,需要进行挂载
  4. /etc:存放系统配置文件,如用户密码(/etc/passwd文件中)等
  5. /home:默认的 除了 root用户 之外的 其他用户的主目录
  6. /lib:存放系统中的运行程序所需要的函式库和其他模块
  7. /media:存放可以移除的装置(软硬盘)
  8. /mnt:暂时挂载一些文件系统,作用与/media类似
  9. /opt:可以安装第三方软件的目录
  10. /proc:虚拟文件系统,它存的数据都在内存中
  11. /root:超级 管理员用户root的用户目录
  12. /run:系统开机时的各项信息
  13. /sbin:存放超级管理员用户root的可以执行的二进制文件
  14. /srv:网络服务所需要的数据目录
  15. /sys:虚拟文件系统,存放与硬件相关的信息,/proc类似
  16. /tmp:存放临时文件
  17. /usr:存放系统应用程序程序,/usr/local一般就是安装软件
  18. /var:主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件

根目录:/

  • 绝对路径:从/ 开始的写起的文件名或者目录名称

  • 相对路径:相对于当前路径的文件或目录名的写法

  • 特殊目录:

    • . :表示当前目录,也可以用./

    • .. :表示上一级目录,也可以用../

    • ~ :表示当前用户所属根目录

二、Linux常用命令

  1. pwd :显示当前所在的目录

  2. cd

  3. ls
  4. mkdir

  5. rm

  6. mv

    • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
    • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  7. free 查看内存使用情况(待补充)

  8. df 显示目前在 Linux 系统上的文件系统磁盘使用情况统计。

  9. clear 清屏

  10. date

  11. du

  12. top

    • Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
  13. uptime

  14. find

    • 用来在指定目录下查找文件,目录
    • find 查找目录(选项) 查找内容
    • -name:搜索文件名称
    • -type:搜索文件的类型
      • f :搜索文件
      • d:搜索文件夹
      • l:搜索软连接
  15. shutdown

    • shutdown -h now : 立即关机
    • shutdown -h 17:00 系统将在17:00 关机
    • shutdown -c 取消操作
  16. reboot 系统重启命令

  17. netstat

    • -u :显示udp连接
    • -t :显示tcp连接
    • -l :显示处理监听状态的连接(仅显示监听套接字)
    • -p :显示进程号和程序名称
    • -n :直接使用ip地址,而不通过域名服务器(dns)
  18. ps

    • -e : 显示所有进程
    • -f : 显示UID,PPIP,C与STIME栏位
    • a : 显示现行终端机下的所有程序,包括其他用户的程序
    • u :以用户为主的格式来显示程序
    • x :显示所有程序,不以终端机来区分
  19. kill

    • kill 进程号
    • kill -9 进程号
  20. cp

    • 拷贝目录
      • -R/-r :拷贝目录必须使用的参数,同时可以递归拷贝
    • 拷贝文件
      • 不修改文件名
      • 修改文件名
    • -p 连同文件的属性一起复制过去,而非使用默认属性(备份常用);
    • -i 若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
  21. scp

    • 从本地提交文件到服务器
    • 从本地提交文件夹到服务器
    • 从远程拷贝到本地则先是远程地址 然后是本地目的地
      • 目录拷贝则需要 -r 参数
  22. tar

三、文件

  1. 文件属性和修改
    • 文件属性

      第一个root 表示所属用户,第二个表示所属用户组。

    • 修改文件属性

      1. chgrp: 更改文件属组

        chgrp [-R] 属组名 文件名 -R 递归更改文件属组,该目录下的所有文件的属组都会更改。

      2. chown: 更改文件属主,也可以同时更改文件属组

        chown [-R] 属主名 文件名

        chown [-R] 属组名 :属组名 文件名

      3. chmod:更改文件9个属性

        chmod [-R] [rwx] 文件

        • chmod u+x file     给file的属主增加执行权限
        • chmod u=rwx,g=rx,o=x file 上例的另一种形式

  2. 多种查找文件的方式

    • touch

    • cat

      • 选项
        • 如果cat f1 , cat f1 > d f1 不存在则报错 找不到文件
        • -b :非空白行列出行号
        • -n :行号包括空白行

      输出重定向

      >     覆盖之前的内容输出
      >>    追加内容输出
      

    • tac

      • 内容倒序展示
    • nl

    • less

      • d:向后翻半页数据
      • b:向上翻一页数据
      • q:退出
      • 回车键:滚动一行
      • 空格键:滚动一页
    • more

      若文件内容过大,会按照百分比显示,而cat会显示所有内容

      • d:向下查看文件内容(翻页)
      • b:向上查看文件内容(翻页)
      • q:退出
      • /字符内容:向下搜索“字符内容”
      • n:重复上一个搜索操作,向前搜索
      • 空格键:向下翻页
      • 回车键:向下翻一行
    • head

      显示文件开头某几行的文件内容,默认前10行(注意你要是粘贴复制的linux认为这是一个字符)

      • head -n k c 等价于head -n +k
      • head -n -k c 相当于输出(除了从尾开始倒序计数为K的内容)的内容
    • tail

      查看文件末尾几行的文件内容,默认是最后10行,使用-n参数指定展示多少行

      • -f 常用于查看线上日志,动态查看(循环读取)文件内容
        • 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 文件更新就可以看到最新的文件内容。
        • 命令:tail -f -n 20 filename 或 tail -20f filename
    • wc

      • -l 统计行数
      • -w 统计单词数
      • -c 统计字节数

四、软链接和硬链接

  1. 什么是软连接?为什么用它?怎么使用软连接?

    • 相当于window的快捷方式
    • file3是file1的软连接,file3和file1是两个不同的文件,不同的索引节点号,不同的数据块,但是file3中数据块只保存了file1的路径名。
    • 源文件被删除后,软连接文件还存在。但是保存的是无效链接。
  2. 什么是硬链接?为什么用它?怎么使用硬链接?

    • linux文件系统中,保存在磁盘分区中的文件不管什么类型都有一个索引节点,硬链接就是通过索引节点来进行链接。
    • 一个文件拥有多个有效路径名,通过建立硬链接到重要文件,以防止“误删”的功能。(其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放,文件真正删除的条件是与之相关的所有硬连接文件均被删除。)
  3. image-20210128101438538

    image-20210128110240981

    image-20210128111411324

五、用户管理

在Linux系统中,用户是按组分类的,一个用户属于一个或多个组

管理用户的文件: /etc/passwd

  1. 添加

    • useradd zhangsan

      • 默认情况下在 /home 下创建一个zhangsan的目录
      • 系统默认创建一个与用户同名的用户组
      • image-20210126231115762
        • image-20210126232003320
      • 参数options
        • -d :指定用户的家目录
        • -u :指定用户的id
        • -g :指定用户的用户组
        • -G :指定用户的次要组
          • useradd -d /home/lisi -g lijia -G zs -u 11011 user
    • 设置密码 passwd [-l] [-u [-f]] [-d] [username]

      • -l:停止账号使用、 -u 启用已被停止的账户、-f 强迫用户下次登录时必须修改口令、-d 删除密码

      • image-20210126232702653

      • image-20210127133925667

      • image-20210127135554829

        -l : root 创建的mm、nn用户将nn用户-l后 无法再从(同级)mm切换到nn

    • 切换用户

      • su username:当前目录不变
      • su - username: 切换到该用户的目录
      • sudo su:平民切换到root
        • 有可能会出现 is not in the sudoers file. This incident will be reported.解决方法就是在/etc/sudoers文件里给该用户添加权限
      • zhangsan 用户下使用CTRL+D 退出当前用户(到root)==输入命令 exit
    • 相关其它命令

      • 使用whoami查看我是谁
      • id:查看用户的基本信息,包括用户id、组id等。
        • image-20210126233114954
  2. 修改

    • -u : 修改用户的id

      • image-20210127131945764
    • -g : 修改用户组

      • image-20210127132313540
    • -G : 修改用户的次要组

      • usermod -G 1002 zhangsan
    • -l : 修改用户名

      • usermod -l zs zhangsan
        • 注意该用户的目录不会变
        • image-20210127133103107
        • 同时使用 -d /home/zs 改变主目录
  3. 删除

    • 使用userdel username直接删除用户
    • 使用userdel -r username 同时删除用户记录和用户目录(默认对应的是/home/username)

六、用户组管理

  1. 添加

    • groupadd
      • -g:指定用户组id
      • groupadd -g 1111 lisi
  2. 修改

    • groupmod -n 新组名 旧组名
    • groupadd -g 新的用户组id 用户组名
  3. 删除

    • 删除不包含用户的组
      • groupdel groupname
    • 删除已经包含的用户组
      • groupdel groupname
      • groupdel: cannot remove the primary group of user 'username'
        • userdel -r username
          • image-20210127142454676
  4. 用户组切换

    image-20210127141023544

七、磁盘管理

八、进程管理

九、防火墙

防火墙:一组规则,用来保护网络安全。对进出内容进行规则检测(来源、目标、协议),以确定是否允许其通过。

centos7.x 默认安装了firewalld,firewalld 也是 Linux 机器上管理防火墙规则的工具

  • firewall-cmd --state 查看状态
  • firewall-cmd --query-port=3306/tcp 查询3306 这个端口是否开放 (别忘了重启防火墙)
  • firewall-cmd --permanent --add-port=3306/tcp 开放3306端口(没有--permanent重启后将会失效)
  • firewall-cmd --permanent --remove-port=3306/tcp 移除端口
  • firewall-cmd --reload 重新启动防火墙(只要改了配置就要做)

以上参数解释:

  • firewall-cmd:linux 提供操作firewall的一个工具
    • --version :查看版本
    • --help:查看帮助
    • --status:查看状态
    • --zone=public --list-ports :显示所有打开的端口
  • --permanent:表示设置为持久
  • --add-port:标识添加的端口
  • --remove-port:标识删除的端口
  • image-20210128143311431

十、服务管理

systemctl是CentOS的服务管理工具中主要的工具

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

​ 路漫漫其修远兮,吾将上下而求索。