Linux学习笔记

参考教程:尚硅谷

一、Linux目录结构

  • /bin
    是Binary的缩写,这个目录存放着最经常使用的命令。
  • /sbin
    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /home
    存放着普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。
  • /lib
    系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /etc
    所有的系统管理所需要的配置文件和子目录 my.conf
  • usr
    这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows的program files目录。
  • /boot
    存放的是启动Linux时的一些核心文件,包括一些连接文件以及镜像文件。
  • /proc
    这个目录是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息。
  • /srv
    service的缩写,该目录存放一些服务启动之后需要提取的数据。
  • /sys
    这是Linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统。
  • /tmp
    这个目录是用来存放一些临时文件的。
  • /dev
    类似于Windows的设备管理器,把所有的硬件用文件的形式存储。
  • /media
    Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。
  • /mnt
    系统提供该目录是为了让用户临时挂在别的文件系统的,我们可以将外部的存储挂在在此目录下,然后进入该目录就可以查看内容了。
  • /opt
    这是给主机额外安装软件所摆放的目录,如安装Oracle数据库就可以放到该目录下。默认为空。
  • /usr/local
    这是另一个给主机额外安装软件所用的目录,一般是通过编译源码方式安装的程序。
  • /selinux
    SELinux是一种安全子系统,它能控制程序只能访问特定文件。

总结:

  1. Linux有一个根目录/,其他目录都是它的分支。
  2. 在Linux中,所有设备都可以通过文件来体现,例如:字符设备文件(鼠标、键盘),块设备文件(硬盘)。
  3. 学习Linux要尽快在脑海中形成一个目录树。

二、Vim编辑器

Vim三种模式切换

Vim的快捷键(在一般模式下)

  1. 拷贝当前行:yy,拷贝当前往下5行:5yy,粘贴:p
  2. 删除当前行:dd,删除当前向下5行:5dd
  3. 查找某个词:/词汇+回车,跳到下一处:n
  4. 显示行号::set nu,隐藏行号::set nonu
  5. 跳到末行:G,跳到首行:gg
  6. 撤销刚才的输入:u

三、关机、重启和用户注销

1.id 关机
立刻关机:shutdown -h now
一分钟后关机:shutdown -h 1
立刻重启:shutdown -r now
两分钟后重启:shutdown -r 2
立刻关机:halt
立刻重启:reboot
不管是关机还是重启,都要先运行sync命令,将内存中的数据写到磁盘中。
2. 用户切换和注销
用户切换:su 用户名
用户注销:logout

四、用户管理

  1. 添加用户
    useradd 用户名
    创建后会在/home目录下为该用户分配一个家目录。
  2. 指定/修改密码
    passwd 用户名
  3. 删除用户
    userdel 用户名
    删除后用户的家目录还是保留的。
  4. 查询用户信息指令
    id 用户名
  5. 切换用户
    su 用户名
    从权限高的用户切换到权限低的用户无需密码,反之需要;
    用exit命令返回原来用户;
    su后面不带用户名,则默认切换到root用户。
  6. 用户组
    增加组:groupadd 组名
    删除组:groupdel组名
    创建用户时指定组:useradd -g 组名 用户名
    修改用户组:usermod -g 组名 用户名
  7. 用户和组的相关文件
    /etc/passwd
    该文件记录用户的配置信息,各字段信息如下:
zwj:x:1001:1002::/home/zwj:/bin/bash
zwj:用户名
x:加密密码,保存于/etc/shadow文件中
1001:用户id
1002:用户组id
/home/zwj:用户的家目录
/bin/bash:使用的shell类型

/etc/shadow

zwj:$1$GWkHcv1t$x9nHu3JCUvEopynZQCGEG.:18868:0:99999:7:::
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留 

/etc/group

shaolin:x:1002:
组名:口令:组标识号:组内用户列表

