学习Linux1

linux学习

在linux世界里面, 一切皆为文件

linux的目录结构介绍

  • /bin 【常用】(/usr/bin、/usr/local/bin)

    是Binary的缩写, 这个目录存放最经常使用的命令

  • /sbin (/usr/sbin、/usr/local/sbin)

    s是Supre User的意思,存放的是系统管理员使用的系统管理程序

  • /home 【常用】

    存放普通用户的主目录,在linux中每个用户都有一个自己的目录

  • /root 【常用】

    该目录为系统管理员, 也成为超级权限者的用户主目录

  • /lib

    系统开机所需要的最基本的动态连接共享库,其作用类似于windows里面的DLL文件。几乎所有的应用程序都需要用到这些共享库

  • /lost+found

    该目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

  • /etc

    所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库 mysql.conf

  • /usr 【常用】

    这是一个非常重要的目录,用户的很多应用程序和文件都放在该目录下,类似于windows下的program files目录

  • /boot 【常用】

    存放的是启动linux时使用的一些核心文件,包括一些连接文件和镜像文件

  • /proc

    这个目录时一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统的信息

  • /srv

    service的缩写, 存放一些服务启动之后需要提取的数据

  • /sys

    这是linux2.6内核的一个很大的变化,该目录安装了2.6内核中新出现的一个文件系统sysfs

  • /tmp

    该目录存放一些临时文件

  • /dev

    类似于windows的设备管理器,把所有的硬件用文件的形式存储

  • /media 【常用】

    linux会自动识别一些设备,例如U盘、光驱等,当识别后,linux会把识别的设备挂载到这个目录下

  • /mnt 【常用】

    系统提供该目录是为了让用户临时挂载其他系统文件的,例如我们可以将外部的存储挂载到/mnt/上,然后进入该目录就可以查看里面的内容了。

  • /opt

    这是主机额外安装软件所存放的目录

  • /usr/local 【常用】

    这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码的方式安装的目录

  • /var 【常用】

    这个目录是存在不断扩充的东西,习惯将经常被修改的目录放在该目录下,包括各种日志文件

  • /selinux 【security-enhanced linux】

    selinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以执行设置

vi和vim

  • 三种模式切换

    模式切换
  • 常用的快捷键

    1. 拷贝当前行 yy, 拷贝当前行向下的5行 5yy, 并粘贴(输入p)。

    2. 删除当前行 dd,删除当前行向下5行 5dd。

    3. 在文件中查找某个单词(/ 关键字, 回车查找, 输入n查找下一个)

    4. 设置文件的行号, 取消文件行号 【命令行下 : set nu 和 : set nonu】

    5. 使用快捷键到该文件的最末尾【G】和最首行【gg】

    6. 撤销操作【u】

    7. 将光标定位到具体行号 ,先输入具体行号, 在输入【shift + g】

更多的快捷键,请点击这里

linux关机和重启命令

  • 基本介绍

    shutdown -h now 立即进行关机(-h是一个选项, 英文是hot)

    shutdown -h 1 "hello,1分钟后会关机了"

    shutdown -r now 现在重新启动计算机

    halt 关机, 作用和上面一样

    reboot 现在重新启动计算机

    sync 把 内存的数据同步到磁盘

注意:

  1. 不管是重启系统还是关闭系统, 首先要运行sync命令,把内存中的数据写磁盘中
  1. 目前的shutdown/reboot/halt等命令均在关机前进行了sync, 但是小心驶得万年船

实操

用户管理

添加用户

  • 基本语法

    useradd 用户名

  • 应用案例

    例如: 添加一个用户tom, 默认该用户的家目录在 /home/tom

  • 细节说明

    1. 当创建用户成功后,会自动的创建和用户同名的家目录

    2. 也可以用过useradd -d 指定目录 新的用户名, 给新创建的用户指定目录

设置密码

  • 基本语法

    passwd 用户名

    注意: 当不添加用户名时时给当前用户添加或修改密码

