• 关于Linux基础


    用户管理

    图片

    useradd 用户名 创建一个新用户

    passwd 用户名 为用户指定一个密码

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

    也可以通过 useradd -d 指定目录 用户名 给创建的新用户指定家目录

    passwd 如果没带用户名,会给当前登录的用户修改密码

    userdel 用户名 删除指定用户,但是会保留家目录

    userdel -r 用户名 删除用户且删除用户家目录

    id 用户名 查询用户信息

    图片

    su - 用户名 切换到用户

    exit 返回到原来的用户

    su - 不带用户名默认切换到 root 用户

    组管理

    groupadd 组名 新增一个组

    useradd -g 用户组 用户名 创建用户时指定加入组

    groupdel 组名 删除指定组

    删除的前提是这个组没有用户了,才能删除

    usermod -g 新组 用户名 修改用户所在组

    用户和组的相关文件

    /etx/passwd 文件

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

    图片

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

    /etc/shadow 文件

    口令的配置文件

    图片

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

    etc/group 文件

    组的配置文件,记录了系统包含的组的信息

    图片

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

    运行级别

    • 0 关机
    • 1 单用户【此模式可以帮助找 root 密码】
    • 2 多用户无网络
    • 3 多用户有网络
    • 4 系统未使用
    • 5 图形界面
    • 6 系统重启

    常用运行级别是 35 ,要修改默认运行级别可修改文件

    修改 /etc/inittab 文件的 id:x:initdefault 这行中的 x 指定为数字

    图片

    命令 init [0123456] 修改运行级别

    找回 root 密码

    开机时按 enter -> 输入 e

    图片

    光标移动到 kernal 项 -> 输入 e

    图片

    在该行的最后追加 1 ,即 进入单用户模式【临时生效】

    图片

    回车,然后输入 b 【boot】启动到单用户模式

    图片

    启动成功后可以直接修改用户密码

    图片

    帮助命令

    man 命令或配置文件 获得帮助信息

    help 获得 shell 内置命令的帮助信息

    文件目录相关

    pwd 显示当前工作目录的绝对路径

    ls [选项] [目录或文件] 查看当前目录内容

    选项:

    • -a 显示当前目录的所有文件和目录,包括隐藏文件
    • -l 以列表的方式显示
    • -h 显示文件大小时,以 K,M,G 单位

    mkdir -p 多级目录 创建多级目录

    rmdir 空目录 删除指定空目录

    若要删除非空目录,使用 rm -rf 目录

    -r 表示递归删除目录下的文件和目录

    -f 表示强制删除

    cp -r 源 目标 递归复制整个目录到目标地址

    cp 强制覆盖不提示

    cat [选项] 文件 查看文件内容

    选项:

    • -n 显示行号(翻页 enter 退出 q

    more 文件 基于 VI 编辑器的文本过滤器,以全屏幕的方式按页显示文本内容

    快捷键:

    • 空白键 向下翻一页
    • enter 向下翻一行
    • q 离开
    • Ctrl + F 向下滚动一屏
    • Ctrl + B 向上滚动一屏
    • = 输出当前行号
    • :f 输出文件名和当前行号

    less 文件 分屏查看文件内容,在显示文件时,并不是一次将整个文件加载后显示,而是根据显示需要加载内容,通常用来显示内容多的文件

    快捷键:

    • 空白键 向下翻一页
    • [pagedown] 向下翻一行
    • [pageup] 向上翻一行
    • /字符串 向下搜寻【字符串】,n 向下查找,N 向上查找
    • ?字符串 向下搜寻【字符串】,n 向上查找,N 向下查找
    • q 离开

    echo [选项] [输出内容] 输出内容到控制台

    可以输出环境变量:echo $变量名

    echo env 输出系统所以环境变量

    head -n [数量] 文件 查看文件前 n 行内容,默认 10 行

    tail -n [数量] 文件 查看文件后 n 行内容,默认 10 行

    也可以使用 tail -f 文件 实时追踪该文件的更新

    >>>

    > 输出重定向

    >> 追加

    echo "内容" > 文件 将 "内容" 写入文件(覆盖)
    echo "内容" >> 文件 将 "内容" 写入文件末尾(追加)

    ln 指令(link)

    软链接(符号链接),主要存放链接其他文件的路径

    ln -s [源文件或目录] [软链接名] 给源文件或目录创建一个软链接

    rm -rf 软链接名 删除软链接

    history 查看已经执行过的历史命令,也可以执行历史指令

    history n 查看最近使用过的 n 条指令

    history !n 执行历史编号为 n 的指令

    日期时间

    date 显示当前时间

    date +%Y-%m-%d %H:%M:%S 显示当前 年月日分秒时

    date -s 字符串时间 设置当前系统时间

    cal [选项] 默认显示本月日历

    cal 2020 显示 2020 年日历

    搜索查找

    find [搜索范围] [选项] 从指定目录向下递归地遍历子目录,将满足条件的文件或目录显示在终端

    选项:

    • -name<查询方式> 按指定文件名查找文件,可以使用通配符 *?
    • user<用户名> 查找属于指定用户的文件
    • size<文件大小 按指定文件大小查找文件
      • + 大于
      • - 小于

    locate 搜索文件 利用事先建立的系统文件名称及路径的 locate 数据库实现快速定位文件,无需遍历整个文件系统

    第一次运行期,须使用 updatedb 创建 locate 数据库

    | 管道符,将前一个命令的处理结果输出传递给后面的命令处理

    grep [选项] 查找文件 源文件 过滤查找

    选项:

    • -n 显示匹配行和行号
    • -i 忽略字母大小写

    压缩解压

    gzip/gunzip 压缩、解压 *.gz 文件

    zip/unzip 压缩、解压 *.zip 文件

    选项:

    • zip -r 目录 递归压缩,即压缩指定目录
    • unzip -d <目录> *.zip 将文件解压至指定目录

    tar [选项] *.tar.gz 打包指令

    选项:

    • -c 产生 *.tar 打包文件
    • -v 显示详细信息
    • -f 指定压缩文件名
    • -z 打包同时压缩
    • -x 解包 *.tar 文件

    打包 tar -zcvf *.tar.gz 文件1 文件2 ... 文件n 将文件打包并压缩

    解包 tar -zxvf *.tar.gz -C 目标路径*.tar.gz 文件解包至指定路径

    组管理和权限管理

    图片

    文件、目录的所有者

    一般为文件的创建者

    图片

    chown 用户名 文件名 修改文件的所有者,使用 -R 对下所有子文件或目录递归生效

    chgrp 组名 文件名 修改文件所在组

    usermod -g 组名 用户名 改变用户所在组

    usermod -d 目录 用户名 改变用户登录的初始目录

    图片

    图片

    图片

    图片

    定时任务调度

    任务调度:是指系统在某个时间执行的特定的命令或程序。

    任务调度分类:

    • 系统工作:有些重要的工作必须周而复始地执行,如病毒扫描
    • 个别用户工作:个别用户可能希望执行某些程序,如对mysql数据库的备份

    crontab [选项] 进行定时任务的设置

    常用选项:

    • -e 编辑 crontab 定时任务
    • -l 查询 crontab 任务
    • -r 删除当前用户的所有 crontab 任务

    快速入门

    1. 设置任务调度文件 /etc/crontab
    2. 设置个人任务调度,执行 crontab -e
    3. 输入任务到调度文件 */1****ls -l /etc/ > /tmp/to.txt

    每小时的每分钟执行 ls -l /etc/ > /tmp/to.txt 命令

    参数

    图片

    图片

    图片

    分区、挂载

    Linux采用了一种叫载入(mount)的处理方法,它的整个文件系统中包含了-整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得

    图片

    对于IDE硬盘,驱动器标识符为hdx~,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),~代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3 表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分

    对于SCSI硬盘则标识为sdx~ ,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。sdbl [表示第2块scsi硬盘的第1个分区]

    lsblklsblk -f 查看所有设备挂载情况

    挂载步骤

    增加1块硬盘,重启系统

    图片

    给 sdb 硬盘分区

    fdisk /dev/sdb 开始分区

    • m 显示命令列表
    • p 显示磁盘分区,同 fdisk -l
    • n 新增分区
    • d 删除分区
    • w 写入并退出

    输入 n 新增一个分区,然后选择分区类型为主分区,设定分区号和分区的开始和结束扇区

    图片

    图片

    使用 mkfs -t ext4 /dev/sdb1 将创建的分区格式化为 ext4

    图片

    创建一个文件夹 mkdir /home/newdisk

    使用 mount /dev/sdb1 /home/newdisk 将创建的目录挂载到 sdv1 分区上

    图片

    使用 mount 命令挂载的分区只是临时的,当系统重启后就需要重新挂载

    配置 Linux 的分区表 /etc/fstab ,实现系统启动时,自动挂载

    图片

    使用这种方式,重启后挂载依旧存在

    如果希望卸载挂载,使用 umount 设备名 | 挂在路径

    磁盘情况查询

    使用 df -h 查询系统磁盘整体使用情况

    使用 du [选项] 目录 查询指定目录的磁盘占用情况

    选项:

    • -s 指定目录占用大小汇总
    • -h 人类可读的单位
    • -a 含文件
    • --max-depth=1 子目录深度
    • -c 列出明细的同时,增加汇总值

    图片

    常用磁盘指令

    ls -l /home | grep "^-" | wc -l 统计 /home 文件夹下文件的个数

    ls -l /home | grep "^d" | wc -l 统计 /home 文件夹下目录的个数

    ls -lR /home | grep "^-" | wc -l 统计 /home 文件夹下文件的个数(包括子目录)

    ls -lR /home | grep "^d" | wc -l 统计 /home 文件夹下目录的个数(包括子目录)

    网络配置

    配置固定的 ip 地址,配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0

    图片

    修改完配置文件,重启系统并使用 service network restart 重启网络服务

    使用 hostname 查看当前主机名

    Linux 的主机映射文件 /etc/sysconfig/network

    图片

    在配置文件 /etc/hosts 增加 ip地址和主机的映射

    图片

    重启设备生效

    进程管理

    在LINUX中,每个执行的程序(代码)都称为一个进程,每一个进程都分配一个ID号

    每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程

    每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的;后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行[sshd,crond]

    一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才才结束

    使用 ps aux 显示所有进程

    图片

    使用 ps aux | grep sshd 可以查看 sshd 进程

    ps 详解

    System V 展示风格

    • USER:用户名称
    • PID:进程号
    • %CPU:进程占用CPU的百分比
    • %MEM:进程占用物理内存的百分比
    • VSZ:进程占用的虚拟内存大小( 单位: KB)
    • RSS:进程占用的物理内存大小( 单位: KB )
    • TTY:终端名称,缩写
    • STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
    • STARTED:进程的启动时间
    • TIME:CPU时间,即进程使用CPU的总时间
    • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

    使用 kill [选项] 进程号 通过进程号杀死进程,使用 -9 强制终止

    使用 killall 进程名称 通过进程名杀死进程,支持通配符

    也可以通过 pstree [选项] 更直观的查看进程信息

    图片

    选项:

    • -p 显示进程 PID
    • -u 显示进程所属用户

    服务管理

    服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql,sshd防火墙 等),因此我们又称为守护进程

    服务的管理指令 service 服务名 [start|stop|restart|reload|status]

    在 CentOS7 之后,不再使用 service 而是 systemctl

    使用 service 对某个服务启用或关闭是临时生效的,如果需要永久生效,需要使用 chkconfig 给每个服务的运行级别设置自启动、关闭

    使用 chkconfig --list | grep xxx 可以查看 xxx 服务的情况

    图片

    使用 chkconfig --level n 服务名 on/off 将指定的服务的第 n 运行级别开启或关闭

    使用 chkconfig 服务名 off 不管那种运行级别都关闭

    动态监控进程

    topps 命令很相似,它们都用来显示正在执行的进程,topps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程(默认每3秒变化一次)

    选项:

    • -d 秒数 指定几秒更新,默认 3 秒
    • -i 不显示闲置或者僵尸进程
    • -p 指定监控进程 ID

    图片

    交互操作:

    • P 以 CPU 使用率排序,默认
    • M 以内存使用率排序
    • N 以进程 PID 排序
    • q 退出

    输入 u 回车,再输入用户名,即可监视特定用户

    输入 k 然后输入要结束的进程 ID 号即可终止指定进程

    监控网路状态

    使用 netstat [选项] 查看系统网络情况

    选项:

    • -an 按一定顺序排序输出
    • -p 显示哪个进程在调用

    使用 netstat -anp | grep sshd 查看 sshd 服务的信息

    使用 netstat -tlnp 查看当前系统有哪些端口正在监听

    图片

    RPM 和 YUM 软件安装

    RPM 包管理

    一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有 .RPM 扩展名的文件。RPM 是 RedHat Package Manager (RedHat软件包管理工具)的缩写,类似 Windows 的 setup.exe ,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。Linux的分发版本都有采用(suse,redhat, centos等等),可以算是公认的行业标准了

    常用指令

    • rpm -ql 软件包名:查询软件包中的文件
    • rpm -qa:查询所安装的所有 rpm 软件包
    • rpm- qf 文件全路径名:查询文件所属的软件包
    • rpm -q 软件包名:查询软件包是否安装
    • rpm -qi 软件包名:查询软件包信息

    使用 rpm -e 包名 卸载 RPM 包

    如果其他软件包依赖于要卸载的包,会产生错误信息

    使用 rpm -e --nodeps 包名 强制卸载,依赖于此包的也无法运行

    使用 rpm -ivh 包文件 安装 RPM 包

    -i 表示 install、-v 表示 verbose、-h 表示 hash(进度条)

    YUM

    Yum 是一个 Shell 软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包

    使用 yum list | grep xx 查询 YUM 服务器是否有需要安装的软件包

    使用 yum install xxx 下载安装需要的软件包

    不一定每天 code well 但要每天 live well
  • 相关阅读:
    Poj 2017 Speed Limit(水题)
    Poj 1316 Self Numbers(水题)
    Poj 1017 Packets(贪心策略)
    Poj 1017 Packets(贪心策略)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2000 Gold Coins(水题)
    poj 2000 Gold Coins(水题)
  • 原文地址:https://www.cnblogs.com/geekfx/p/13698779.html
Copyright © 2020-2023  润新知