zoukankan      html  css  js  c++  java
  • Linux实操、优化

    Linux特点:

      免费,开源,安全,高效,稳定,处理高并发非常强悍。

    目录结构

      Linux世界里,一切皆文件。

      Linux文件系统是采用层级式的树状目录结构

    树状目录结构:

     1 /bin:
     2 bin是Binary的缩写, 这个目录存放着最经常使用的命令。
     3 
     4 /boot:
     5 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
     6 
     7 /dev :
     8 dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
     9 
    10 /etc:
    11 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
    12 
    13 /home:
    14 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
    15 
    16 /lib:
    17 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
    18 
    19 /lost+found:
    20 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
    21 
    22 /media:
    23 linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
    24 
    25 /mnt:
    26 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
    27 
    28 /opt:
    29  这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
    30 
    31 /proc:
    32 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    33 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
    34 
    35 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    36 /root:
    37 该目录为系统管理员,也称作超级权限者的用户主目录。
    38 
    39 /sbin:
    40 s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
    41 
    42 /selinux:
    43  这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
    44 
    45 /srv:
    46  该目录存放一些服务启动之后需要提取的数据。
    47 
    48 /sys:
    49 
    50  这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
    51 
    52 sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
    53 该文件系统是内核设备树的一个直观反映。
    54 
    55 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
    56 
    57 /tmp:
    58 这个目录是用来存放一些临时文件的。
    59 
    60 /usr:
    61  这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
    62 
    63 /usr/bin:
    64 系统用户使用的应用程序。
    65 
    66 /usr/sbin:
    67 超级用户使用的比较高级的管理程序和系统守护程序。
    68 
    69 /usr/src:
    70 内核源代码默认的放置目录。
    71 
    72 /var:
    73 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
    74 
    75 /run:
    76 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
    目录描述

    远程登录

    XShell 6能够远程访问Linux系统的前提是,Linux启用了SSHD服务,该服务会监听22号端口

    1 ssh root@+ip

    vim和vi

     三种模式

    • 一般模式
    • 命令行模式
    • 编辑模式

    常用快捷键

     

    到文件首行然后dG就可以全部删掉文件的内容,支持合并到用发现

    补充:

    关机&重启

    用户管理

    用户家目录

    /home/目录下有各个创建的用户对应的家目录,当用户登录时,会自动进入自己的家目录。

    添加用户

    删除用户

    切换用户

    查询用户

    用户登陆和注销

     

    用户组

    用户和组的配置文件

    /etc/shadow口令配置文件。
    /etc/passwd用户配置文件。

    /etc/group组配置文件。

    了解更多https://www.runoob.com/linux/linux-user-manage.html

    实用指令

    帮助指令

    文件目录类

    pwd
    1 功能:显示当前工作目录的绝对路径。
    ls
    1 功能:显示指定工作目录下之内容。
    2 语法:ls [选项] 目录或文件
    3 常用选项:
    4 
    5     -a显示当前目录的所有文件和目录,包括隐藏的。
    6     -l以列表的方式显示详细信息。
    cd
    1 功能:切换当前目录。
    2 常用参数
    3 
    4     cd返回家目录
    5     cd ~返回家目录
    6     cd ..回到当前目录的上一级目录
    mkdir
    1 功能:创建目录
    2 语法:mkdir [选项] 要创建的目录
    3 常用选项:
    4 
    5     -p创建多级目录
    rmdir
    1 功能:删除空目录
    2 语法:rmdir 目录
    rm
    1 功能:删除文件或目录
    2 语法:rm [选项] 文件或目录
    3 常用选项:
    4     -r递归删除整个文件夹
    5     -f强制删除,不提示
    touch
    1 功能:新建一到多个文件
    2 语法:mkdir 文件1 [文件2,文件3...]
    cp
     1 功能:拷贝文件到指定目录
     2 语法:cp [选项] source dest
     3 常用选项:
     4 -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
     5 
     6 -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
     7 
     8 -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
     9 
    10 -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
    11 
    12 -r:递归持续复制,用於目录的复制行为;(常用)
    13 注意:使用cp,可以强制覆盖,不提示
    mv
    1 功能:移动文件与目录,或者重命名
    2 语法1:mv source dest
    3 语法2:mv 旧名 新名
    cat
    1 功能:查看文件内容,只读。
    2 语法:cat [选项] 文件
    3 常用选项:
    4 
    5 -n显示行号
    6 技巧: 通常和管道命令| more一起使用,分页显示
    more
    1 功能:全屏、按页显示文本文件内容
    2 语法:more 文件

    more指令内置了若干快捷键

     

    less
    1 功能:分屏查看文本文件内容。
    2 说明:less的功能比more强大,它在显示文件内容时,不是全部加载后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高效率。
    3 语法:less 文件

    less指令内置了若干快捷键

     

    >和>>  < <<
    1 功能:>表示覆盖,>>表示追加。将前者覆盖或追加到后者,若后者不存在,则创建。
    2 案例:
    3 
    4 ls > 文件将ls显示的内容覆盖写入到文件,若该文件不存在,则创建文件
    5 cat 文件1 > 文件2将文件1的内容覆盖文件2
    6 echo "内容" >> 文件将内容追加到文件
    echo
    1 功能:输出内容到控制台。
    2 语法:echo "内容"
    head
    1 功能:显示文件前几行内容,默认10行。
    2 语法:head 文件
    3 常用选项:
    4 
    5 head -n x 文件显示前x行
    tail
    1 功能:显示文件后几行内容,默认10行。
    2 语法:tail 文件
    3 常用选项:
    4 
    5 -n x显示后x行
    6 -f实时监控文件变化
    ln
    1 功能:软链接也叫符号链接,类似windows快捷键
    2 语法:ln -s [原文件或目录] [软链接名]
    3 说明:
    4 
    5 使用pwd查看目录时,看到的仍然是软链接所在的目录
    history
    1 功能:查看或执行历史命令
    2 语法:history
    3 案例:
    4 
    5 history n显示最近执行的n条命令
    6 !n执行第n条历史命令

    时间日期类

    date
    1 功能:查看和设置时间日期
    2 查看语法:
    3 
    4 date 查看当前时间
    5 date "+%Y年%m月%d日 %H:%M:%S"查看年月日时分秒*(其中的年月日以及冒号可以自由写,并且,也可以只显示一部分时间信息)*
    6 设置语法:
    7 
    8 date -s "年-月-日 时:分:秒"设置时间
    cal
    1 功能:查看日历
    2 语法:cal [选项]
    3 案例:
    4 
    5 cal 年份 显示该年日历

    搜索查找类

    find
    1 功能:从指定目录向下遍历其各个子目录,将满足条件的目录或文件显示在终端
    2 语法:find 搜索范围 选项

    locate
    1 功能:快速定位文件路径
    2 语法:locate 文件
    3 说明:
    4 
    5 第一次运行前,必须使用updatedb指令创建locate数据库
    grep
    1 功能:过滤查找
    2 语法:grep [选项] 查找内容 源文件
    3 常用选项:
    4 
    5 i忽略大小写
    6 n显示匹配行和行号
    管道符号|
    1 功能:将|前的命令处理结果,输出给后面的命令来处理
    2 案例:
    3 
    4 cat 文件 | grep -ni 内容

    压缩解压类

    gzip/gunzip
    1 功能:gizp压缩(只能压缩为.gz格式),gunzip解压
    2 语法:
    3 
    4 gzip 文件压缩
    5 gunzip 文件解压
    6 注意:用gzip压缩不会保留源文件
    zip/unzip
    1 功能:zip压缩,unzip解压
    2 语法:
    3 
    4 zip [选项] 压缩后的文件 压缩前的为文件压缩文件或目录
    5 unzip [选项] 要解压的文件解压
    1 zip选项:
    2 
    3 -r递归压缩,即压缩目录
    4 unzip选项:
    5 
    6 -d指定解压后的存放目录
    tar
     1 功能:打包指令,打包后的文件为.tar.gz格式
     2 语法:tar [选项] 打包后的文件 打包前的文件
     3 说明:-zcvf压缩,-zxvf解压
     4 选项:
     5 
     6 c产生.tar打包文件
     7 v显示详细信息
     8 f指定压缩后的文件名
     9 z打包同时压缩
    10 x解包.tar文件

    组管理

    文件权限

     

    rwx权限

    作用到文件

    作用到目录

    权限管理

    1 功能:修改文件权限
    2 语法:chmod 权限设置 文件目录名
    3 说明:a所有者,g所在组,o其他组,a全部人
    4 方法:
    5 
    6 通过+-=。如a+w,a-w,a=r-x
    7 直接通过数字。如:751表示rwx -wx --x

    任务调度

    1 任务调度:定期执行脚本或代码。(对于简单的任务,可直接在crontab中加入任务,对于复杂的任务,需要写脚本)

    crontab

    1 语法:crontab [选项]
    2 选项:
    3 
    4 -e编辑crontab任务
    5 -l查询crontab任务
    6 -r删除当前用户的所有crontab任务
    7 service crond restart重启任务调度

    特殊的符号

    Linux网络环境配置

    1 vim /etc/sysconfig/network-scripts/ifcfg-eth0,修改后重启机器生效,可使用service network restart重启网络服务。

    ifcfg-eth0文件说明:

    指定固定IP的方法:

     

    进程管理

    ps
    1 功能:显示当前系统正在执行的进程
    2 语法:ps [选项]
    3 选项:
    4 
    5 -a当前终端的所有进程信息
    6 -u以用户格式显示进程信息
    7 -x显示后台进程运行的参数
    8 -ef显示父进程
    9 说明:可以使用ps -aux | grep 指定服务来查看是否有指定服务

    -aux信息选项说明

    -ef信息选项说明

    终止进程

     kill/killall/pkill
    1 功能:终止进程
    2 语法:
    3 
    4 kill [选项] 进程号
    5 killall 进程名称(支持通配符)
    6 选项:
    7 -9强制终止
     pstree
    1 功能:查看进程树
    2 语法:pstree [选项]
    3 选项:
    4 
    5 -p显示进程的PID
    6 -u显示进程的所属用户

    服务管理

     service
     1 功能:管理服务
     2 语法:service 服务名 [start|stop|restart|reload|status]
     3 说明:
     4 
     5 Centos7.0以后使用的是systemctl指令;
     6 可以使用telnet ip 端口检测某端口是否在监听
     7 该指令是立马生效,也是临时生效的*(重启后恢复以前设置)*
    查看所有服务
    1 方法一:
    2 使用setup指令查看
    3 方法二:
    4 打开/etc/init.d/
    运行级别

    系统运行级别的配置文件/etc/inittab,切换运行级别的命令为init [123456]

    监控服务

     动态监控服务top
     1 功能:动态监控进程
     2 语法:top[选项]
     3 选项:
     4 
     5 -d 秒数每隔几秒更新,默认三秒
     6 -i不显示闲置或僵死进程
     7 -p通过指定进程id来监控某个进程
     8 案例:
     9 
    10 监视特定用户:输入top,然后按u,输入用户名
    11 终止指定进程:输入top,然后按k,输入进程id

     查看网络情况netstat

    netstat -tunlp 查看所有端口

    1 功能:查看系统网络情况
    2 语法:netstat [选项]
    3 说明:一般写``netstat -anp`
    4 选项:
    5 
    6 an按一定顺序排列输出
    7 p显示哪个进程正在调用

    RPM包管理

    1 RPM,RedHat Package Manager(RedHat软件包管理工具),类似windows的setup.exe

    YUM

    1 YUM,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,一次性安装所有依赖的软件包。

    补充:

    防火墙:最好不要关闭,处理大并发的时候对计算机要求高

    1 centos7默认已经使用firewall作为防火墙了
    2 1.关闭防火墙
    3 systemctl status firewalld #查看防火墙状态
    4 systemctl stop firewalld    #关闭防火墙
    5 systemctl disable firewalld#关闭防火墙开机启动
    6 systemctl is-enabled firewalld.service#检查防火墙是否启动 

    防止中文乱码问题:

    把握三点:

    1.系统字符集utf8 2.xshell字符集utf8 3.文件字符集一致zh_CN.UTF-8

     1 #查看系统当前字符集
     2 echo $LANG
     3 locale
     4 
     5 #检查xshell crt的字符集
     6 #命令修改字符集
     7 
     8 
     9 
    10 # vim /etc/profile.d/locale.sh
    11 export LC_CTYPE=zh_CN.UTF-8
    12 export LC_ALL=zh_CN.UTF-8
    13 
    14 # vim /etc/locale.conf
    15 LANG=zh_CN.UTF-8
    16 
    17 # vim /etc/sysconfig/i18n
    18 LANG=zh_CN.UTF-8
    19 
    20 # vim /etc/environment
    21 LANG=zh_CN.UTF-8
    22 LC_ALL=zh_CN.UTF-8
    23 
    24 英文版本
    25 # vim /etc/profile.d/locale.sh
    26 export LC_CTYPE=en_US.UTF-8
    27 export LC_ALL=en_US.UTF-8
    28 
    29 # vim /etc/locale.conf
    30 LANG=en_US.UTF-8
    31 
    32 # vim /etc/sysconfig/i18n
    33 LANG=en_US.UTF-8
    34 
    35 # vim /etc/environment
    36 LANG=en_US.UTF-8
    37 LC_ALL=en_US.UTF-8
    38 
    39 
    40  
    41 2.更改后查看系统语言变量
    42 locale

    tree命令

     1 tree命令以树状图列出目录的内容。
     2 
     3 -a:显示所有文件和目录;
     4 -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;
     5 -C:在文件和目录清单加上色彩,便于区分各种类型;
     6 -d:先是目录名称而非内容;
     7 -D:列出文件或目录的更改时间;
     8 -f:在每个文件或目录之前,显示完整的相对路径名称;
     9 -F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*""/""@""|"号;
    10 -g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;
    11 -i:不以阶梯状列出文件和目录名称;
    12 -l:<范本样式> 不显示符号范本样式的文件或目录名称;
    13 -l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;
    14 -n:不在文件和目录清单加上色彩;
    15 -N:直接列出文件和目录名称,包括控制字符;
    16 -p:列出权限标示;
    17 -P:<范本样式> 只显示符合范本样式的文件和目录名称;
    18 -q:用“?”号取代控制字符,列出文件和目录名称;
    19 -s:列出文件和目录大小;
    20 -t:用文件和目录的更改时间排序;
    21 -u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;
    22 -x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。

    设置主机名

    1 [root@yugo /tmp 11:04:42]#hostnamectl set-hostname pyyuc
    2 [root@pyyuc ~ 11:05:12]#hostname 

    查看dns

    1 配置文件
    2 cat /etc/resolv.conf
    3 #dns服务器地址
    4 nameserver 119.29.29.29
    5 nameserver 223.5.5.5

     大多数ssh连接不上虚拟机,都是因为防火墙和selinux阻挡了

     1 1.修改配置文件,永久生效关闭selinux
     2 cp /etc/selinux/config /etc/selinux/config.bak #修改前备份
     3 2.修改方式可以vim编辑,找到
     4 # This file controls the state of SELinux on the system.
     5 # SELINUX= can take one of these three values:
     6 #     enforcing - SELinux security policy is enforced.
     7 #     permissive - SELinux prints warnings instead of enforcing.
     8 #     disabled - No SELinux policy is loaded.
     9 SELINUX=disabled
    10 3.用sed替换
    11 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    12 4.检查状态
    13 grep "SELINUX=disabled" /etc/selinux/config
    14 #出现结果即表示修改成功

    临时关闭selinux(命令行修改,重启失效):

    1 getenforce #获取selinux状态
    2 #修改selinux状态
    3 setenforce 
    4 usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
    5 数字0 表示permissive,给出警告,不会阻止,等同disabled
    6 数字1表示enforcing,表示开启

    /etc下配置文件和子目录

     1 #网卡配置文件
     2 /etc/sysconfig/network-script/ifcfg-eth0
     3 #修改机器名以及网卡,网管等配置
     4 /etc/sysconfig/network
     5 #linux的dns客户端配置文件,实现域名和ip的互相解析
     6 /etc/resolv.conf
     7 #本地dns解析文件,设定ip和域名的对应解析,开发测试最常用的临时域名解析
     8 /etc/hosts/
     9 #系统全局环境变量永久生效的配置文件,如PATH等
    10 /etc/profile
    11 #用户的环境变量
    12 ~/.bash_profile 
    13 ~/.bashrc
    14 #存放可执行程序的目录,大多是系统管理命令
    15 /usr/sbin
    16 #存放用户自编译安装软件的目录  > 等同于C:Program files (windows)
    17 /usr/local
    18 #关于处理器的信息,还可以top指令查看
    19 /proc/cpuinfo
    20 #查看内存信息,还可以free -m
    21 /proc/meminfo 

    配置yum源

     1 1.好习惯,备份yum源
     2 mkdir repo_bak
     3 mv *.repo repo_bak/
     4 2.下载阿里云repo文件
     5 wget http://mirrors.aliyun.com/repo/Centos-7.repo
     6 3.清空yum缓存并且生成新的yum缓存
     7 yum clean all
     8 yum makecache
     9 4.安装软件扩展源
    10 yum install -y epel-release

    操作

     1 yum repolist all        列出所有仓库
     2 yum list all            列出仓库所有软件包
     3 yum info 软件包名            查看软件包信息
     4 yum install 软件包名        安装软件包
     5 yum reinstall 软件包名    重新安装软件包
     6 yum update    软件包名        升级软件包
     7 yum remove    软件包名        移除软件包
     8 yum clean all            清楚所有仓库缓存
     9 yum check-update        检查可以更新的软件包
    10 yum grouplist            查看系统中已安装的软件包
    11 yum groupinstall 软件包组    安装软件包组

    系统服务管理命令

    设置开机启动相关

    ubuntu常用快捷键
        https://blog.csdn.net/lujianfeiccie2009/article/details/7521347

  • 相关阅读:
    学习 swift (1)
    Sbulime Text 2 修改选中字符串的颜色
    js string 和 json 互转
    Mac OSX sublime text2 各种快捷键
    webstorm keymap
    python http post json
    node.js async 几个函数
    python 爬图 helloworld
    合服导致 globalserver 起不来的问题
    ssh 登陆 端口转发
  • 原文地址:https://www.cnblogs.com/Alexephor/p/11362135.html
Copyright © 2011-2022 走看看