五、实用指令

  1. 指定运行级别
    init 0/1/2/3/4/5/6
    0:关机
    1:单用户[类似安全模式,这个模式可以帮助找回root密码]
    2:多用状态没有网络服务
    3:多用状态有网络服务
    4:系统未使用,保留给用户
    5:图形界面
    6:重启

  2. 帮助指令
    man [指令或配置文件]
    例:man ls
    help [指令]
    例:help cd

  3. 文件和目录相关指令
    显示当前目录的绝对路径pwd
    查看目录下的文件内容ls [选项] [目录或文件]
    -a 显示当前目录所有的文件和目录,包括隐藏的 (文件名以.开头就是隐藏)
    -l 以列表的方式显示信息
    -h 显示文件大小时,以k,m,G单位显示
    为了方便,实际操作一般用ll
    创建目录mkdir [-p] [目录]
    -p 创建多级目录
    删除目录rmdir [目录]
    rmdir删除的是空目录,如果要删除非空目录,使用rm -rf
    -r 表示递归删除,就是将该目录下的文件和子目录全部删除
    -f 表示强制删除,就是不需询问
    创建空文件touch [文件名称]
    若文件存在,表示更新文件的修改时间。
    拷贝文件到指定目录cp [选项] source[源] dest[目的路径]
    -r 表示递归拷贝整个目录
    移除指定的文件或目录rm [选项] 文件或目录
    -r 递归删除整个文件夹
    -f 强制删除不提示
    移动目录文件或重命名
    mv oldFilename newFilename重命名
    mv source dest移动
    查看文件内容cat -[选项] Filename
    -n 显示行号
    为了浏览方便,一般会带上管道命令| more,如:cat hello.txt | more
    分页显示文件内容more Filename
    space 向下翻一页
    Enter 向下翻一行
    q 离开
    Ctrl+F 向下翻一屏
    Ctrl+B 向上翻一屏
    = 输出当前行号
    :f 输出当前的文件名和行号
    查看大文件less Filename
    less命令不是一次加载整个文档,而是每次加载当前显示的内容,因此效率比more高。
    space 向下翻页
    pagedown 向下翻页
    pageup 向上翻页
    /字串 向下搜寻,n:向下查找;N:向上查找
    ?字串 向上搜寻,n:向上查找;N:向下查找
    q 离开
    输出内容到控制台echo [选项] [内容]
    输出环境变量:echo $PATH
    附:查看系统所有环境变量:env;修改环境变量:vim/etc/profile
    显示文件头部内容:head [选项] Filename
    -5 显示5行,不写默认10行
    输出文件尾部内容:tail [选项] Filename
    -5 显示5行,不写默认10行
    tail -f Filename 实时追踪文档的所有更新(实用指令)
    输出重定向和追加
    ls -l > Filename 列表的内容写入文件 a.txt 中(覆盖写)
    ls -al >> Filename 列表的内容追加到文件 aa.txt 的末尾
    cat Filename1 > Filename2 将文件 1 的内容覆盖到文件 2
    echo "Content" >> Filename 将内容追加到文件末尾
    软链接ln -s [源文件或目录] [软链接名]
    创建一个链接到/root目录的软链接linkToRoot: ln -s /root/ linkToRoot
    查看历史命令history
    !5 执行历史编号为5的指令
    查找文件find [搜索范围] [选项]
    -name 按照文件名查找
    -user 按照所属用户名查找
    -size 按照文件大小查找
    例如:
    find /home -name hello.txt
    find /opt -user root
    find /size +10M
    过滤查找grep [选项] 查找内容 源文件
    -n 显示匹配行及行号
    -i 忽略字母大小写
    例如:在/etc/profile中查找if,并显示行号,不区分大小写
    grep -ni if /etc/profile
    配合管道符号使用的案例,查看当前服务器有没有sshd服务在监听:
    netstat -anp | grep sshd
    压缩和解压缩tar [选项] xxx.tar.gz [文件或目录]
    -c 产生.tar打包文件
    -v 显示详细信息
    -f 指定压缩后的文件名
    -z 打包同时压缩
    -x 解压.tar文件
    案例:
    压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
    tar -zcvf a.tar.gz a1.txt a2.txt
    将/home文件夹 压缩成 myhome.tar.gz
    tar -zcvf myhome.tar.gz /home/
    将a.tar.gz解压到当前目录
    tar -zxvf a.tar.gz
    将myhome.tar.gz解压到/opt/tmp2目录下
    tar -zxvf myhome.tar.gz -C /opt/tmp2

六、进程管理

  • 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
  • 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
  • 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  • 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
    显示系统所有的进程ps -aux
    USER:用户名称
    PID:进程号
    %CPU:进程占用CPU的百分比
    %MEM:进程占用物理内存的百分比
    VSZ:进程占用的虚拟内存大小(单位:KB)
    RSS:进程占用的物理内存大小(单位:KB)
    TTY:终端名称,缩写 .
    STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级
    更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
    STARTED:进程的启动时间
    TIME:CPU时间,即进程使用CPU的总时间
    COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
    查看有无某个进程ps -aux | grep xxx
    终止进程:kill [选项] 进程号
    -9 强制终止
    案例:
    踢掉某个登录的用户:ps -aux | grep sshd 找到对应的进程号,kill xxx
    查看进程树:pstree -pu
    -p 显示进程的PID
    -u 显示进程的所属用户
posted @ 2021-08-31 16:14  阿松0919  阅读(54)  评论(0)    收藏  举报