• linux基础一


    文件系统目录
    root    根用户目录
    home 其他用户目录
    bin 用户管理命令   用户层面   cat chmod  chown  date等常用的指令   可以被root和普通用户使用的
    sbin 系统管理命令   系统层面    只有root用户才能使用的指令  其他用户只能读取      放在/sbin底下的开机过程所需要 的    包括开机    修复   还原系统  等     常见指令  包括   fdisk      fsck     ifconfig    init    mkfs等
    mnt 默认光驱  u盘等外部设备挂载点
    boot 引导系统相关文件   核心   开机菜单与开机配置文件    核心为vmlinuz    可能会有grub
    etc 系统和软件配置文件目录   账号密码  各种服务的启动文件   普通用户可读    root用户修改    
    /etc/inittab    /etc/init.d/     /etc/modprobe.conf      /etc/X11/      /etc/fstab      /etc/sysconfig等
    /etc/init.d/     所有服务的预设启动脚本
    /etc/xinetd.d/  super daemon   管理的各项服务的配置文件目录
    /etc/X11/ X Window  相关的配置      其中xorg.conf较重要
    var 存放经常变化的文件  log等
    proc  存放linux运行过程中的核心与程序执行的信息    主要显示内存中信息    虚拟文件系统   系统核心   进程  外设 网络状态等   比较重要的档案   /proc/cpuinfo     /proc/dma     /proc/interrupts     /proc/ioports    /proc/net/*等
    sys 与前一个类似
    tmp 临时文件   暂存盘   开机后建议清空
    usr 安装软件默认的路径    类似于windows的program文件夹   存放用户的使用的系统命令和应用程序等的信息
    /usr/ 发行版自动安装的软件目录
    /usr/local/ 本地后期安装的软件目录  
    /usr/sbin/ 根文件系统不必要的管理命令
    lost+found 当系统出现错误时    丢失的片段  通常位于文件系统最顶部   
    dev 接口设备文件目录    例如hda表示硬盘
    lib 系统函数库   开机时会用到的函数库     其他的/bin    /sbin下的lib是指令调用的函数库
    lib/modules/    该目录存放核心相关的额模块    例如驱动程序
    opt 第三方软件安装的目录     以前通常安装到/usr/local目录下
    srv 网络服务启动后取用的数据目录    例如www服务开启后     网页资料就可以放在/srv/www/下面
     
    usr的意义与内容    类似与windows中的c:windows      和c:program files
    unix  software   resource    软件资源
    /usr/====~
    ~/X11R6/       X  Window System   重要数据存放
    ~/bin 存放绝大部分的用户指令      与/bin不同之处就是是否与开机过程有关
    ~/incluce/ c和c++头文件与include文件      当用tarball安装某些数据时  会用到许多包含的文件
    ~/lib 软件的函数库     目标文件   不被普通用户常用的执行文件和脚本    如果是64位的系统   可能会 有/usr/lib64/目录产生
    ~/local/ 管理员安装自己下载的软件  非系统自带     建议安装到此目录    
    ~/sbin/ 非系统必须的指令   
    ~/share/ 共享文件     不区分硬件架构均可读取的数据    均为文本文件    主要有   /man    /doc    /zoneinfo  等等
    ~/src/ 源代码放置位置
     
    /var/    意义和内容    系统云心过后逐渐占用硬盘空间    常态性变动的问及那  包括快取   登陆    以及某些软件运作所产生的 文件
     
    ~/cache 程序产生的临时文件
    ~/lib 程序运行过程汇总用到的数据文件存放的目录    各软件有相应的目录  例如mysql的数据存放 在/var/lib/mysql/中
    ~/lock 锁定正在运行的资源   同一时间点同一个资源只能有一个应用程序使用     所以需要上锁  例如刻录机
    ****~/log 日志文件     登陆文件放置的目录     /var/log/messages      /var/log/wtmp   记录登入者的信息
    ~/mail 电子邮件目录    与/var/spool/mail/目录是链接的关系
    ~/run 进程id号存放的目录   正在运行的服务程序
    ~/spool 队列数据    使用之后会被删除    举例  邮件数据放~/spool/mail目录之下     如果未发出去就会存放在
    ~/var/spool/mqueue/中      任务数据   放在/var/spool/cron/目录中
     
     
    挂载分区时注意   与/目录不能分开的涉及的开机的目录有    /etc      /bin     /dev     /lib    /sbin
    建议不与根目录放在同一区的目录 有/home    /usr    /var    /tmp     
     
     
    硬件装置在linux中的文件名
    ide硬盘     /dev/hd[a-d]   a-d为硬盘的序号
    sata硬盘 /dev/sd[a-p]
    打印机 /dev/lp[0-2]
    u盘 /dev/sd[a-p]
    软盘 /dev/fd[0-1]
    鼠标 usb:/dev/usb/mouse[0-15]   和ps2:/dev/psaux
    当前dvd /dev/cdrom
    当前鼠标 /dev/mouse
     
    纯文本模式   ctrl +alt+f1---f6    进入tty界面    f7为图形界面
    run level3中没有图形界面    f1-f6
    run level5中有图形界面 f1-f7    startx   启动图形界面的充分必要条件     tty7未用    已经安装了x window system
    并且x-server能够启动      有窗口管理程序   gnome或kde 或 xfce或lxde等
    x必须要的服务     例如x font  server   xfs等
     
    /etc/inittab   中设定   
    root用户为#      普通用户为$     ~为用户的家目录
    exit    注销    或者logout
    帮助         文件存放位置     /usr/share/man       可以修改/etc/man.config   文件  改变位置
    内部命令 help  COMMAND
    外部命令 COMMAND --help
    常用 man   COMMAND
    更加详细   info  COMMAND
    man命令的章节分类
    man  章节   命令   例如:man  1   ls     查看第一章节中的ls命令的内容
    *1.用户命令 (/bin,/usr/bin,/usr/local/bin)   用户可以在shell环境中才做的指令或文件
    2.系统调用    系统核心可以调用的函数和工具
    3.库文件        大部分为c函数库
    4.特殊文件(设备文件)        /dev下的设备
    5.文件格式(配置文件的语法)
    6.游戏
    7.杂项    惯例与协议等      文件系统  网络协议    ascII   code等
    *8.管理命令   (/sbin,/usr/sbin,/usr/local/sbin)       系统管理员可用的管理指令
    9.kernel相关的文件
    帮助命令中显示的各项的意义  语法
     
    name 命令名称    及功能简要说明
    synopsis 用法说明   语法   包括可用的选项
    description 命令功能的详尽说明  包括每个选项的意义
    options 说明每个选项的意义
    files 次命令相关的配置文件
    bugs 缺陷
    examples 使用示例 **
    see  alse 另外参照
    [=format]    指定按照某种格式来显示
     
     
    <  >  必须给出的参数
    [  ] 可选的参数  可有可无
    [  a | b   | c  ]      a,b,c中互斥 如果有,只能有一个
    ...       前面的内容可以使用多次
    {   } 分组    无特殊意义
    翻屏:向后     space
    向前 b
    向前一行 k
    向后一行 enter
    pageup pagedown 翻页
    home end
    查找:不区分大小写
    /KEYWORD     回车 向后搜索
    ?KEYWORD 回车 向前搜索
    n 下一个
    N 前一个
    退出:q
    格式:理解为变量
    %D 显示日期   月 日 年
    例子:   date  +%D
     
      info    COMMAND
    描述的更加 详细   历史       此为man的补充
    特定目录    /usr/share/doc/       相应的目录中有文档
     
    文件权限
    -rwxrwxrwx    其中红色代表 文件所有者的权限      蓝色代表同文件所有者同组的成员的权限     黑色代表其他用户的权限
    -    是文件的类型    分为   b  块文件 存储器;c字符文件   串行端口设备;d目录文件;-普通文件;l链接文件
    -: 纯文本文档  ascII  文档    可以用cat  vi  more等读取的文件
    二进制文件 binary       可执行文件   例如各种命令
    数据格式文件   特殊格式的文件     
    目录文件
    link文件
    设备与装置文件      block和character文件
    接口文件   sockets    主要用于网络的数据接口        属性为s      通常在/var/run中出现
    数据传输文件      fifio       主要用于多个程序同时存取一个文件的冲突问题      第一个属性为p
    sockets和fifo文件与进程有关
     
     
    扩展名:
    .sh      脚本或者批处理文件    由shell写成
    .Z     .tar   .tar.gz    .zip     .tgz     压缩打包的文件    对应软件分别为gunzip    tar等
    .html     .php
    安装软件目录   通常遵循FHS  标准     不断变化

      可分享和不可分享主要对应于网络上的其他主机  能否挂载

     
     
    /etc/inittab   文件
    init     运行级别
    0 关机
    1 单用户
    2 多用户状态没有网络服务
    3 多用户状态有网络服务
    4 系统未使用保留给用户
    5 图形界面
    6 系统重启
     
    修改错误配置的方法
    grub引导时      按e键 两次  进入修改界面    最后输入1    代表1号运行级别   因为单用户级别不看inittab文件   并且可以修改 密码。b  进入系统
    密码存放文件       /etc/shadow   
     
     
    基础命令
    运行程序
     
    设备管理   
     
    软件管理   
     
    进程管理
     
    网络管理
     
     
    linux
    shutdown -h now   关机
    shutdown -r now 重启
    reboot   重启
    logout 注销
    init 0 关机
     
     
    useradd     用户名       添加用户              useradd   -g   组名   用户名        -m   直接设置权限
    passwd     用户名 修改密码
    userdel 删除用户
    userdel  -r     删除用户及其主目录
    chown 修改文件的所有者    -R   递归
    chgrp 修改文件所在的组    -R   递归
    usermod   -g   组名  用户名
    usermod    -d 目录名   用户名   改变用户登陆的初始目录
    groupadd 添加组
    chmod 改变权限    -R   递归    包括目录下的文件
    所有者u=rwx 组g=rwx     其他o=rwx  或者u-x    g+w      或者chmod  777
    umask 目前用户建立文件或目录时的权限默认值      -S  直观显示 symbolic   设定文件为/etc/bashrc
    chattr    配置文件的隐藏属性   仅仅支持ext2/3的文件系统    i      和a比较重要
    lsattr 显示文件的隐藏属性
     
     
     
    目录管理
    ls     -l   等价于ll    a显示隐藏         -ahl   查看文件所在组
    a  全部文件 包括隐藏文件 ; A 全部文件  不包括.和.. 的目录;d仅列出目录 ;f不排序   默认是排序;
    F列出文件的数据结构   *可执行     /目录       =socket文件       |fifo文件
    i   inode号      n uid和gid的名称         r排序结果反向输出    -S以文件大小排序   t依据时间      --color=always 显示 颜色    --color=auto系统自行依据设定来判断是否给予颜色
    --full-time 显示完整的修改时间
    dir     于ls类似
    cd 改变目录
    pwd    显示当前目录    -P   显示出真实的路径     而非  链接路径     print   working  directory
    mkdir 建立目录      -p递归建立目录    -m配置文件的权限,不使用默认预设
    rmdir 删除空目录   -r   递归包括文件        -p  连同上层的空目录一同删除
     
     
    文件管理
    touch 建立空文件    原作用时用来修改文件的时间戳
    mtime   modification time  内容数据变更时
    ctime status time 状态改变时   例如像权限与属性被改变时会更新
    atime access time 内容被读取时    例如用cat读取文件时会更新
    t 欲修改的时间
    m 仅修改mtime
    a 修改atime
    d 欲修改的日期
    c 修改文件的时间   如果文件不存在  则不建立
    cp 复制     -r递归      a  --archive  类似于-dR --preserve=all  保留文件所有的属性归档复制   主要用于备份      
       i  interactive若目标文件存在 会询问是否覆盖    
       p连属性一同复制    保留属主  属组 以及时间戳  
        u如果destination比source旧才会复制    如果参数有多个  则最后一个才是目的文件   其他的都是源文件
    d --no-dereference  --preserve=link      保持链接文件原样    refer 指向链接文件     no+de等于肯定 
    cp命令默认是带-L    即dereference    如果选择的是符号链接文件   复制到目的文件夹中的是链接指向的原始文件
    -P   选择符号链接复制  则复制过来的是符号链接  而不是原始文件
    mv 移动或改名     f强制    i询问    u目标已存在 且source更新  才会执行      t   先写目标  后写源
    rm 删除文件    -rf    递归和强制    包括目录和目录中的文件     i为询问是否覆盖
    basename 取得文件名 
    dirname 取得目录名
    ln 符号链接     快捷方式
    -s    源    目标
     
     
     
     
    文本处理
    vi
    插入   i
    esc   命令模式
    保存w
    退出q
    强制!
    cat 查看文件    只读       n 显示行号     E  显示结尾符号   linux中$符号是结尾的符号    windows中$+回车符为结尾符
    b列出行号 空白行不标    n打印行号 空白行也有行号       E显示结尾的断行字符$     A列出空白位置的特殊字符
    grep 文本中查询
    |  管道命令
    find 查找文件   需要先制定一个目录  例子:find /root/   -name  ***
    > 重定向      覆盖写入一个文件
    >> 重定向     追加 写入一个文件   
    tac 从最后一行开始显示
    nl 显示时输出行号
    -ba    列出行号  空行一样       -bt    空行不列行号
    -n ln行号在屏幕的左侧显示   ;   -n  rn行号在右       不加0   ;   -n rz   同上加0
    more 按页显示文件
    space  向下翻页    enter向下一行       /字符串   向下搜索字符串        :f显示文件名以及目前显示的行数
    q离开     b或者ctrl-b    回翻
    less 与more类似  可以向前翻页
    space向下翻页      pagedown向下翻一页      /字符串   向下搜索       ?向上搜索      n重复前一个搜索   
    N反向的重复一个搜索    q离开
    head 看头几行
    n   后面接数字     数字如果是负数  则表示 不显示后面的数字行数
    tail 看尾巴几行
    n  数字        f  代表follow 持续侦测后面所接的文件    
    od 以二进制的方式读取文件
    t后面使用不同的类型输出包括下面   :a  默认的字符       c   ascII字符输出        
    file 查看文件类型
    sort 排序
    比较第一个字符的asc码    排序
    n 按照数值排序
    u 相同行只显示一次
    r 降序
    t 字符分隔符
    f 排序忽略字符大小写
    uniq 报告sort中重复的行   注意如果完全一样的行不相邻  则认为是不重复的   否则才认为是重复的行   可以与sort结合使用
    d 只显示重复的行
    D 显示所有重复的行
    c 将所有行都显示出来   并且列出重复次数
    wc 统计   默认显示文件的行   单词数    字节数  
    l  只显示行数
    w 只显示单词数
    m 只显示字节数 或字符数
    L 最长的一行包含的字符数
     
     
     
    nano 简单的文本编辑
    cut 不会改变原文件的内容
    d指定字段分隔符  默认为空格; 
    f指定要显示的字段    -f 1代表显示的第一个字段    -f 1,3  代表显示1和3的字段    -f 1-3  显示从1到3的这个范围的字段
     
    join
     
     
    sed
     
    awk
    字符处理
    tr 转换或删除字符
    d 删除
     
     
     
     
     
     
     
     
    who   查看在线用户
    netstat -a     查看网络连接状态
    ps -aux    后台程序列表
    sync 缓存写入硬盘
    LANG 修改语言环境    对应的文件/etc/sysconfig/i18n
    uname   -r 查看系统核心版本
    lsb-release -a      系统的详细信息包括硬件
    $PATH        环境变量设置         每个命令会去对应的PATH中的设定的目录去搜索该命令的执行文件  
    echo    $PATH    结果会显示当前用户的PATH设定的目录      
    例如   用普通用户身份执行   ifconfig   eth0   
    会提示     -bash:ifconfig:command not found    命令未发现的额字样    原因是ifconfig命令会放在/sbin下面     但是 普通用户的PATH变量设置中没有/sbin目录    所以无法执行命令     但是可以通过指出绝对路径的方式执行
    /sbin/ifconfig eth0  来执行
    install 复制文件并且设置属性   类似于copy用法  注意只能复制文件   不能复制目录   d 创建目录       
    不带参数复制之后的文件具有可执行的权限导致不安全   所以需要指定权限    m 指定权限
    t     先写目标   后写源
    which 寻找文件  a 将所有PATH目录中可以找到的指令均列出      
    type
    whereis 寻找特定文件    b二进制     m在manual路径下的文件     s找source来源文件     u找不在之前三个项目中的其 他特殊文件
    搜索系统中的文件数据库 而不是直接搜索硬盘 这样比find更快 数据库更新 根据发行版本不同 默认可能一周一次
    所以新建的文件在数据库中找不到
    locate 定位文件位置 与whereis相同 都是查找系统文件数据库
    i忽略大小写 r正则表达式 数据库文件 /var/lib/mlocate 手动更新数据库命令updatedb 根据文件/etc/upd atedb.conf 再搜索硬盘文件名
     
     
    特殊权限 除了r  w   x外还有其他的特殊权限      x执行权限  也是目录的打开权限
    SUID set uid出现在owner的x位置上   
    suid权限仅适用于二进制程序   不适用于shell script      当前用户对于该程序有可执行的权限     本权限仅在执行程 序的过程中有效    执行者将具有该程序拥有者的权限   例如/etc/shadow文件
    SGID 当s出现在群组中的属性x位置时     同时可以针对文件和目录    
    针对文件:二进制程序     执行者对于该程序来说需要x的权限      在执行过程中将获得该程序群组的支持
    针对目录:用户具有r与x的权限  能够进入此目录       此目录下的有效群组会变成该目录的群组      
    如果用户在此目录下具有w的权限   则使用者所建立的新文件  该文件群组与此目录的群组相同    适用于项目开发
    SBIT sticky bit   只针对目录   
    当用户对于此目录具有w x权限    就是具有写入的权限时
    当用户在该目录下建立文件或目录时  仅有自己与root才有权利删除该文件
    配置方式
    SUID:4                  SGID:2    SBIT:1
    在原来的rwx的权限基础上再加上上面的对应数字
    例如原来的文件权限为755      想要在此基础上加上suid 的权限  则可以设置为:chmod 4755 filename
     
    *****权限与指令之间的关系
    两者的结合 很重要
    一、让用户能够进入某目录成为可工作目录的基本权限
    可使用的命令:cd等变换工作目录的指令
    目录所需权限:用户对这个目录至少有x的可执行的权限  即可以打开进入此目录的权限
    额外:如果想利用ls查阅文件名    则用户对此目录还要有r的权限
    二、用户在某个目录内读取文件的基本权限
    指令:cat more less等
    权限:目录有x权限
    文件所需权限:使用者有r权限
    三、使用者可以修改一个文件
    指令:nano   或vi
    权限:目录有x权限
    文件所需权限:使用者有该文件的w和r的权限
    四、使用者建立一个文件的基本权限
    指令:用户在该目录要具有w和x的权限     重点在w
    五、让用户进入某目录并执行该目录下的某个指令基本权限
    目录权限:用户具有该目录的x权限
    文件权限:文件至少有x权限
    umask默认文件权限为666              目录权限为777
     
     
     
     
     
     
     
     
    BASH组成和特性
    shell分为两类    用户使用计算机时   使用的程序   广义可以分为以下两类
    GUI:GNOME     KDE     XFCE
    CLI: sh    csh ksh bash tcsh zsh
     
    1命令历史
    2管道重定向
    3命令别名
    4命令行编辑
    5命令行展开
    6文件名通配
    7变量
    8编程
     
     
     
    命令行编辑:
    光标跳转:
    ctrl+a 跳到命令行首
    ctrl+e 跳到命令行尾
    ctrl+u 删除光标至命令行首的内容
    ctrl+k 删除光标至命令行尾的内容
    ctrl+l 清屏
    命令历史:
    上下箭头
    !n  执行命令历史中的第n条命令
    !-n  执行命令历史中的倒数第n条命令
    !!n  执行上一条命令
    !string 执行命令历史中最近的以string开头的命令
    !$ 引用前一个命令的最后一个参数
    esc松手   再按. 引用前一个命令的最后一个参数
    alt+. 引用前一个命令的最后一个参数
    tab 命令补全   一次tab和两次tab的区别
    目录补全
     
    history   查看命令历史
    -c 清空历史命令    内存中
    -d 删除指定位置的命令   加offset参数
    -w 保存命令历史至历史文件中
    保存命令文件的位置    家目录 .bash_history    追加的方式
    环境变量:
    PATH:命令搜索路径
    HISTSIZE:命令历史大小    条目数
    命令别名:只在当前shell生命周期有效   所以当前shell进程关闭后  即失效    想让别名永久有效   需要配置sh文件
    alias CMDALIAS='command [options][arguments]'
    unalias CMDALIAS 撤销别名
    命令替换:***常用的重要
    把命令中某个子命令替换为其执行结果的过程
    例子 1 #echo $(pwd)
    会先运行$(pwd) 将pwd的结果打印到标准输出上 此种方式即为命令替换
    例子2 按照时间格式作为文件名创建文件
    file-2013-02-28-14-53-31.txt 蓝色部分为当前的时间
    #touch ./file-$
    文件名通配符
    * 任意长度字符
    ? 任意单个字符
    [ ] 匹配指定范围内的任意单个字符
    [a-z] [A-Z] [0-9] [a-zA-Z][0-9A-Za-z]
    [:space:] 空白字符  
    [:punct:] 标点符号
    [:lower:] 小写字母
    [:upper:] 大写字母
    [:alpha:] 大小写字母
    [:digit:] 数字
    [:alnum:] 数字和大小写字母
    man 7 glob 此命令可以查看以上所有
    举例:[[:alpha:]]*[[:space:]]*[[:alpha:]]   代表字母开头   字母结尾    中间有空白字符的字符串
    [^ ] 匹配指定范围之外的任意单个字符
  • 相关阅读:
    Android
    Android
    Android
    Android
    Android
    【工作中学习】CreateProcessAsUser失败,错误码:1314
    【Angular JS】网站使用社会化评论插件,以及过程中碰到的坑
    【Angular JS】正确调用JQuery与Angular JS脚本
    【工作】Proxy Server的优化
    AWS ELB Sticky Session有问题?别忘了AWSELB cookie
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7902613.html
Copyright © 2020-2023  润新知