zoukankan      html  css  js  c++  java
  • 关于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
  • 相关阅读:
    Mego(02)
    Mego(01)
    ThoughtWorks(中国)程序员读书雷达 —— 书籍下载整理
    Spring源码编译一次性通过&遇到的坑解决方法
    Elasticsearch怎么修改索引字段类型?
    Flume 自定义拦截器 多行读取日志+截断
    用Hibernate框架把hql生成可执行的sql语句-Oracle方言
    深入浅出SQL Server中的死锁 [转于CareySon]
    第一次迭代随笔
    结对编程代码分析
  • 原文地址:https://www.cnblogs.com/geekfx/p/13698779.html
Copyright © 2011-2022 走看看