Linux学习笔记

1. Linux

1.1. Linux目录结构

  • bin 存放最经常使用的命令
  • sbin Super User,存放管理员使用的系统管理程序
  • home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录是以用户的账号命名
  • root 该目录为root用户的主目录
  • lib 系统开机所需要的最基本的动态链接共享库,作用列斯与windows中的dll文件,几乎所有的应用程序都需要用到这些共享库
  • etc 所有系统管理所需要的配置文件和子目录
  • usr 非常重要,用户的很多应用程序和文件都放在这个目录下
  • boot 存放启动linux的一些核心文件,包括一些连接文件以及镜像文件
  • dev 类似于windows的设备管理器
  • media linux系统会自动识别一些设备,比如U盘光驱,会把是别的目录挂在到这个目录下
  • mnt 让用户临时挂载别的文件系统,比如U盘
  • proc 是一种伪文件系统,即虚拟文件系统,存储的是当前内核运行状态的一系列特殊文件,proc/meminfo可以查看内存占用

1.2. vi

  • 正常模式
  • 插入/编辑模式
  • 命令行模式

1.3. 开关机等

  • shutdown

    • shutdown -h now 立即关机
    • shutdown -h 1 1分钟后关机
    • shutdown -r now 立即重启
  • halt 等于立即关机

  • reboot 重启

  • sync 将内存数据同步到磁盘

1.4. 用户管理

  • useradd -d 指定目录 添加一个用户
  • passwd xm 给xm设置密码
  • userdel xm 删除xm用户
    • userdel xm home目录仍然保留
    • userdel -r xm 删除home目录
  • id 用户 获得用户id,组id 组名称
  • su 切换用户
  • whoami 返回当前用户名

1.5. 用户组管理

系统可以对有共性的多个用户进行统一的管理

  • groupadd 组名
  • groupdel 组名
  • useradd -g 组名 用户名 创建用户时指定用户组
  • usermod -g 组名 用户名 修改用户组

1.6. 用户和组相关的文件

  • /etc/passwd
  • /etc/shadow
  • /etc/group

以上三个都是用vi文件打开的

passwd打开后:用户名 密码 uid gid home目录 shell解析器

group打开后:组名 密码 组id

1.7. 实用指令

1.7.1. 指定运行级别

  1. 关机
  2. 单用户 找回丢失密码
  3. 多用户无网络服务
  4. 多用户有网络服务
  5. 保留
  6. 图形界面
  7. 重启
  • init 切换到指定运行级别的指令

如何找回root密码?
思路:进入单用户模式,然后修改root密码。因为单用户模式,root不需要密码就可以登录。

开机 -> 引导时候选中命令内核 -> 输入1表示进入单用户模式 -> reboot -> 利用passwd命令修改密码

1.7.2. 帮助指令

当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助之林来了解这个指令的用法。

  • man ls 查看ls的用法
  • help ls 查看ls的用法

1.7.3. 文件目录的指令

  • pwd
  • ls -l 列表实现 -a 显示所有文件和目录,包括隐藏
  • cd ~ 回到自己的home目录 …回到当前目录的上一级
  • mkdir -p 创建多级目录
  • rmdir 删除空目录
  • rm -rf 强制删除,可以删除文件夹
  • touch 本质上是修改一个文件的时间
  • mv 移动文件/重命名
  • cp -r 递归赋值整个文件夹 \cp 不提示覆盖
  • cat 只能浏览文件而不能修改 -n 显示行号
  • more 以全屏幕的形式分页显示
    • 空格 向下翻页
    • enter 向下一行
    • q 离开
    • ctrl+f 向下滚动一屏
    • ctrl+b 返回上一屏幕
    • = 抛出当前行号
    • :f 输出文件名和当前行号
  • cat -n /etc/profile | more 只读模式打开并分页
  • less 并不是一次将整个文件加载才显示,而是根据现实需要加载内容,对于大型文件具有较高效率
  • > 重定向 >> 追加
  • echo 输出内容到控制台 echo $PATH 向控制台输出环境变量
  • head -n 5 查看文件 前5行内容
  • tail -n 5 后5行 -f实时追踪更新
  • ln -s 原文件或目录 软连接名 ln -s /root/ myroot 当我们使用pwd指令查看目录时,仍然看到的是软连接所在目录,即…/myroot,而不是/root/。删除软连接的时候
  • history n 查看已经执行过的n个指令

1.7.4. 时间日期类指令

  • date 显示当前时间和日期
    • date “+%Y-%m-%D %H:%M:%S”
    • date -s 字符串时间
  • cal 以日历的形式显示当前日历

