zoukankan      html  css  js  c++  java
  • Linux

    Linux系统文件结构

    img

    在这里插入图片描述

    /bin:
    bin是Binary的缩写, 这个目录存放着最经常使用的命令。

    /boot:
    这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

    /dev :
    dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

    /etc:
    这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    /home:
    用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    /lib:
    这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

    /lost+found:
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

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

    /mnt:
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

    /opt:
    这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    /proc:
    这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    

    /root:
    该目录为系统管理员,也称作超级权限者的用户主目录。

    /sbin:
    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

    /selinux:
    这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

    /srv:
    该目录存放一些服务启动之后需要提取的数据。

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

    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

    /tmp:
    这个目录是用来存放一些临时文件的。

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

    /usr/bin:
    系统用户使用的应用程序。

    /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。

    /usr/src:内核源代码默认的放置目录。

    /var:
    这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    基本命令

    开关机命令

    reboot 命令用于重启机器
    poweroff 用于关闭系统
    

    获取IP地址

    ip addr
    ifconfig
    

    ssh远程连接

    ssh 用户名@ip
    ssh -p 端口 用户名@ip
    

    用户

    创建普通用户

    useradd  用户名 
    

    更改用户密码

    passwd  用户名 
    

    切换用户

    root切换普通用户不需要密码,普通用户之间切换需要密码

    su -  用户名 
    # -代表用户环境变量完全切换
    

    查看linux用户的id信息

    id  用户名  
    

    查看存放用户信息的文件

    /etc/passwd 
    

    删除用户

    userdel  -rf 用户名 
    

    管理员权限 sudo命令

    配置sudo命令
    用visudo命令,打开配置文件,添加如下配置
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    用户名   ALL=(ALL)       ALL
    

    在要执行的命令前添加sudo执行命令

    权限

    文件的权限分三类人

    user   属主
    group  属组
    other  其他人
    

    一个文件有三种权限,读、写、可执行

    r  read   读 4
    w  write  写 2
    x  exec 可执行 1
    

    查看一个文件的权限信息
    ls -l

    -rw-r--r--. 1 root root 0 Oct 27 16:36 1.txt   
    rw- :属主权限
    r-- :属组权限
    r-- :其他人权限
    root :创建者
    root :用户组
    0 Oct 27 16:36 : 修改时间
    1.txt : 文件名
    

    修改文件权限

    chmod u/g/o+r/w/x filename
    chmod u/g/o-/w/x filename
    

    修改文件属主

    chown 用户 filename
    

    修改文件属组

    chgrp 属组 filename
    

    将用户加入某个组

    usermod -G 组名 用户名 
    

    软连接,快捷方式

    ln -s  源文件绝对路径   快捷方式绝对路径 
    

    目录相关

    目录符号

    符号 描述
    . 当前目录
    上一级目录
    - 上一次工作目录
    ~ 当前用户的家目录
    / 根目录

    目录操作

    查看当前目录下所有文件内容

    ls
    

    查看隐藏文件

    ls -a
    

    以列表方式显示文件的详细信息

    ls -l
    

    以列表方式显示人性化的文件详细信息

    ls -lh
    

    查看当前所在目录

    pwd
    

    切换文件夹

    cd /opt/first
    

    创建目录

    mkdir a
    

    递归创建目录

    mkdir -p a/b/c
    

    删除空目录

    rmdir a
    

    强制删除

    rm -rf
    

    文件相关

    创建文件,如果文件不存在,创建文件

    linux中文件的后缀没有意义,只是提示作用

    touch 1.txt
    

    删除指定文件

    rm 1.txt
    

    查看文件内容

    全部查看
    cat 1.txt
    
    显示行号
    cat -n 1.txt
    
    在每行结尾显示$符
    cat -E 1.txt
    
    追加文字到文件
    cat >> /opt/1.txt << EOF
    11
    22
    EOF
    

    more:用于查看内容较多的文本,more命令查看文本会以百分比形式告知已经看到了多少,使用回车键向下读取内容

    more 1.txt
    空格翻页,b键上一页,回车向下读取内容
    

    head、tail

    head
    显示文件前几行,默认为10
    head -2 1.txt
    
    tail
    显示文件后几行,默认为10
    tail -2 1.txt
    

    chattr

    给文件上锁、只能写入无法删除

    chattr +a 1.txt
    chattr -a 1.txt
    

    lsattr

    查看文件隐藏属性

    lsattr 1.txt
    

    chattr

    设置文件特殊权限的命令

    vim
    vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

    简单使用

    1、使用vi或vim打开文件弹出命令模式

    vim 1.txt
    

    2、在命令模式中输入a或i进入编辑模式

    3、编辑结束后按esc返回命令模式

    4、在命令模式中输入wq!保存退出

    命令模式操作

    :q!     强制退出
    :wq!    强制写入退出
    :set nu 显示行号
    :数字   跳转到数字行
    :! command    暂时离开vim指令模式,执行command的结果
    例如  :!ip a    临时看一下ip信息,然后可以回到vim
    
    :set nu    显示vim行号
    :set nonu    取消行号
    
    随时按下esc可以退出底线命令模式
    
    

    移动光标

    w 移动到下一个单词
    b 移动到上一个单词
    0 移动到本行开头
    $ 移动到本行结尾
    H 移动到屏幕首行
    M 移动到屏幕中间一行
    L 移动到屏幕尾行
    gg 移动到文档首行
    G 移动到文档尾行
    ctrl + f 下一页
    ctrl + b 上一页
    . 移动到上一次修改行
    
    按键移动
    h 或 向左箭头键(←)    光标向左移动一个字符
    j 或 向下箭头键(↓)    光标向下移动一个字符
    k 或 向上箭头键(↑)    光标向上移动一个字符
    l 或 向右箭头键(→)    光标向右移动一个字符
    向下移动5行      5j
    向右移动10字符    10l
    
    

    查找

    /chaoge 在整篇文档中搜索chaoge字符串向下查找
    ?chaoge 在整篇文档中搜索chaoge字符串向上查找
    * 查找整个文档、匹配光标所在的所有单词,n查找下一处N查找上一处
    # 查找整个文档、匹配光标所在的所有单词,按下n查找下一处,N上一处
    gd 找到光标所在单词匹配的单词,并停留在飞注释的第一个匹配上
    % 找到括号另一半
    
    

    复制、删除、黏贴

    yy    拷贝光标所在行
    dd    删除光标所在行
    D     删除当前光标到行尾的内容
    dG    删除当前行到文档尾部的内容
    p     粘贴yy所复制的内容
    x   删除光标所在的字符
    u     撤销上一步的操作
    
    3yy    拷贝光标所在的3行
    5dd    删除光标所在5行
    
    

    tar

    参数: 
    -z  调用gzip压缩
    -x  解包
    -c  打包
    -v 显示过程 
    -f  必须写参数结尾,指定tar包的名字 
    

    打包

    tar -cvf  压缩文件名.tar  被压缩文件
    

    解包

    tar  -xvf  压缩文件名.tar 解包路径
    

    压缩

    tar  -zcvf  压缩文件名.tar.gz   被压缩文件 
    

    解压

    tar  -zxvf  压缩文件名.tar.gz    解压路径
    

    查看环境变量

    echo $PATH
    

    Linux中的环境变量由目录组成,由:分割

    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    

    时间

    date

    显示当前时间和设置系统时间

    -d    --date=string    显示指定的时间,而不是当前时间
    以年-月-日显示当前时间
    date +"%Y-%m-%d"
    以年-月-日 时分秒 显示当前时间
    date +"%Y-%m-%d %T"
    
    在Linux下系统时间和硬件时间不会自动同步,在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。
    硬件时间的运行,是靠Bios电池来运行,而系统时间是用CPU tick来维持的。
    在系统开机时候,会从Bios中获取硬件时间,设置为系统时间
    
    硬件始终的查看
    [root@izhk773c62kz06z ~ 10:19:04]#hwclock
    2018年08月27日 星期一 10时23分03秒  -0.528004 秒
    
    

    同步系统时间和硬件时间,可以用hwclock命令

    //以系统时间为基准,修改硬件时间
    [root@izhk773c62kz06z ~ 10:29:07]#hwclock -w
    
    //以硬件时间为基准,修改系统时间
    [root@izhk773c62kz06z ~ 10:29:21]#hwclock -s
    

    cal

    日历命令

    [root@VM_0_16_centos first]# cal
        November 2019   
    Su Mo Tu We Th Fr Sa
                    1  2
     3  4  5  6  7  8  9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30
    
    

    ntp

    关于时间服务器的配置文件,有如下几种

    /bin/date     用于 Linux 时间 (软件时钟) 的修改与显示的指令;
    
    /sbin/hwclock  用于 BIOS 时钟 (硬件时钟) 的修改与显示的指令。 这是一个 root 才能执行的指令,因为 Linux 系统
    上面 BIOS 时间与 Linux 系统时间是分开的,所以使用 date 这个指令调整了时间之后,还需要使用 hwclock 才能将修改过
    后的时间写入 BIOS 当中!
    
    /usr/sbin/ntpd: 主要提供 NTP 服务的程序啰!配置文件为 /etc/ntp.conf
    
    /usr/sbin/ntpdate: 用于客户端的时间校正,如果你没有要启用 NTP 而仅想要使用 NTP Client 功能的话,那么只会
    用到这个指令而已!
    
    只用作客户端更新时间
    ntpdate -u ntp.aliyun.com
    
    

    wget

    命令用于在终端下载网络文件

    wget [参数] 下载地址
    wget -r -p http://www.baidu.com
    

    echo

    echo命令用于在终端输出字符串或变量提取后的值,格式是“echo 【字符串|$变量】

    默认将内容打印
    echo "xxx"
    
    打印PATH的值
    echo $PATH 
    
    其他特殊符号
    >> 追加文字到文件
    > 覆盖文字到文件
    < 输入
    << 将输入结果输入
    echo "x" > 1.txt
    echo "xx" >> 1.txt
    echo >> 1.txt << EOF
    
    

    复制、移动、删除

    复制

    复制
    cp xx.txt first
    复制后改名
    cp xx.txt first/x1.txt
    递归复制
    cp -r
    保持文件属性不变
    cp -p
    

    移动

    mv 1.txt /tmp 
    

    删除

    rm 1.txt
    rm -i 删除时需要确认
    rm -f 强制删除
    rm -r 递归删除
    

    查找

    完整格式
    find 目录 类型 名字 参数
    
    按名字查找
    find -name 1.txt
    
    按类型查找
    find -type f
    按类型查找参数:
    b 块设备文件
    d 目录
    c 字符设备文件
    p 管道文件
    i 符号链接文件
    f 普通文件
    s socket文件
    
    通配符
    以什么结尾
    find -name "*.txt"
    以什么开头
    find -name "s*"
    
    

    管道命令

    Linux提供的管道符“|”讲两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入。

    ls /opt|find -name "*txt"
    

    grep

    (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

    语法:
    grep [参数]  [--color=auto] [字符串] filename
    
    参数:
    i 忽略大小写
    n 输出行号
    v 反选
    color = auto 给关键词添加颜色
    
    cat /etc/passwd |grep '^root' --color=auto -n
    

    别名

    查看系统别名
    alias
    
    设置别名
    alias rm = "xxxxx"
    
    取消别名
    unalias rm
    

    which

    命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。

    指令会在环境变量$PATH设置的目录里查找符合条件的文件。

    which ls
    

    scp

    scp命令用于Linux之间复制文件和目录。

    scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

    语法:
    scp 【可选参数】 本地源文件 远程文件标记
    
    参数:
    -r 递归复制
    -v 详细方式输出
    -q 不显示传输进度条
    -c 允许压缩
    
    scp 本地文件 远程用户名@远程ip:远程文件夹/远程文件名
    

    du

    du会显示指定的目录或文件所占用的磁盘空间。

    语法:
    du 【参数】【文件或目录】
    
    参数:
    -s 显示总计
    -h 以k、M、G为单位显示
    
    du -sh /home
    

    top

    命令用于动态地监视进程活动与系统负载等信息

    第一行 (uptime)
    系统时间 主机运行时间 用户连接数(who) 系统1,5,15分钟的平均负载
    第二行:进程信息
    进程总数 正在运行的进程数 睡眠的进程数 停止的进程数 僵尸进程数
    第三行:cpu信息
    1.5 us:用户空间所占CPU百分比
    0.9 sy:内核空间占用CPU百分比
    0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
    97.5 id:空闲CPU百分比
    0.2 wa:等待输入输出的CPU时间百分比
    0.0 hi:硬件CPU中断占用百分比
    0.0 si:软中断占用百分比
    0.0 st:虚拟机占用百分比
    
    第四行:内存信息(与第五行的信息类似与free命令)
    total:物理内存总量
    used:已使用的内存总量
    free:空闲的内存总量(free+used=total)
    buffers:用作内核缓存的内存量
    
    第五行:swap信息
    total:交换分区总量
    used:已使用的交换分区总量
    free:空闲交换区总量
    cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入
    
    

    清屏

    clear
    

    whoami

    whoami  查看当前目录
    

    主机名

    hostname 查看主机名  
    set-hostname  新的主机名 
    

    yum

    在linux下安装各种软件

    yum install  vim  -y  #安装vim软件,且自动输入yes
    

    更新yum

    yum update
    

    tail

    tail  -f  filename  #持续刷新文件内容的变化
    

    进程

    查看进程
    ps aux 或者 ps -ef  #查看机器所有进程信息
    ps aux  |  grep  "vim"  #过滤出和vim有关的进程
    
    杀死进程
    kill -9 进程id
    pkill -9 进程名
    

    查看内存信息

    free
    

    查看磁盘信息

    fdisk 
    

    磁盘使用率

    df
    

    查看网络端口

    netstat  -tunlp  
    参数:
    	netstat [选项]
    	-t或--tcp:显示TCP传输协议的连线状况;
    	-u或--udp:显示UDP传输协议的连线状况;
    	-n或--numeric:直接使用ip地址,而不通过域名服务器;
    	-l或--listening:显示监控中的服务器的Socket;
    	-p或--programs:显示正在使用Socket的程序识别码和程序名称;
    	-a或--all:显示所有连线中的Socket;
    
    

    防火墙

    关闭防火墙的命令

    systemctl stop  firewalld  		#停止防火墙服务 
    systemctl disable  firewalld    #停止防火墙开机自启
    iptables -F   				    #清空防火墙规则 
    

    定时任务

    检查定时任务列表

    crontab -l  
    

    设置定时任务

    crontab  -e
    
    分  时  日 月 周      执行命令的绝对路径
    *   *   *   *  *     /usr/bin/echo  "111"
    

    yum源

    centos的默认yum仓库路径是 /etc/yum.repos.d ,在这目录下,第一层文件夹中的repo文件会识别为仓库文件

    配置yum源

    1.获取阿里云的yum源
    打开网址https://opsx.alibaba.com/mirror
    
    2.找到第一个仓库
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    3.下载第二个仓库
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    
    4.生成yum缓存,加速以后下载
    yum makecache 
    
    

    SimpleHTTPServer

    python -m SimpleHTTPServer 8090
    
  • 相关阅读:
    .c 文件取为.o文件
    wildcard 处理全部文件
    专家解读Linux操作系统内核中的GCC特性
    Yeoman:适合现代Web应用的现代工作流
    【转】nodejs
    node.js
    2019暑假集训 种树
    2019.6.5 NOIP2014 day2 t2 寻找道路
    2019.6.1 最优贸易
    2019.5.11 海淀区赛之杯子
  • 原文地址:https://www.cnblogs.com/zgboy/p/12698229.html
Copyright © 2011-2022 走看看