zoukankan      html  css  js  c++  java
  • 自学Linux

    Linux简介

    1: linux是一个服务器操作系统,项目发布,环境搭建。

    特点: 免费,开源,高效,安全,处理高并发能力很强。

    Linux内核,华为 小米

    2:linux的发行版(在内核的基础上进行的开发应用)

    红帽  centOS  Ubantu  suse  红旗(中国)

    Android---》小米  华为

    《鸟哥私房菜》---> 初级 linux(基础的linux指令)

    《人月神话》  -- linux 高级应用(集群,部署信息)

     

    VM和linux的安装

    VM:虚拟机

    通过vm软件在windows平台虚拟一个新的操作系统(光驱,硬盘,声卡 网卡....)

    虚拟化,(集群搭建),云计算:运维(linux)

     

    必须开启:当前系统的虚拟化,否则安装失败(F2,或者是F10,F12

    操作系统支持虚拟化,bios 虚拟机化开启 enalbel

     

    CentOS:linux操作系统(就是一系列的文件)

    (1)创建一个虚拟机

         根据windows硬件,配置虚拟机的配置。

          配置网络连接的时候选择 nat方式

          

    (2)安装centos操作系统

     

    网络设置和终端

    1:配置网络

    自动获取动态IP地址

    也就是通过路由器的DHCP功能,使Linux主机自动获取IP地址。

     

    设置方法如下:

     

    vi  /etc/sysconfig/network-scripts/ifcfg-eth0

    编辑本地网卡的配置文件

    主要查看下面这两项是否和下面给出的一致即可。

     

    ONBOOT=yes

    BOOTPROTO=dhcp

    第一项是确保本地网卡eth0开启。

     

    第二项是使用dhcp,自动获取IP地址、子网掩码、网关和DNS

     

    然后,执行下面的命令,重启网络服务即可。

     

    service network restart     

    重启网络服务,使配置文件生效

     

     

    安装vmtools工具

    Vmtools工具可以将windows中的文本文件拷贝到linux中,linux中的内容可以移动的windows

    安装:击安装VMware Tools 会下载到/media/VMware Tools目录下

    1) root权限将vmtools工具压缩包,解压到opt目录下

    tar -zxvf /media/VMware Tools/压缩文件名 -C /opt

    2)  进入解压后的文件目录 (cd 目录名)  cd  /tmp/vmware-tools-distrib

    3)  安装文件  ./***.pl 文件 (一路回车)   ./vmware-install.pl

    4)  重启linuxvmtools工具才能生效

    文件在linuxwindows之间就可以自由的拷贝了.

    Linux的目录结构

    Linux的文件系统采用层级式的树状目录结构,在此结构中的最上层称之为跟目录,使用”/”表示然后在此目录下创建其他目录

    Linux是一个文件系统,在linux中一切内容都是文件。

     

    常用目录介绍:

    /bin [重点](/usr/bin/usr/local/bin)

    binbinary的缩写,这个目录中存放着最经常使用的命令

    cat  /etc/passwd

     

    /sbin(/usr/sbin/usr/local/sbin)

    s就是super user的意思,这里存放的是系统管理员使用的系统管理程序

     

    /home[重点]

    存放普通用户的主目录,在linux中每个用户都有自己的一个目录,一边该目录名是以用户账号命名的。

     

    /root 该目录是系统管理员,或者是超级权限者的用户目录

     

    /lib 系统开机所需要的最基本的动态链接共享库,

     

    /lost+font  这个目录一般是空的,系统非法关机后这里就会存放一些文件

     

    /etc [重点] 所有的系统管理所需要的配置文件和子目录

     

    /usr[重点] 这是一个非常重要的目录,用户的很多应用程序和文件都放在此目录下类似于windeows下的 program file文件夹

     

    /boot  存放的是启动linux时使用的一些核心文件目录

     

    /proc/srv/sys  这三个目录和linux内核有关的目录,他是系统内存的一个映射,访问这个目录来获取系统信息。Linux高手才会用到,普通操作者不要乱动。

     

    /tmp   存放临时文件的目录

     

    /dve  类似于windows的设备管理器,把所有的硬件用文件的形式存储

    /media [重点]  linux会自动识别一些设备,如u盘,光驱等,当识别后linux会把识别的设备挂载到这个目录下

     

    /mnt  系统提供该目录是为了让用户临时挂载别的文件系统。

     

    /opt[重点] 这个是我们存放安装软件的目录(jdk  tomcat sogou...)

     

    /usr/local [重点] 这个是另外一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装程序

     

    /var  存放不断变化的文件,例如日志文件,经常更新,就放到这个目录下。

     

    /selinux 是一个安全子系统,控制程序访问特定文件

     

     

     

     

     

     

     

     

    远程登录linux

    在我们实际操作中,我们的服务器安装的linux系统,让后将项目发布到服务器上,linux服务器是没有显示器的。而且我们和服务器机房不在同一个地方,所以需要远程服务器

     

    Xshell5就是一个远程终端,用于登录到linux上,如果需要在linux上安装文件,我们还需要将文件远程上传到linux系统上,使用的就是 xftp5

     

    注意:因为xshell5远程登录到linux系统,linux系统必须打开sshd服务,因为这个服务监听22号端口,如果没有开启我们需要开启这个服务。

    nc -lp 23 &(打开23端口,即telnet)

    netstat -an | grep 23 (查看是否打开23端口)

     

    1)安装xshell5完成以后

    2)获取当前linuxip地址

    3)使用ip进行远程连

    安装文件上传工具 sftp,按照下图进行配置

     

     

     

    修改sftp中文乱码问题:默认为gbk编码

     

    勾选后然后刷新就可以改变乱码了.

    Linux的常用指令:

    1:文件和目录

    1) Pwd :显示当前所在的目录

    /   linux中根目录

    ~  当前的用户目录

     

    2) cd   切换目录  (. , ..)

    cd /home 进入 '/ home' 目录'

    cd .. 返回上一级目录

    cd ../.. 返回上两级目录

    cd 进入个人的主目录

    cd ~user1 进入个人的主目录

    cd - 返回上次所在的目录

     

    3)  ls 查看目录下的文件   ----- ll

    ls -F 查看目录中的文件

    ls -l (ll)显示文件和目录的详细资料(常用的查看指令) 

    ls -a 显示隐藏文件

      ll -s  显示文件详细信息

     

    查看文件内容:

    Cat 指令  查看文件内容的指令

    Cat  文件

    Cat  有效的文件路径/文件  查看文件内容

     

    4) 目录指令

    mkdir dir1 创建一个叫做 'dir1' 的目录'

    mkdir dir1 dir2 同时创建两个目录

    mkdir -p /tmp/dir1/dir2 创建一个目录树(多个文件夹的嵌套

    rmdir dir1 删除一个叫做 'dir1' 的目录'(文件夹中没有内容的

     

    rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容

    rm -rf dir1 dir2 同时删除两个目录及它们的内容

    mv dir1 new_dir 重命名

     

    5)修改文件的指令

     Touch file1 创建一个叫’file1’的文件

     Vim 文件名 编辑文件内容后就会产生一个文件   vi    vim     

     Echo  ‘内容’ > 文件名  将制定内容添加到文件中,这样会覆盖文件原有内容,如果不想覆盖请使用 >> 符号

     

     

     Rm  -f  文件名(或者是一个有效的文件目录,最终指向一个文件)  删除一个文件

     Mv 文件名 新文件名  给文件重命名

     Mv  文件名 一个有效的文件目录。将某个文件移动到指定目录中

     Mv  文件的路径   文件的路径    将当前目录中制定的文件移动到目标文件中

      

    5) Cp 复制指令

    cp dir/* . 复制一个目录下的所有文件到当前工作目录

    cp -a /tmp/dir1  路径 复制一个目录到当前工作目录  

    cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2

    cp file1 file2 file3 dir #把文件file1file2file3复制到目录dir

     

    Vi 和Vim文本编辑器使用

    进入编辑页面想退出:

    Esc 》》》 shift+: 》》》q

    正常使用

    Vim  /usr/local/a001/b003/mm.txt

    I  (开始编辑)

    Esc 》》》 shift+: 》》》wq

    Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

     

    简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具

     

    三种模式

     

    正常模式:

    vim打开一个档案就直接进入一般模式(这个是默认的模式) 在这个模式中可以使用[上下左右]按键来移动光标,你可以使用删除字符或者是删除正行来处理档案内容,可以使用复制 粘贴来处理文件数据

     

    插入模式

    按下 i I o O a A r R 等任何一个字母之后才会进入编辑模式 一般来说按i即可

     

    命令行模式 (底行模式)

    在这个模式当中,可以提供相关指令,完成读取,存盘 替换 离开 vim、显示行号等动作则是在此模式中打成

     

    三种模式的切换:

     

     

     

     

    (1) 创建一个文本文件

            Touch  文件名

    (2) 使用vim指令切换不同的模式完成练习

     

     

    find文件查找指令(名字)

    Find指令

    基本格式:语法:find  [查找文件的路径]  [查找条件]  [处理动作]

    1.按照文件名查找

    (1)find  /  -name  httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找

    (2)find  /etc  -name httpd.conf  #/etc目录下文件httpd.conf

    (3)find  /etc  -name  '*srm*' #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件

    (4)find . -name 'srm*'  #表示当前目录下查找文件名开头是字符串‘srm’的文件

     

    2.按照文件特征查找     

    (1)find  / -amin  -10   # 查找在系统中最后10分钟访问的文件(access time)

    (2)find / -atime -2   # 查找在系统中最后48小时访问的文件

    (3)find / -empty   # 查找在系统中为空的文件或者文件夹

    (4)find / -group cat   # 查找在系统中属于 groupcat的文件

    (5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)

    (6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件

    (7)find / -user fred   #查找在系统中属于fred这个用户的文件

    (8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KBM:MBG:GB)

    (9)find / -size -1000k   #查找出小于1000KB的文件

    (10) find /- type  f|d  查找当前目录下所有文件

    Grep指令(文件内容查找)

    grep [options] patternfilename

    下面所列的参数主要是一些常用的参数。

    option主要参数

    编号 参数 解释

    1 --version or -V grep的版本

    2 -A 数字N 找到所有的匹配行,并显示匹配行后N

    3 -B 数字N 找到所有的匹配行,并显示匹配行前面N

    4 -b 显示匹配到的字符在文件中的偏移地址

    5 -c 显示有多少行被匹配到

    6 --color 把匹配到的字符用颜色显示出来

    7 -e 可以使用多个正则表达式

    8 -f FILEA FILEB FILEAFILEAB中的匹配

    9 -i 不区分大小写针对单个字符

    10 -m 数字N 最多匹配N个后停止

    11 -n 打印行号

    12 -o 只打印出匹配到的字符

    13 -R 搜索子目录

    14 -v 显示不包括查找字符的所有行

     

    pattern主要参数

    编号 参数 解释

    1 ^ 匹配行首

    2 $ 匹配行尾

    3 [ ] or [ n - n ] 匹配[ ]内字符

    4 . 匹配任意的单字符

    5 * 紧跟一个单字符,表示匹配0个或者多个此字符

    6 用来屏蔽元字符的特殊含义

    7 ? 匹配前面的字符0次或者1

    8 + 匹配前面的字符1次或者多次

    9 X{m} 匹配字符X m

    10 X{m,} 匹配字符X 最少m

    11 X{m,n} 匹配字符X m---n

    12 666 标记匹配字符,如666 被标记为1,随后想使用666,直接以 1 代替即可

    13 | 表示或的关系

     

    (1) 创建一个文件内容为

    a

    bc

    def

    ght12

    abc999

    tydvl658

    123

    456

    789abc

     

    命令

    grep --version  显示grep的版本号

    grep -A 2 "a" test.txt   //匹配字符’a’ 后面两行

    grep -B 2 "a" test.txt    //匹配字符’a’ 前面两行

    grep -c "a" test.txt  //在整个txt中,共有三个字符’a’被匹配到

    grep --color “a” txt  //匹配到的内容使用颜色显示

    grep -e "a" -e "1" test.txt  //查找txt中字符 ‘a’  和 字符 ‘1

    grep -i "a" test1.txt //找出所有字符’a’ 并且不区分大小写

    grep -m 2 "a" test.txt   //匹配2个后停止

    grep -n -m 2 "a" test.txt //打印出匹配字符的行号   

    grep "a" * //只在当前目录查找字符’a

    grep -R "a" *   //在当前目录和子目录查找字符’a

    grep -v "a" test.txt 显示不包括查找字符的所有行

    grep -n '^a' test.txt //匹配以字符’a’开头的

    grep -n '33$' test.txt  //匹配以字符串”33”结束的

    文件压缩和解压(必须)

    打包和压缩文件: 

    tar -tf archive.tar 显示一个压缩包中的内容

    tar -zcvf  info.tar.gz  a.java bb.java 创建一个gzip格式的压缩包

    tar -zxvf  info.tar.gz -C  /root  解压一个gzip格式的压缩包 Linux用户和组的管理

    1)Linux系统是一个多用户多任务的操作系统,任何要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统中用户名  /home

    2)Linux的用户需要至少属于一个组。

    3)linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。

    4)linux中所创建的账号和其相关信息(密码除外)均放在 /etc/passwd 文件中,linux在安装好后会默认创建多个用户,但是这些用户为linux进程用户不能登录

    用户信息结构为:(使用指令  cat /ect/passwd 查看)

     

    5)为安全起见,用户真实的密码采用MD5加密算法加密后,保存在/etc/shadow配置文件中,该文件只有root用户可以读取。

      passwd文件类似,shadow文件也是每行定义和保存一个账户的相关信息。第一个字段为用户帐户名,第二个字段为账户的密码。

    6)用户组帐号信息保存在/etc/group置文件中,任何用户均可以读取。用户组的真实密码保存在/etc/gshadow配置文件中。

      group中,第一个字段代表用户组的名称,第二个字段为x,第三个为用户组的ID号,第四个为该用户组的用户成员列表,各用户名间用逗号分隔

    7) 用户指令操作

       Useradd  用户名  (使用当前的用户名添加一个组,并将创建的用户放入到这个组中)

       Passwd 用户名 为当前用户设置密码

       Userdel -r 用户名 删除该账户和所有目录结构

       Passwd -l 用户名 锁定账户密码

       Passwd -u 用户名 解锁账户密码

       Passwd -S 用户名  查看用户密码锁定状态

       Groups  查看用户属于哪个组

    8)用户组操作命令

       Groupadd 组名  创建用户组

       Groupdel  组名  删除用户组(有用户的组不能删除的,空组可以删除组信息)

    Useradd   -g 组名  用户名    创建用户并且制定用户所属的组  

    gpasswd  -a 用户账户  用户组名   将某个用户添加到该组

    gpasswd  -d 用户账户  用户组名   将某个用户移除该组

     

    9)切换用户和操作环境

    su - username #用户和操作环境都改变

    su username  #只切换用户不切换操作环境及环境变量不变。还可用于退出超级权限

    10)用户和组常用命令

    groups 查看当前登录用户的组内成员

    groups 用户名  查看当前用户所在的组

    whoami 查看当前登录用户名

    文件权限

    -   rw-   r--    r--    root  root     0 7月  20 01:03  a.java

    第一个字符代表文件(-)、目录(d),链接(l)

    其余字符每3个一组 r 读  w  写   x执行

    rw- 读  没有执行权利 (当前的文件拥有者)

    r--    没有写和执行的权利(和当前文件拥有者在同一个组的用户)

    r--  读  没有写 和执行的权利(其他用户的权利)

     

    第一组rwx:文件所有者的权限是读、写和执行

    第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

    第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

    也可用数字表示为:r=4,w=2,x=1  因此rwx=4+2+1=7

    - 1 表示连接的文件数

    - root 表示用户

    - root表示用户所在的组

    - 1213 表示文件大小(字节)

    - Feb 2 09:39 表示最后修改日期

    - abc 表示文件名

     

    改变权限的命令

    chmod 改变文件或目录的权限

    chmod 755 文件:赋予abc权限rwxr-xr-x

    chmod  u=rwx,g=rx,o=rx  文件名:同上u=用户权限,g=组权限,o=不同组其他用户权限

    chmod u-x,g+w  文件名: 给abc去除用户执行的权限,增加组写的权限

    chmod a+r  文件名:给所有用户添加读的权限

     

    改变所有者(chown)和用户组(chgrp)命令

    chown  用户名 文件名:改变abc的所有者为xiaoming

    chgrp 组  文件:改变abc所属的组为root

    chown 用户 目录:改变abc这个目录的所有者是root

    chown R  用户  目录:改变abc这个目录及其下面所有的文件和目录的所有者是root

    改变用户所在组

    在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组

    usermod g 组名 用户名

     

    关机、重启、注销

    关机:

    shutdown -h 0 #<==0秒后关机

    shutdown -h now #<==现在关机

    shutdown -h 10 #<==10分钟后关机

    shutdown -h 23:20 #<==2320分关机

    shutdown -c #<==取消shutdown关机命令

    init 0 #<==立马关机(切换运行级别为0,推荐使用)

    halt #<==立马关机

    poweroff #<==立马关机

     

    重启

    shutdown -r now #<==现在重启

    shutdown -r 23:20 & #<==2320分重启,加&符号代表把该命令转到后台处理

    reboot #<==立马重启(推荐使用

    init 6 #<==立马重启(切换运行级别为6,推荐使用)

     

    注销用户

    logout #<==立马注销

    exit #<==立马注销

     

    清屏指令

    Clear

    Ctrl+l

     

    注意:

    Sync:这个指令将数据从内存中同步到磁盘上(关机和重启之前使用)

    登录的时候少用管理员,可以使用普通用户登录后然后使用指令

    Su -root 指令切换到管理员

     

     

  • 相关阅读:
    poj2976 Dropping tests (01分数规划)
    bzoj5281/luogu4377 Talent Show (01分数规划+背包dp)
    bzoj5280/luogu4376 MilkingOrder (二分答案+拓扑序)
    bzoj1492/luogu4027 货币兑换 (斜率优化+cdq分治)
    [模板]树状数组
    匿名函数 python
    yield解析你要知道的源自IBM
    stackoverflow yield 帖子
    pandas 生成器,生成大数据
    pd.contact,dataframe 拼接
  • 原文地址:https://www.cnblogs.com/masterhxh/p/13885310.html
Copyright © 2011-2022 走看看