1.7.5. 搜索查找类

  • find 搜索范围 选项 find /root/

    • name 按照指定的文件名查找模式
    • user 查找属于指定用户名所有文件
    • size 按照指定的文件大小查找文件 -小于 +大于
  • locate
    可以快速定位文件路径。利用事先建立的系统中所有文件名称和路径的数据库实现快速定位。查询速度较快,但是管理员必须定期更新locate时刻。

    • locate 搜索文件
    • updatedb 特别说明:由于locate指令基于诗句哭,所以第一次运行前,必须用updatedb创建locate数据库
  • grep 过滤查找,管道夫“|”表示将前一个命令的处理结果输出传递给后面的命令处理。

    • grep 选项 查找内容 源文件
    • n 显示匹配行及行号
    • i 忽略字母代销写
  • wc 计数
    -m 统计字符数
    -w 统计字数
    -L 打印最长行长度
    -l 统计行数
    -c 统计字节数

  • grep -i -n hello hello.txt | wc -l = grep -i -c hello hello.txt <= %s/\cPATTERN//gn

    查找文件中字符串
    https://www.cnblogs.com/freshair_cnblog/p/9843300.html

1.7.6. 压缩与解压类

  • gzip/gunzip 压缩与级压缩

    • gzip 文件 压缩文件成.gz文件
    • gunzip 文件 解压缩文件命令
    • 使用gzip的时候,不会保留源文件,解压后也不会有压缩包
  • zip/unzip

    • zip 选项 XXX.zip 将要压缩的内容
      • -r 递归压缩,即压缩目录
    • unzip 选项 XXX.zip
      • -d 指定解压文件的存放目录
  • tar 打包指令,打包后为tar.gz文件

    • tar 选项 XXX.tar.gz 打包的内容
    • tar 选项
      • -c 建立tar包
      • -v 显示详细信息
      • -f 指定压缩后的文件名
      • -z 压缩 本质上是表明是gzip压缩格式,也可以用j表示bz2压缩格式
      • -x 解包.tar文件
    • 实例
      • zcvf 先用c建立tar包,再用z压缩,v显示详细信息,f指定名称
      • zxvf 解压
  • 三者区别

    • gzip和zip之间命令不同
    • gzip压缩为gz格式,zip压缩为zip格式
    • gzip压缩后源文件小时,zip压缩后源文件保留

1.7.7. 组管理和权限管理

  • 文件->所有者->所在组->其他组
  • list -ahl 查看文件所有者
  • chown 用户名 文件名。修改文件所有者修改之前,要先登录修改后的用户名。
  • chown newowner:newgroup file改变用户的所有者和所在组
    • -R递归。即目录下所有的文件
  • chgrp 组名 文件名 修改文件所在组
  • 除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
  • 改变某个用户的所在组
    • usermod -g 组名 用户名
    • usermod -d 目录名 用户名 改变该用户登录的处事目录
  • 权限
    • 文件类型
      • - 普通文件
      • d 目录
      • l 软连接
      • c 字符设备
      • b 块文件
    • 详细介绍
  • -rwxr-wr-x
    • 文件 r可读 w可写,但是是否能删除的前提是是否对文件所在目录有写权限 x可运行
    • 目录 r可读,ls查看目录内容 w 可以修改,目录内创建+删除+重命名目录 x可执行,可以进入该目录
    • rwxrwxrwx 均为2进制,4 2 1 4 2 1 4 2 1。所以是777,rw-r—w-为642。第一组为文件拥有者,第二组为该文件所在组内用户的权限,第三组为其他组成员。
  • chmod 修改目录或文件的权限
    • chmod u=rwx,g=rx,o=x。user,group,other
    • chmod o+w 文件目录名 给o增加w权限
    • chmod a-x 文件目录名 给所有都增加x权限
    • chmod 777
    • 通过
    • 注意:
      hty与kiky属于kiky组

      ,对于文件,kiky可以执行,但是hty不可以执行。说明什么呢?说明第二组参数并不是“第二组参数为与文件拥有者同组的用户”。
      。实验证明,第二组参数实质表示的是——该文件所在组的权限,而不是改文件所属用户的所在组的权限。
      OVER。

1.7.8. 定时任务调度

  • crond任务调度
    • crontab 进行定时任务的设置

1.7.9. Linux分区

硬盘挂载到文件系统中。

  • lsblk -f
  • mount /dev/sdb1 /home/newdiskl
  • umount /home/newdisk1
  • df -lh 查询系统整体磁盘使用情况
  • du -h 目录插叙年制定目录的磁盘占用情况
    • -s 指定目录占用大小汇总
    • -h带计量单位
    • -a含文件
    • –max-depth=1 子目录深度
  • 统计目录数

