zoukankan      html  css  js  c++  java
  • Linux基础02

    ** Linux基本操作常用命令(二)

    ** 用户名与主机名

    当你进入Linux终端时,你会看到如下样式的图片:

     
     

    其中[z@z01]方括号内的z表示当前系统登录操作的用户名,@后的z01表示当前主机名,每个人的情况不一样,默认的主机名是:localhost

    那么下面我们首先来看一下在CentOS 7中如何修改主机名

    * 查看/修改 主机名

    查看:hostname,如图:

     
     

    切换到root用户下:

    临时修改方式:hostname + 名称,例如:hostname z01

    持久修改方式:vi /etc/hostname,直接修改hostname配置文件,就类似于在记事本中修改,修改完毕保存退出即可。

    临时修改会在系统重启后复原,持久修改不会因为系统重启而失效。持久修改需要重启一下系统,使用reboot命令。

    ** 用户和用户组

    * 使用命令:cat /etc/passwd来查看当前用户及用户组,出现了如下内容:

     
     

    这里我们以最后一行数据来作为例子解释,因为这一行代表了当前用户,即:

    z:x:1000:1000:z:/home/z:/bin/bash

    解释:

    (1):用户名。

    (2):密码(已经加密)

    (3):UID(用户标识),操作系统自己用的

    (4):GID组标识。

    (5):用户全名或本地帐号

    (6):开始目录

    (7):登录使用的Shell,就是对登录命令进行解析的工具。

    ** 用户操作

    创建用户:useradd username

    删除用户:userdel -r username(-r表示连带用户目录一起彻底删除)

    创建用户组:groupadd groupname

    删除用户组:groupdel groupname

    修改用户密码:passwd username

    回显输入内容:echo

    例如:
    echo '123456' | passwd --stdin username

    该指令意思为:修改密码为123456,并显示该密码

    切换用户:su username或su - username

    (加“-”,表示切换用户时,连同环境变量,工作目录一同切换,不加“-”反之)

    ** 目录/文件权限

    文件或目录的权限是个什么东西,请大家自行百度。再此不废话,直接展示如何操作权限。

    首先,使用ls -l命令,来查看当前目录下的子文件/子目录权限,如图:

     
     

    1、结构以及字母含义

    drwxr-xr-x

    该系列字母,可以拆分为:

    d

    rwx

    r-x

    r-x

    四个部分,下面依次解释

    2、字母表示(r的意思为可读,w为可写,x为可执行,-为非的意思,即如果字母换成了-,就是)

    第一段:d:代表data目录,一个占位符

    第二段:rwx:表示所有者(user,u)

    第三段:r-x:表示所属组(group,g)

    第四段:r-x:表示其他人(other,o)

    r:读,比如命令,cat,haed,more,tail

    w:写,比如命令,mkdir,touch,vi,vim,rm,cp,mv等等

    x:执行,比如命令,cd

    3、数字表示,相加运算

    比如:d755

    r:用数字4表示

    w:用数字2表示

    x:用数字1表示

    4、修改权限

    chmod,例如:

    添加:

    chmod u+x program

    chomd 777 program

    chmod g+x,o+x program

    解释:u+x意思为,所有者,添加新的“可执行(x)”权限,以下以此类推。

    批量操作:

    chomd u+rwx,g+rwx,o+rwx zz1.txt zz2.txt

    解释:修改zz1.txt和zz2.txt文件的权限为这个:u+rwx,g+rwx,o+rwx

    5、修改文件/目录所有者

    尖叫提示:修改所有者,尽量在root权限下操作。

    修改所有者:

    chown root /home/xxx/abc,解释:即修改abc所有者为root

    修改所属组:

    chgrp root /home/xxx/abc,解释:即修改abc所属组为root

    同事修改所有者及所属组:

    chown root:root /home/xxx/abc,解释:即修改abc所有者及所属组为root

    ** 关机重启命令

    1、关机:init 0, shutdown 先结束其他进程,再关机

    2、重启:init 6, reboot 先执行其他程序的shell关闭脚本,再重启

    ** 管道符、追加/覆盖符

    1、管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

    例如:

    cat /etc/passwd | more

    2、过滤,“grep”,表示过滤筛选

    例如:

    cat /etc/passwd/ | grep 'root' 

    解释:查看所有带有root关键字的行

    再例如:

    ifconfig | grep '192.168'

    解释:查看所有带有192.168关键字的内容

    (尖叫提示:并不是所有的命令都可以放在管道符后边)

    3、追加/覆盖

    追加:>>,把前面命令输出的结果追加到后面某个文件中

    覆盖:>,把前面命令输出的结果覆盖到后边某个文件中

    例如:

    cat /etc/passwd >> zz.txt

    4、统计命令

    统计命令:wc,统计单词,字符,行数等,支持管道符

    例如:

    ifconfig | wc -l

    解释:查看有多少行

    显示进程:ps,显示当前系统运行的进程,类似于任务管理器

    例如:

    ps -ef | wc -l

    解释:查看当前有多少个进程

    ** 搜索命令

    搜索命令:find,会大量消耗系统资源。直接举例阐述该命令:

    文件名查找:

    全盘查找:find / -name vm

    模糊查询带有关键字的文件名:find /etc/ -name *vm*

    查找关键字开头的:find /etc/ -name init*

    *号:通配符,匹配任意的字符串

    ?号:匹配单个字符,例如:find /etc/ -name init???

    (尖叫提示:如果不想区分大小写,按照文件名进行查找,使用-iname)

    ---------------------------------------毫无用处的分割线---------------------------------------------

    文件大小查找:

    size:根据文件大小搜索(在linux中一个数据块大小为512byte)

    指定方式:+,-,没有符号表示等于

    例如:

    100M文件的查找:

    find / -size +数据块数量(即100M除以512byte,记得换算单位,即:100 * 1024 * 1024 / 512)

    所有者/所属组查找

    例如:

    find /root/ -user root

    find /root/ -group root

    文件类型查找

    find /etc/ -name init* -type f:查找文件

    find /etc/ -name init* -type d:查找目录

    ** 磁盘管理(切换到root用户下操作)

    1、fdisk -l:查看系统所有设备情况,如图:

     
     

    2、sda代表系统中的第一块硬盘

    3、sda1,sda2表示硬盘中 第一个,第二个分区

    4、硬盘接口:SATA,SAS,IDE,SCSI等

    (尖叫提示:HDA是使用了IDE接口的硬盘名称,SDA是sata的硬盘接口名称,在2.6.19内核中,所有硬盘都叫SDA了)

    (尖叫提示:IDE,即integrated drive electronics,把盘体和控制器集成在一起)

    (尖叫提示:SATA,即serial ATA,即,serial advanced technology attachment)

    具体含义区别以及解释请自行百度,不是此章重点

    5、cylinders:磁柱,简单理解:磁柱是硬盘分区的依据。可以分割成大小不等的许多柱面,而这些柱面的起始之间就是一个一个的分区,在linux里是sdb1,sdb2 .....等;在windows里是C盘,D盘等。

    6、设置分区:fdisk /dev/sdb 设置第二块硬盘

    7、添加一个新的分区:

    例如:

    n add a new partition

    8、主分区和扩展分区

    一般而言,主分区个数 + 拓展分区个数 <= 4

    企业用法一般:3主分区 + 1扩 或 2主 + 1扩

    (尖叫提示:扩展分区不能直接拿来使用,需要对扩展分区进行逻辑分区,而主分区格式化后可以直接使用)

    9、格式化分区

    文件系统:ext1,2,3,4

    用法:mkfs.ext4 /dev/sdb5

    10、挂载(临时挂载)

    用法:mount /dev/sdb5/ /mnt(即挂载点,访问磁盘的唯一入口,挂载点必须存在)

    查看是否挂载:df -h

    11、挂载(永久挂载)

    用法:

    vi /etc/fstab

    添加:

    /dev/sdb5             /mnt               ext4          defaults         0  0

    ** man帮助命令

    1、查看命令的帮助信息

    2、查看配置文件的帮助信息

    例如:

    man ls,即教你怎么使用ls命令

    ** sudo权限

    1、操作的对象是系统命令

    2、切换到root用户下,使用命令:visudo

    3、root                 ALL=(ALL)                    ALL

    解释:

    root:用户

    ALL=(ALL):被管理主机地址(使用的身份)

    ALL:授权的命令

    4、whereis shutdown,查看shutdown命令位置,如图:

     
     

    5、配置shutdown的sudo权限

    z              ALL=/usr/sbin/shutdown -r now

    配置完成后,就可以在普通用户下这样使用了:

    sudo shutdown -r now

    6、配置所有命令的sudo权限

    z             ALL=(ALL)               NOPASSWD:ALL

    (尖叫提示:NOPASSWD:ALL即:不用密码)

    ** 解压命令

    压缩格式:.gz

    压缩:gzip只能压缩文件,不能压缩目录

    解压:gunzip

    (尖叫提示:解压后不保留源文件)

    压缩格式:.tar

    压缩:可以压缩文件或目录

    参数:

    -c:建立一个压缩文件(create)

    -x:解开一个压缩文件

    -t:查看tarfile里面的文件

    -f:使用档名,在f之后要立即接档名,不可再加参数

    例如:

    tar -cvf zzzz.tar Desktop/

    gzip zzzz.tar

    解释:压缩Desktop目录为zzzz.tar文件,再使用gzip压缩zzzz.tar为zzzz.tar.gz文件

    解压:tar

    例如:

    tar -zxf zzzz.tar.gz -C Desktop/

    解释:解压zzzz.tar.gz文件到Desktop目录

    ** Linux下配置JDK环境变量

    1、Linux的JDK下载:

    链接:http://pan.baidu.com/s/1jIQGem6 密码:enyj

    2、在/opt/目录下创建两个目录

    modules和software

    3、使用FileZilla Client这个软件上传JDK压缩包至/opt/software/目录

    4、解压:tar -zxf jdk-8u121-linux-x64.gz -C /opt/modules/,即解压到/opt/modules/目录

    5、修改配置文件:vi /etc/profile

    在末尾加上:

    ##JAVA_HOME

    JAVA_HOME=/opt/modules/jdk1.8.0_121

    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    export PATH=$PATH:$JAVA_HOME/bin

    6、使配置文件生效:source /etc/profile

    7、查看是否配置成功:

    java -version 以及 javac

    (尖叫提示:由于CentOS 7中有自带的openJDK,以此时的java -version显示的并不是你配置的版本,所以此时,我们讲解一下如何卸载系统自带的OpenJDk)

    ** 卸载OPEN JDK

    1、查看自带的open jdk的安装位置

    rpm -qa | grep 'java'

    2、依次删除带有java关键字的安装包,即:

    rpm -e --nodeps java-xxx.xxx.xxx.xxx

    (尖叫提示:--nodeps意为强制操作)

    ** 克隆虚拟机

    1、关闭虚拟机中需要克隆的系统,即:

     
     

    2、依次点击标签栏:虚拟机--管理--克隆,出现如下对话框:

     
     

    3、下一步,选择“虚拟机中的当前状态”,即:

     
     

    4、选择创建完整克隆,即:

     
     

    5、新建虚拟机名称,出来的默认界面是这样的:

     
     

    修改名称和位置,例如:

     
     

    6、点击完成,就出现了如下界面,稍需等待,就克隆成功了:

     
     
     
     
     
     

    7、克隆完成之后,启动该虚拟机,因为是克隆过来的,所以和第一台虚拟机一模一样,那么我们需要修改如下内容:

    (尖叫提示:记得切换到root用户下操作)

    * hostname主机名,修改方式:

    vi /etc/hostname

    * 修改网络配置

    vi /etc/sysconfig/network-scripts/ifcfg-eno16777736,如图:

     
     

    将红框内的IP地址从第一台虚拟机的192.168.122.200改为192.168.122.202,因为这是我克隆的第三台,可能是你克隆的第二台,你改为别重复的即可。建议按照一定顺序递增即可。修改完毕记得保存退出。

    * 修改Linux主机映射

    命令:vi /etc/hosts,修改为如图即可:

     
     

    如果z01虚拟机没有设置过该选项,可以手动设置下。方法如上。

    * 修改windows系统中的hosts主机名映射,即添加最后一条,如图:

    (尖叫提示:hosts文件位置:C:WindowsSystem32driversetc)

     
     

    因为我直接克隆了2台出来,配置方式是一样的,学会之后自己克隆一台,再克隆一台即可。

    * 重启虚拟机

    在root用户下,使用reboot now命令重启虚拟机即可,重启完毕后,就可以使用SecureCRT软件连接该虚拟机了。

     
     

    ** 总结

    操作命令你只需要操作一遍即可(操作一遍很有必要),因为后边开发过程可能会反复用到,脑海里留个印象,需要用到的时候反复查阅,自然会记住,理解也会更加通透。


    个人微博:http://weibo.com/seal13

    QQ大数据技术交流群(广告勿入):476966007



    作者:Z尽际
    链接:https://www.jianshu.com/p/b70e16e32c50
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    什么叫大数据,与云计算有何关系
    未来机器时代 马云担心的居然是男性找不到工作
    浏览器原生登陆验证实现
    eclipse-java-style.xml
    tomcat和应用集成
    简单springboot及springboot cloud环境搭建
    maven module
    maven scope
    java ReentrantLock Condition
    抓取动态网页
  • 原文地址:https://www.cnblogs.com/wzlbigdata/p/8277616.html
Copyright © 2011-2022 走看看