zoukankan      html  css  js  c++  java
  • Linux基础知识介绍

    1、Linux知识说明
    1)文件位置
    1)/etc/inittab
    2)模式介绍
    0:挂起模式-不推荐
    1:单用户模式-只有管理员可以进入该模式,可以修改root密码,处理有登录权限而没有修改文件的权限问题
    2:多用户模式-不支持文件共享明服务(NFS),一般不使用
    3:字符模式-在安装好X11后,可使用startX命令切换到图形模式。
    4:used模式
    5:图形模式
    6:重启模式

    3)解决忘记CentOS6.4系统root密码的方法
    CentOS6.4系统中,通过Grub方式进入单用户模式:
    1)启动系统后,还未进入登录界面前,输入字母e,之后通过上下键,选择CentOS(2.6.32-358.e16.i686)。
    2)之后,选择kernel开头那行,再输入字母e,进入引导编辑设置界面。
    3)在引导设置界面中,在行尾加上single,保存后按回车键,再输入b,进行重新启动系统。
    4)启动完成系统后,登录系统中,通过passwd命令去修改root用户的密码。

    4)分区介绍
    boot:启动引导文件 100MB
    swap:虚拟内存的分配,交换空间 不能大于4GB,且为2的倍数
    linux命令 不区分大小写 没有空格 拼写错误 空不空格看命令格式要求。

    4)判断服务是否启动
    1)客服端是否能连接到服务端 ping 服务端IP,看有无返回信息
    2)检查对应的服务进程是否启动 ps -ef |grep 'ssh'
    3)查看对应服务的端口是否启动 netstat -anp |grep ssh
    4)查看防火强是否开启,是否允许服务对应的端口通过 systemctl status firewalld
    5)检查配置文件中 /etc/ssh/sshd_config 对应服务的权限设置

    5)光盘挂载
    mount -o loop /dev/sr0 /media/
    进入光盘的Packages目录,安装对应的程序
    卸载 umount


    2、用户目录
    ~ 用户家目录,用户主目录
    root用户主目录为:/root,普通用户主目录为:/home/username
    cd ~user 或 cd /home/uername 跳转到普通用户主目录
    cd ~ 或 cd ~root 或cd /root 跳转root用户目录

    [root@centos7 src]#
    root:用户名 centos7:主机名 src:当前工作目录 #:root用户 $:普通用户


    3、环境变量
    1)系统变量
    1)每个用户都要用到的变量可以设置为系统变量
    2)全局配置文件:登录时会读取/etc/profile文件,执行bash时,会读取/etc/bashrc文件

    2)用户变量
    1)特定用户都要用到的变量可以设置为用户变量
    2)局部配置文件:指定了特定用户读取/root/.bashrc、/root/.bash_profile文件

    3)临时变量
    1)用户登录1次都要用到的变量可以设置为临时变量

    4)变量管理
    1)env:可输出全部系统变量,echo $PATH:输出指定变量,name=value:
    2)设置变量,系统环境变量、用户变量生效,需要执行 source 环境变量文件,申明变量 export

    5)配置文件说明
    1).bash_profile:用户登录时执行该文件,执行1次,可理解为:全局变量配置文件。
    2).bashrc:用户专用文件,每次登陆及打开shell,执行该文件,可理解为:针对用户的变量配置文件。
    3).bash_history:记录历史命令的文件
    4).bash_logout:退出shell时,执行该文件

    6)内置变量
    1)env 查看环境变量
    2)set 查看系统中所有变量
    3)PATH 存放运行程序的目录
    4)HOME 用户的主目录
    5)HISTSIZE 历史命令记录数
    6)LOGNAME 用户的登录名称
    7)HOSTNAME 主机名称
    8)SHELL 用户的shell类型
    9)LANG 语言配置文件存放目录
    10)MAIL 邮件存放目录
    11)PWD 当前目录

    4、常用符号
    1)通配符
    * 进行前缀字符的匹配,匹配0个或多个字符
    + 进行前缀字符的匹配,匹配1个或多个字符
    ? 匹配任意1个字符
    # 注释字符

    2)参数符
    !$ 上个命令中最后1个变量
    $? 显示上个命令执行后的退出状态 0 成功 1 失败
    $0 显示执行shell的文件名
    $n 传递给脚本或函数的参数 $1 第1个参数 $n 第n个参数
    $# 传递给脚本或函数的参数的个数
    $* 传递给脚本或函数的所有参数
    $@ 传递给脚本或函数的所有参数
    $$ 显示shell的ID

    3)命令符
    >重定向一般信息并覆盖到文件
    >>重定向一般信息并追加到文件
    2>重定向错误信息并覆盖到文件
    2>>重定向错误信息并追加到文件
    [] 字符或数字组合,从范围中选择一个字符或数字
    ; 命令1;命令2 命令1和命令2都需要执行
    && 命令1&&命令2 命令2在命令1执行成功后再执行
    || 命令1||命令2 命令2在命令1执行失败后再执行
    & 将命令放到后台执行

    4)转义字符
    \ 反斜杠 a 警报 响铃  退格 删除键 回车 换行 水平制表符 v 垂直制表符 f 换页,将当前页换到下页开头
    -e 对转义字符进行替换
    转义字符,后面的字符为普通字符
    转义字符,加-e后,会执行转义字符,加-E后,不执行转义字符
    echo 'this a file '; 结果为:this a file
    echo -e 'this a file '; 结果为:this a file

    5)显示命令历史字符
    linux中运行的命令会保存在用户的家目录的.bash_history文件中,默认保存1000条命令记录。
    history 显示命令历史记录
    !! 执行上一条命令
    !n 执行第n条命令
    !ls 执行最近1次以ls开头的命令

    5、·sudo权限管理
    sudo:让普通用户拥有管理员的权限
    test是普通用户,新建test用户 ,然后改/etc/sudoers 让test有root权限,先切换为test,然后再新建/home/test123,最后ls -al /home 查看刚才新建的目录 test123

    切换到root用户,输入命令:su root
    root用户输入visudo命令进入/etc/sudoers文件进行编辑
    输入i进入编辑模式,为用户 test 添加权限,输入:wq保存退出

    切换到 test 用户
    输入visudo命令
    输入i进入编辑模式,为用户 develop 添加权限,输入:wq保存退出

    一定有读的权限 >=4
    一定有写的权限 2 3 6 7 -w- -wx rw- rwx
    一定有执行的权限 奇数 1357

    所有者 u 所属组 g 其他用户 o 所有用户 a
    对目录操作需要带上参数 -R

    删除用户,需要执行以下3个命令
    userdel -r test
    rm -rf /home/test
    rm -rf /var/spool/mail/test

    su - test 切换到 test 用户,且环境变量为 test 用户的环境变量
    su test 切换到 test 用户,且环境变量为 切换到test 用户之前用户的环境变量

    6、常用命令
    1)vim使用
    编辑模式:
    进入编辑模式;i
    退出编辑模式:esc
    保存:w 退出:q 保存退出:wq 强制:!
    gg 调到行首 /关键字 搜索 n顺序的往下搜索下一个 ?逆序的往上搜索下一个
    touch建立空白文件 vim 建立一个文件或假如文件存在,则编辑一个文件

    2)作业控制
    Ctrl+z 暂停执行命令
    fg 编号:让命令暂停恢复执行
    bg 编号 &:让命令放到后台执行
    Ctrl+c 终止执行命令
    jobs 显示暂停执行、后台执行的命令

    3)截取某一个字段:cut
    cut -d '分隔符' [-c(第几个字符) f(第几个块)] n(区间)
    head 10 /etc/passwd | cut -d':' -c1
    head 10 /etc/passwd | cut -d':' -f1 |head -n 5

    4)排序:sort
    sort [-t 分隔符] [-k n1 (区间1),n2 区间2)] [n (数字) r (反向) u (去除重复)]
    head 10 /etc/passwd |sort -t: -k1 -n

    5)统计字符数、词数、行数:wc
    wc -l (行数) -w (词数) -c (字符数)
    wc -l /etc/passwd
    wc -m /etc/passwd
    wc -c /etc/passwd

    6)去除重复的行:unique
    unique 去除重复的行 unique -c 统计重复的行
    sort test4.txt |unique
    sort test4.txt |unique -c

    7)重定向内容到文件,并显示在屏幕:tee
    tee 文件名
    tee test.txt

    8)替换字符:tr
    tr -d 要删除的字符 tr -c 去除重复的字符
    head -n2 /etc/passwd |tr '[a-z]' '[A-Z]'

    9)显示日期:date
    显示日期:date [+格式]
    设置日期:date [MMDDhhmm[[CC]YY][.ss]] 再以root权限的用户执行命令 clock -w
    格式:
    %y 最后的2位数年
    %m 一年中的月
    %d 一年中的某天
    %H 时(00~23)
    %M 分(00~59)
    %S 秒(00~59)
    %D mm/dd/yy 的格式日期
    %T HH:MM:SS 的格式时间
    %h 月份(Jan~Dec)
    %r 上午/下午(AM/PM)
    %a 一周中某天(星期一到星期六)

    10)显示日历:cal
    cal -m [month[year]]
    cal 显示当前月日历
    cal 5 显示该年的日历

    11)同步时间:ntpdate
    service ntpd stop
    ntpdate cn.pool.ntp.org
    service ntpd start

    12)软、硬链接
    软链接:ln -s 硬连接:ln
    1、硬连接文件 只能用于文件,软链接适合文件和目录

    2、修改源文件内容:同步更新到软链接、硬链接的文件;
    3、修改软链接文件内容:同步更新到源文件、硬链接文件;
    4、修改硬链接文件内容:同步更新到源文件、软链接文件;
    5、删除源文件:不影响硬接文件,软链接文件没法使用;
    6、删除软链接文件:不影响硬接文件,源文件;
    7、删除硬链接文件:不影响软接文件,源文件;
    8、删除原文件、硬链接文件,整个文件会真正失效。

    13)xargs
    -d 将其标准输入的内容以空白(空格 Tab 回车换行)分割成多个之后,并当做命令行参数传递给其后面的命令
    -p 需要确认是否需要执行
    -n 将xargs生成的命令行参数 每次传递给几个参数后面的命令执行
    -e -E 将-e -E 指定的参数传递给后面的命令

    7、shell基础
    1)文件判断
    1)文件与目录检测: -f 文件是否存在 -d 目录是否存在 -e 某项东西是否存在 -L 是否为symbolic link文件
    2)文件属性检测: -r 文件是否可读 -w 文件是否可写 -x 文件是否可执行 -s 文件是否为非空白文件
    3)文件比较检测: -nt 文件1比文件2新 -ot 文件1比文件2旧 -et 文件1和文件2为同一文件(link文件)
    4)关系判断:= 等于 != 不等于 < 小于 > 大于 -eq 等于 -ne 不等于 -lt 小于 -gt 大于 -le 下于等于 -ge 大于等于
    5)判断检测:-a 2边都成立 -o 单边成立 -z 空字符串 -n 非空字符串

    2)shell基础
    shell变量一般为大写
    shell文件中,最开始需要加#!/bin/bash,以表明这是1个shell文件
    变量定义:变量=变量值,等号两边不能有空格,变量名只能包含字母、数字和下划线,不能以数字开头
    变量之中包含特殊字符,需要加单引号(''),如果值中包含单引号,则需要加双引号(""),如果值为一个命令,则需要用反引号(``)包裹起来。

    declare 申明变量内容命令
    declare -a varr 定义为数组
    declare -f vfunc 定义为函数
    declare -i vdig 定义为整数
    declare -r vread 定义为只读
    declare -x 定义为可通过环境变量输出

    var=value 变量不能包含空格、标点符号、bash关键字,可以是数字和字符的组合,首字母为(a-zA-Z)
    使用变量 $var 或 ${var}
    变量只读 readonly var
    删除变量,只读变量不能被删除 unset var

    var=`命令` 执行该命令并赋值给变量,``为反引号
    ${var:=value} 改变var的值,变量为空或被删除,则返回value
    ${var:-value} 不改变var的值,变量为空或被删除,则返回value
    ${var:?message} 不改变var的值,变量为空或被删除,将 message 返回到标准错误输出
    ${var:+value} 不改变var的值,变量被定义,则返回value


    8、中文帮助文档
    1)安装中文帮助
    安装中文MAN包
    地址:https://github.com/man-pages-zh/manpages-zh
    如果是git方式:则还需执行:autoreconf --install --force
    tar -zxvf manpages-zh-1.5.1.tar.gz
    cd manpages-zh-1.5.1
    ./configure --disable-zhtw
    make
    make install

    2)修改语言配置文件
    vim /etc/sysconfig/i18n
    将LANG="en_US.UTF-8" 改成 LANG="zh_CN.UTF-8"

    3)重启系统
    shutdown -r now
    4)yum方式:yum -y install man-pages-zh-CN.noarch

    2)info命令
    1)例如:info top,输入m 命令项,进入命令项说明界面
    2)常用命令
    *n:跳转到该节点的下一个节点
    *p:跳转到该节点的上一个节点
    *m:指定菜单名,而选择另外一个节点
    *f:进入交叉引用主题
    *l:进入该窗口的最后一个节点
    *Tab:跳转到该窗口的下一个超文本链接
    *RET:进入光标除的超文本链接
    *u:转到上一级主题
    *d:回到info初始节点目录
    *h:调出info教程
    *q:退出info

    b t Home:文档开始
    e end:文档末尾
    m g :选择一个菜单项
    空格键:下一页
    PageDown:下一页,从当前页的最后两行开始
    PageUp:上一页,从当前页的开始两行开始
    Del:上一页
    上一个节点,当前页在节点文档开始
    下一个节点:当前页在节点文档末尾

  • 相关阅读:
    2010年10月全球web服务器调查
    Orchard 发布1.0版本和ASP.NET MVC 3 RTM
    推荐一个在Linux/Unix上架设ASP.NET的 WEB服务器Jexus
    Windows Azure 的成本架构
    RavenDB系列教程
    Mono环境下不支持中文的解决方法
    IIS 7.0的六大安全新特性为你的Web服务器保驾护航
    Windows 7 Phone 文档数据库Rapid Repository正式发布
    使用log4Net 输出日志到mongodb
    Ubuntu & Fedora Mono 2.8 安装脚本
  • 原文地址:https://www.cnblogs.com/NiceTime/p/6684273.html
Copyright © 2011-2022 走看看