删除用户

  • 基本语法

    userdel 用户名

查看用户信息

  • 基本语法

    id 用户名

切换用户

  • 基本语法

    su - 用户名

  • 细节说明

    1. 当从权限高得用户切换到用户低的用户, 不需要密码, 反之需要。

    2. 当需要返回之前的用户时, 使用exit/logout指令

查看登录用户

  • 基本语法

    who am i

用户组

  • 介绍

    类似于角色,系统可以对有共性/权限的多个用户进行统一的管理

  • 新增组

    指令: groupadd 组名

  • 删除组

    指令: groupdel 组名

  • 添加用户直接加上组

    指令: useradd -g 用户组 用户名

  • 修改用户的组

    指令: usermod -g 用户组 用户名

用户和组相关文件

  • /etc/passwd 文件

    用户(user)的配置文件,记录用户的各种信息

    每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

  • /etc/shadow 文件

    口令的配置文件

    每行的含义:登录名:加密口令:最后一次的修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间标志

  • /etc/group

    组(group)的配置文件,记录linux包含组的信息

    每行的含义:组名:口令:组标识号:组内用户列表

实用指令

运行级别

不同的运行级别

  • 0: 关机
  • 1: 单用户【找回丢失密码】
  • 2: 多用户状态没有网络服务
  • 3: 多用户状态有网络服务
  • 4: 系统未使用保留给用户
  • 5:图形界面
  • 6:系统重启

命令: init [0123456]

使用单用户级别找回密码
  1. 启动系统, 开始画面按下e;
  1. 找到"Linux16"所造行数, 在最后面输入:init=/bin/sh
  1. 按下ctrl + x, 重启系统进入单用户模式
  1. 输入mount -o remount,rw / , 然后回车
  1. 输入pwsswd, 完成后回车, 输入密码, 然后再次输入确认密码,密码修改后会显示passwd....字样,说明密码修改成功
  1. 输入touch /.autorelabel, 回车
  1. 输入exec /sbin/init, 回车, 耐心等待下,完成后, 系统会自动重启,新的密码生效了

帮助指令

man 获得帮助信息
  • 基本语法

    man 【命令或配置文件】(功能描述:获得帮助信息)

help
  • 基本语法

    help 命令(功能描述:获得shell内置命令的帮助信息)

    比如: help cd

文件目录指令

pwd
  • 基本语法

    pwd (功能描述:显示当前工作目录的绝对路径)

ls
  • 基本语法

    ls 【选项】 【目录获文件】

  • 常用选项

    1. -a : 显示当前目录的所有文件和目录,包括隐藏的
    1. -l:以列的方式显示信息
cd
  • 基本语法

    cd 【参数】 (功能描述:切换到指定目录)

    cd ~ 或者cd: 回到自己的家目录;

    cd .. 回到当前目录的上一级目录

    cd / 切换到根目录

mkdir
  • 基本语法

    mkdir 【选项】 要创建的目录

  • 常用选项

    -p:创建多级目录

rmdir
  • 基本语法

    rmdir 【选项】 要删除的目录 (功能描述:删除空目录)

    提示: 如果需要删除非空目录库, 需要使用rm -rf 要删除的目录(r代表recursion, 中文表示递归,f代表forece, 中文表示强制)

touch
  • 基本语法

    touch 文件名 (功能描述:创建一个空文件)

cp
  • 基本语法

    cp 【选项】 source dest

  • 常用选项

    -r: 递归复制整个文件夹

  • 强制覆盖

    /cp 【选项】 source dest

rm
  • 基本语法

    rm 【选项】 要删除的文件或目录

  • 常用选项

    -r:递归删除整个文件夹

    -f: 强制删除不提示

mv
  • 基本语法

    mv oldNameFile newNameFile (功能描述:重命名)

    mv /temp/moveFile /targetFolder (功能描述:移动文件)

