** 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:\Windows\System32\drivers\etc)
因为我直接克隆了2台出来,配置方式是一样的,学会之后自己克隆一台,再克隆一台即可。
* 重启虚拟机
在root用户下,使用reboot now命令重启虚拟机即可,重启完毕后,就可以使用SecureCRT软件连接该虚拟机了。
** 总结
操作命令你只需要操作一遍即可(操作一遍很有必要),因为后边开发过程可能会反复用到,脑海里留个印象,需要用到的时候反复查阅,自然会记住,理解也会更加通透。
IT全栈公众号:
QQ大数据技术交流群(广告勿入):476966007