• Linux常见操作


    前面的话

      本文将详细介绍Linux常见操作

    基本概念

      Linux严格区分大小写,所有内容以文件形式保存,包括硬件

      Linux没有扩展名的概念,不靠扩展名来区分文件类型。但有一些约定俗成的扩展名

    压缩包: .gz .bz2 .tar.bz2 .tgz
    二进制软件包:.rpm
    网页文件: .html .php
    脚本文件: .sh
    配置文件: .conf

      [注意]windows下的程序不能直接在linux中安装和运行

      Linux字符界面的优势如下:

      1、占用的系统资源更少

      2、减少了出错、被攻击的可能性

    【分区类型】

      主分区:最多只能有4个

      扩展分区:最多只能有1个,主分区加扩展分区最多有4个,不能写入数据,只能包含逻辑分区

    【硬件设置文件名】

    硬件  设置文件名
    IDE硬盘 /dev/hd[a-d]
    SCSI/SATA/USB硬盘 /dev/sd[a-p]
    光驱  /dev/cdrom 或/dev/hdc
    软盘  /dev/fd[0-1]
    打印机(25针)  /dev/1p[0-2]
    打印机(USB)  /dev/usb/1p[0-15]
    鼠标  /dev/mouse

    【挂载】

    必须分区
    / (根分区)
    swap分区 (交换分区,内存2倍,不超过2GB)
    
    推荐分区
    /boot (启动分区,200MB)

    显示

    【起始标识】

    [root@bogon ~]#

      root表示当前登录用户为管理员

      bogon表示主机名

      ~表示当前所在目录

      #是管理员的提示符

      $是普通用户的提示符

     【命令格式】

      当有多个选项时,可以写在一起

      选项包括简化选项与完整选择如-a 等于 --all

    命令 [选项] [参数]

      [注意]个别命令使用不遵循此格式

    文件

    【文件类型】

      Linux包括以下7种文件类型,以文件位第一位来表示文件类型

    - 文件
    d 目录
    l 软链接文件

      除了上面这3种,还有块设备文件、字符设备文件、套接字文件和管道文件。这4种文件都是linux系统中的特殊文件

    【文件身份】

      文件位共有10位组成,除了第1位表示文件类型外,后9位每3位为一组,表示文件的所有者、所属组和其他人

    【文件权限】

    r读
    w写
    x执行

      下面这个例子中,表示这是一个文件,所有者有读写权限,而所属组和其他人只有读权限

      一般地,用户在自己主目录下拥有写权限,主目录之外只有读权限。如果一定在要不具有写权限的目录下操作文件,如新建文件。则可以使用sudo命令,变身管理员,然后输入管理员的密码来执行这个操作

     sudo touch aaa

    【文件信息】

      上面的例子中,两个root之后,分别代码文件大小、文件最后一次修改时间及文件名称

      [注意]linux中文件名以.开头的文件是隐藏文件

    【修改文件权限】

      比如,将a.txt文件的权限变更为读写权限

    chmod 666 a.txt

      实际中使用 chmod 命令最多的一种情形可能是给自己写的脚本加一个执行权限

    chmod +x a.sh

    【常用一级目录作用】 

    / 根目录
    /bin 存放系统命令
    /sbin 存放只有管理员才能执行的系统命令 
    /usr 系统资源保存目录,包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档
    /usr/bin 存放系统命令 
    /usr/sbin 存放只有管理员才能执行的系统命令
    /boot 存放内核以及启动所需的文件等 
    /dev 存放设备文件 
    /etc 存放系统的配置文件 
    /lib 存放函数库
    /home 用户文件的主目录,用户数据存放在此目录中
    /root 管理员的主目录
    /mnt 空目录,存放临时的映射文件系统,常把软驱和光驱挂装在这里的floppy和cdrom子目录下
    /media 空目录,存放临时的映射文件系统,老式linux无该目录
    /misc 空目录,存放临时的映射文件系统,老式linux无该目录
    /proc 不能直接操作,存放存储进程和系统信息
    /sys 不能直接操作,存放存储进程和系统信息
    /tmp 存放临时文件的目录
    /var 包含系统产生的经常变化的文件

    关机

    关机

    【shutdown】

    shutdown [选项] 时间
    选项:
        -c: 取消前一个关机命令
        -h: 关机
        -r: 重启
    shutdown -h now 立刻关机

    【其他关机命令】

    halt
    poweroff
    init 0

    【其他重启命令】

    reboot
    init 6

    【运行级别】

      系统运行级别包括以下7个

    0 关机
    1 单用户,安全模式
    2 不完全多用户,不含nfs服务
    3 完全多用户
    4 未分配
    5 图形界面
    6 重启
    cat /etc/inittab
    #修改系统默认运行级别
    id:3:initdefault:
    
    runlevel
    #查询系统运行级别

    登录

    【查看登录用户信息】

    【退出登录】

    logout

    【who】

    【查询当前登录和过去登录的用户信息】

    【查看所有用户的最后一次登录时间】

    shell

      shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序

      shell还是一个功能非常强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令

    【语法类型】

    Bourne Shell:    主文件名为  sh
    语法类型:sh、ksh、Bash、psh、zsh
    C Shell  :  主要在BSD版的Unix系统中使用
    语法类型:  csh、 tcsh

    【查看当前系统的SHELL类型】

    【编辑脚本】

    vi hellp.sh

    【退出脚本】

      在vim中编辑好之后,按esc键,回到一般模式,再输入“:wq”,回车执行

    【脚本执行】

      1、赋予执行权限,直接运行

    chmod 755 hello.sh
    ./hello.sh

      2、或者,可以通过bash调用执行脚本

    bash hello.sh

    输入输出

    【输出重定向】

    【输入重定向】

    wc [选项] [文件名]
        选项:
            -c  统计字节数
            -w  统计单词数
            -l  统计行数

      命令<文件把文件作为命令的输入

      命令<<标识符把标识符之间的内容作为命令的输入

    进程管理

      Linux 系统上有一个命令ps用来报告系统当前的进程状态

    $ ps aux

      上面指令可以查看系统当前所有进程

    $ kill 1234

      上面指令可以强制关闭进程号为1234的进程

    $ bg

      上面指令让程序变成后台执行

    $ fg

      上面指令让程序回到前台

    磁盘管理

    【df】查看磁盘分区使用状况

    -I 仅显示本地磁盘(默认)
    -a 显示所有文件系统的磁盘使用情况
    -h 以1024进制计算最合适的单位显示磁盘容量
    -H 以1000进制计算最合适的单位显示磁盘容量(新购买的U盘实际容量小于标识容量,是因为工业生产使用1000进制,而不是1024进制)
    -T 显示磁盘分区类型
    -t 显示指定类型文件系统的磁盘分区
    -x 不显示指定类型文件系统的磁盘分区

    【du】统计磁盘上的文件大小

    -b 以Byte为单位统计文件
    -k 以KB为单位统计文件
    -m 以MB为单位统计文件
    -h 按照1024进制以最适合的单位统计文件
    -H 按照1000进制以最适合的单位统计文件
    -s 指定统计目标

    【MBR分区】

    fdisk -l 查看当前磁盘分区
    fdisk /dev/sdb 进入分区模式

       通过下面的命令为磁盘分得一个3GB的主分区

      分配结束后,输入p命令来查看分区信息

      最后输入w来保存并结束当前分区结果

     【GPT分区】

      MBR分区的限制在于主分区不超过4个,单个分区容量最大为2TB。而GPT分区最多支持128个分区,单个分区容量最大为18EB

    1EB = 1024PB
    1PB = 1024TB
    1TB = 1024GB

      GPT分区中,不适合安装X86架构的系统,即32位操作系统

      fdisk命令只适合于MBR分区,而parted命令同时适合于MBR分区和GPT分区

      [注意]下面分区从1M开始是为了保持4K对齐

    【分区格式化】

      先使用ll /dev/sdb*来查看sdb的分区情况

      使用mkfs命令来进行分区格式化

      [注意]扩展分区不能进行分区格式化

    mkfs .ext4 /dev/sdb1

    【挂载】

      格式化后的分区必须进行挂载操作,才能使用。一般地,挂载在mnt目录下

      下面代码中,将sdb1挂载到mnt目录下的sdb1目录中

    mkdir -p /mnt/sdb1
    mount /dev/sdb1 /mnt/sdb1

      通过mount命令挂载的分区不具有永久性,关机后失效。更好的方式是需要编辑etc目录下的fstab文件

    vim +  /etc/fstab

      这样一来,即使系统重启,也会进行自动挂载

    【swap交换分区】

      在linux中添加swap交换分区的步骤如下

      1、先建立一个linux普通分区 (用MBR建立)输入fdisk /dev/sdb

      2、修改分区类型的16进制:输入t,再输入该硬盘的分区号如6,再输入16进制的编码L。修改编码83,改为82(swap类型)输入w保存退出

      3、格式交换分区 mkswap /dev/sdb6

      4、启动分区 swapon /dev/sdb6

      5、关闭分区 swapoff /dev/sdb6

    用户管理

      linux允许多个用户在同一个时间登录同一个操作系统

    【group】

    /etc/group 存储当前系统中所有的用户组信息
      Group:      x    : 123  :abc,def,xyz
      组名称:组密码占位符:组编号:组中用户名列表

      当用户组名称与用户名相同时,可以省略用户名列表的信息

      组编号0为root,1-499为系统保留组编号,一般用于安装在系统中的软件或服务;用户手动创建的用户组从500开始

    【gshadow】

    /etc/gshadow 存储当前系统中用户组的密码信息
    Group:   *  :       : abc,def,xyz
    组名称:组密码:组管理者:组中用户名列表

      该文件中的内容与group里面的内容一一对应

    【passwd】

    /etc/passwd 存储当前系统中所有用户的信息
     user:     x    :  123  :    456  :  xxxxxxx :/home/user:/bin/bash
    用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型
    /etc/shadow存储当前系统中所有用户的密码信息
     user :vf;/Zu8sdf...:::::
    用户名:     密码    :::::

      由于系统运行过程中,group和passwd这两个文件经常需要被读取,而密码又属于敏感数据,于是单独设置了gshadow和shadow来保存密码

    【基本命令】

    groupadd  用户组名 #创建用户组
    groupmod -n 新组名 原组名 #修改用户组名    
    groupmod -g 组编号 组名称 #修改组编号
    groupadd -g 组编号 组名称 #创建用户组并指定组编号
    groupdel 组名称 #删除用户组
    
    useradd -g 用户组 用户 #向指定用户组中添加用户
    useradd -d 文件夹 用户 #创建用户并指定用户的个人文件夹
    usermod -c 备注信息 用户 #给用户添加备注信息
    usermod -l 新用户 原用户 #修改用户名
    usermod -g 目标用户组名 用户 #切换用户组
    userdel 用户名 #删除用户 userdel
    -r 用户名 #删除用户及对应的个人文件夹 touch /etc/nologin #禁止除root外的用户登录服务器
    passwd abc #给用户adc设置密码

      [注意]在centos系统下,使用useradd会默认在home目录下,新增一个与用户名同名的目录。如果是ubuntu系统,默认不创建目录,如果需要则添加-m参数

    【进阶命令】

    passwd -l 用户名 #锁定用户 禁用
    passwd -u 用户名 #解锁用户
    passwd -d 用户名 #清除用户密码,可以无密码登录

      用户可以同时属于多个组,一个是主要组,其他的为附属组

    gpasswd -a 用户名 附属组,附属组,..... #添加附属组

      用户创建的文件默认为主要组;需要以附属组创建文件的,需将身份切换到附属组

    newgrp 附属组名称 #切换附属组

      [注意]需要用户登录后,自己执行,切换,组密码是在组切换时用的,如果有,会要求输入组密码

    gpasswd -d 用户名 附属组 #删除附属组
    useradd -g group1 -G group2,group3,.... #创建用户同时指定主要组和附属组
    gpasswd 用户组 #设定组密码

      [注意]输入后回车,会有提示让输入密码

    su username #切换当前用户身份,su后不加参数切换到root
    sudo su #切换到root用户 whoami #显示当前登录用户名 id 用户名 #显示制定用户信息,包括用户编号,用户名,主要组编号及名称,附属组列表 groups 用户名 #显示用户所在的所有组 chfn 用户名 #设置用户资料 finger 用户名 #显示用户详细资料

    端口设置

      查看某个端口被占用情况

    lsof -i:8081

      然后使用kill -9命令来结束进程

    kill -9 18446
  • 相关阅读:
    JSON排序
    iOS常用控件尺寸大集合
    Android 平台下Ftp 使用模拟器需要注意的问题
    PhoneGap Html5 App 横竖屏切换自动退出
    加减密 DES
    入学测试题
    黑马程序员——JAVA基础之反射
    黑马程序员——JAVA基础之网络编程
    黑马程序员——JAVA基础之正则表达式,网络爬虫
    黑马程序员——JAVA基础之GUI
  • 原文地址:https://www.cnblogs.com/xiaohuochai/p/7631295.html
Copyright © 2020-2023  润新知