cat
  • 基本语法

    cat 【选项】 要查看的文件

  • 常用选项

    -n: 显示行号

  • 使用细节

    cat 只能浏览文件, 而不能修改文件,为了浏览方便,一般会带上 管道命令 | more

    cat -n /etc/profile | more 【进行交互】

more

more指令是一个基于VI编辑器的文本编辑器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置了若干快捷键(交互的指令),详情操作说明见下图:

操作详情图
  • 基本语法

    more 要查看的文件

less

less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容, 对于显示大型文件具有较高的效率。详情操作见下图:

操作详情
  • 基本语法

    less 要查看的文件

echo
  • 基本语法

    echo 【选项】 【输出内容】 (功能描述:输入内容到控制台)

head

head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

  • 基本语法

    head 文件 (功能描述: 查看文件头10行内容)

    head -n 5 文件 (功能描述:查看文件的头5行内容,5可以时任意行数)

tail

tail用于输出文件中尾部的内容,默认情况下tail指令显示文件后10行的内容

  • 基本语法

    tail 文件 (功能描述:查看文件的后10行内容)

    tail -n 5 文件 (功能描述:查看文件的后5行内容, 5可以时任意行数)

    tail -f 文件 (功能描述: 实时追踪该文档的所有更新)

>和>>指令

输入重定向和追加

  • 基本语法

    1. ls -l > 文件 (功能描述: 列表的内容写入到文件中(覆盖写))
    1. ls -al >> 文件 (功能描述:列表的内容追加到文件中)
    1. cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
    1. echo "内容" >> 文件 (追加内容到文件中)
ln 指令

软连接,也成为符号链接,类似于windows里面的快捷方式,主要存放了连接其他文件的路径

  • 基本语法

    ln -s 【原文件或目录】 【软链接名】 (功能描述:给原文件创建一个软链接)

  • 细节说明

    当我们使用pwd指令查看目录时,仍然看到的时软链接所在目录

history指令

曾今执行过的指令

  • 基本语法

    histoty 查看之前执行过的指令

    history 10 查看最近执行过的10条指令

    !5 执行之前的第5条执行

时间日期类

date

显示当前日期

  • 基本语法

    date (功能描述: 显示当前日期)

    date “+%Y-%m-%d %H:%M:%S” (功能描述: 显示年月日 时分秒)

    date -s "2020-12-17 10:18:20" (功能描述: 设置系统当前时间)

cal

查看当前日历

  • 基本语法

    cal [选项] 参数

    cal (功能描述: 显示当前日期的日历)

    cal 2020 (功能描述: 显示2020年的日历)

搜索查找类

find

find指令将从指定的目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端

  • 基本语法

    find 【搜索范围】 【选项】

    选项详情

    find /home -name hello.txt (功能描述: 按照名字在/home目录下查找hello.txt文件)

    find /opt -user root (功能描述: 查找/opt目录下,用户名称为root的文件)

    find / -size +200M (功能描述: 查找大于200M的文件)

locate

locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻

  • 基本语法

    locate 搜索文件

  • 特别说明

    由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

which

查看某个指令在哪个目录

which ls

grep指令和管道符号 |

grep 过滤查找 , 管道符“|”: 表示将前一个命令的输出传递给后面的命令处理。

  • 基本语法

    grep 【选项】 查找内容 源文件

  • 常用选项

    image

    grep -n hello /home/bb/hello.txt

    cat /home/bb/hello.txt | grep -n hello

压缩和解压类

gzip和gunzip指令

gzip用于压缩,gunzip用于解压

  • 基本语法

    gzip 文件 (功能描述:压缩文件, 只能将文件压缩为*.gz文件)

    gunzip 文件.gz (功能描述:解压文件命令)

zip和unzip命令

zip用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用。

  • 基本语法

    zip 【选项】 xxx.zip 将要压缩的内容 (功能描述:压缩文件和目录命令)

    unzip 【选项】 xxx.zip (功能描述:解压缩文件)

  • zip常用选项

    -r: 递归压缩, 即压缩目录

  • unzip常用选项

    -d <目录>: 指定解压后文件的存放目录