1.7.10. 网络配置

  • ifconfig 查看网路配置
  • ping 目的主机
  • vi /etc/sysconfig/network-scripts/ifcfg-ens33 固定IP地址

1.7.11. 进程管理

  • ps -aux | more 查看系统中的进程情况
    • a 显示当前终端 的所有进程信息
    • u 以用户的格式显示进程信息
    • x 显示后台进程运行的参数
    • ef 查看父进程
  • kill、killalll -9(强制终止) 进程号 终止进程
  • pstree 以树状形式展现进程关系

1.7.12. 服务管理

  • systemctl 服务名 start stop restart reload status
  • windows下: telnet ip port 可以查看
  • setup 可以查看有哪些服务
  • 查看有哪些服务
  • chkconfig 可以给每个服务的各个运行级别设置自启动/关闭
    • chkconfig --list|grep xxx 查看xxx服务
    • chkconfig xxx --list 查看xxx服务
    • chkconfig --level 5 服务名 on/off 修改某个服务在某个级别下是否自启动

1.7.13. 动态监控进程

  • top 动态监控进程,与ps不同的是执行一段时间可以更新正在运行的进程。和任务管理器很像
    • d 指定top命令每隔几秒更新
    • i 使top不显示任何闲置或僵死进程
    • p 通过制定进程id来仅仅监控某个进程的状态
    • u 查看用户的进程
    • k 啥进程
  • netstat -anp 监控网络状态

1.7.14. RPM与YUM

  • rpm
    • rpm -qa | grep xxx rpm查询所有的rpm包
    • rpm -e 卸载 --nodeps强制删除,忽略依赖
    • rpm -ivh xxxx 安装
  • yum
    • yum list|grep xxx
    • yu install xxx

1.7.15. 牛客网Java Linux 面经相关问题

  • linux中的grep管道用处?linux的常用命令?
    将管道前的结果作为管道符后的操作对象。

  • Linux 如何查看内存使用情况 如何查看哪些端口被占用 如何查看IP等等

    • top、free、cat /proc/meminfo查看内存你占用
    • /proc/cpuinfo查看cpu
    • lsof -i:3306, netstat -tunlp | grep xxx 查看端口
    • ifconfig可以查看自己的ip地址
  • Linux中,假如要找某一个日志文件中时间为早上10点-12点之间的日志,如何操作?

    正解表达式解决:grep '2018-Nov-06 1[0-2] shop-bussiness.log.2018-11-06

  • 两个文件存着电话号码

    • 用Linux命令怎么合并在一起
    • 求交集
      cat file1 file2 | sort | uniq -d
    • 求并集
      cat file1 file2 | sort | uniq -u
  • Linux查看某个端口号是否被占用

    • lsof -i:3306
    • netstat -tunlp | grep 3306
  • Linux中查询进程并杀死

    • top,k+pid
    • ps查询pid后,kill -9强制杀死
  • Linux中查看日志后100
    tail -f -n 100 filename 动态查看日志后100行内容

  • Linux用过什么命令 如何查看网络状态 具体参数

    • netstat
      • a 显示所有socket,包括正在监听的。
      • c 每隔1秒就重新显示一遍,直到用户中断它。
      • i 显示所有网络接口的信息,格式同“ifconfig -e”。
      • n 以网络IP地址代替名称,显示出网络连接情形。
      • r 显示核心路由表,格式同“route -e”。
      • t 显示TCP协议的连接情况。
      • u 显示UDP协议的连接情况。
      • v 显示正在进行的工作。
      • l 仅仅显示监听状态。
  • linux有进程和线程的区分吗

  • Linux下 给定一个文件,里面存放的是IP地址,统计各个IP地址出现的次数
    grep 192.168.0.1 file | wc - l

  • 在linux系统中,查看编辑某个文件的命令是什么?
    cat/vi

  • 从日志文件中搜索带有abcde关键字的行
    grep、awk、sed;

  • epoll、poll和select的区别

  • linux用过哪些命令,写过哪些shell

  • linux硬连接和软连接知道吗?

    • ln -s source target 软连接 快捷方式,相当于是个指针,指向了源文件的地址
    • ln source target 硬连接 同样文件的不同入口,本质是一样的
    • 本质:
      • AAA和AAAhard是同一个文件的两个名字, 它们具有同样的索引节点号和文件属性,建立文件AAA的硬链接,就是为 AAA的文件索引节点在当前目录上建立一个新指针。你可以删除其中任何一个,如rm AAA,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。
      • 尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一些不足之处:
        1. 不允许给目录创建硬链接。
        2. 不可以在不同文件系统的文件间建立链接。因为 inode 是这个文件在当前分区中的索引值,是相对于这个分区的,当然不能跨越文件系统了。
      • 软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
  • 13
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值