tar指令

tar指令是打包指令,最后打包的文件是.tar.gz的文件

  • 基本语法

    tar 【选项】 xxx.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式是.tar.gz)

  • 选项说明

    image
  • 应用实例

    1. 压缩多个文件, 将/home/pig.txt和/home/cat.txt压缩成pc.tar.gz
    > tar -zvcf pc.tar.gz /home/pig.txt /home/cat.txt
    
    1. 将/home的文件夹压缩成myhone.tar.gz
    > tar -zvcf myhone.tar.gz /home/
    
    1. 将pc.tar.gz解压到当前目录
    > tar -zxvf pc.tar.gz
    
    1. 将myhome.tar.gz解压到/opt/tmp2目录下
    > *   mkdir /opt/tmp2
    >     
    >     
    > *   tar -zxvf /home/myhome.tar.gz -C /opt/tmp2 (-C表示输出到哪个目录)
    

组管理和权限管理

在Linux中每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其他组的概念。

文件/目录 所有者

一般为文件的创建者,谁创建了文件,就自然的成为了文件的所有者

  • 查看文件的所有者

    指令: ls -alh

    image
  • 修改文件所有者

    指令: chown 用户名 文件名

文件/目录 组

当某个用户创建一个文件, 这个文件所在的组就是用户所在的组

  • 查看文件/目录所在组

    指令: ls -ahl

    image
  • 修改文件所在的组

    指令: chgrp 组名 文件名

文件/目录 其他组

除文件的所有者和所在组外,系统的其他用户都是文件的其他组

改变用户所在组

  • 改变用户所在组

    usermod -g 组名 用户名

    usermod -d 目录命 用户名 改变该用户登录的初始目录( 特别说明: 用户需要有进入该新目录的权限)

权限的基本介绍

ll 中显示的内容如下:

image

0-9位说明:

image
  1. 第0位确定的是文件的类型(d,-,l,c,b)

l表示链接,相当于windows的快捷方式

d是目录,相当于windows的文件夹

c是字符设备文件, 例如鼠标、键盘

d是块设备,比如硬盘

-表示是一个普通文件

  1. 第1~3位确定所有者(该文件的所有者)拥有该文件的权限 ----- User
  1. 第4~6位确定所在组(同用户组)拥有该文件的权限 ------ Group
  1. 第7~9位确定其他组用户拥有该文件的权限 ------ Other

rwx权限详解

  • rwx作用到文件

    1. 【r】 代表可读(read):可以读取、查看
    1. 【w】:代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
    1. 【x】:代表可执行(execute):可以被执行
  • rwx作用到目录‘

    1. 【r】:代表可读:可以读取,ls可以查看目录内容
    1. 【w】:代表可写:可以修改,对目录内创建+删除+重命名目录
    1. 【x】: 代表可执行:可以进入该目录

修改权限 - chmod

chmod可以修改文件或目录的权限

  1. 第一种方式:+、-、=变更权限

    u:所有者 g:所有组 o:其他人 a:所有人

    chmod u=rwx,g=rx,o=x 文件/目录 (功能描述:给所有者赋予读写执行权限,给所有组赋予读写权限,给其他人赋予执行权限)

    chmod o+w 文件/目录 (功能描述:给其他人赋予写的权限)

    chmod a-x 文件/目录i (功能描述: 给所有人移除执行权限)

  2. 第二种方式:通过数字变更权限

    r = 4 , w = 2, x = 1 通过设置数字来修改权限

修改文件所有者 - chown

  • 基本介绍

    chown newOwner 文件/目录 改变所有者

    chowner newOwner:newgroup 文件/目录 改变所有者和所在组

  • 常用选项

    -R 如果是目录,则使其所有的子文件或目录递归生效

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

  • 基本介绍

    chgrp newgroup 文件/目录 改变所在组

  • 常用选项

    -R 如果是目录,则使其所有的子文件或目录递归生效

你可能感兴趣的:(学习Linux1)