Linux基础02
** Linux基本操作常用命令(二)
** 用户名与主机名
当你进入Linux终端时,你会看到如下样式的图片:
![](http://upload-images.jianshu.io/upload_images/4951489-5c999c832cd0d93a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/650)
其中[z@z01]方括号内的z表示当前系统登录操作的用户名,@后的z01表示当前主机名,每个人的情况不一样,默认的主机名是:localhost
那么下面我们首先来看一下在CentOS 7中如何修改主机名
* 查看/修改 主机名
查看:hostname,如图:
![](http://upload-images.jianshu.io/upload_images/4951489-ce8e7f886905dcb0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/272)
切换到root用户下:
临时修改方式:hostname + 名称,例如:hostname z01
持久修改方式:vi /etc/hostname,直接修改hostname配置文件,就类似于在记事本中修改,修改完毕保存退出即可。
临时修改会在系统重启后复原,持久修改不会因为系统重启而失效。持久修改需要重启一下系统,使用reboot命令。
** 用户和用户组
* 使用命令:cat /etc/passwd来查看当前用户及用户组,出现了如下内容:
![](http://upload-images.jianshu.io/upload_images/4951489-5494acdde69b0ba7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
这里我们以最后一行数据来作为例子解释,因为这一行代表了当前用户,即:
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命令,来查看当前目录下的子文件/子目录权限,如图:
![](http://upload-images.jianshu.io/upload_images/4951489-e91c5170f5b277e1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/540)
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:查看系统所有设备情况,如图:
![](http://upload-images.jianshu.io/upload_images/4951489-b1d36f1d57d8ace5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
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命令位置,如图:
![](http://upload-images.jianshu.io/upload_images/4951489-036065e321819f78.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
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、关闭虚拟机中需要克隆的系统,即:
![](http://upload-images.jianshu.io/upload_images/4951489-4a25ffd9a7f0244f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
2、依次点击标签栏:虚拟机--管理--克隆,出现如下对话框:
![](http://upload-images.jianshu.io/upload_images/4951489-5379af292c43396d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
3、下一步,选择“虚拟机中的当前状态”,即:
![](http://upload-images.jianshu.io/upload_images/4951489-127253a9bd78aa31.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
4、选择创建完整克隆,即:
![](http://upload-images.jianshu.io/upload_images/4951489-e5cf921dbc44f9ad.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
5、新建虚拟机名称,出来的默认界面是这样的:
![](http://upload-images.jianshu.io/upload_images/4951489-1980fc847f464a6e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
修改名称和位置,例如:
![](http://upload-images.jianshu.io/upload_images/4951489-fc10ff6f2746bcbc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
6、点击完成,就出现了如下界面,稍需等待,就克隆成功了:
![](http://upload-images.jianshu.io/upload_images/4951489-b8c7827d9d5e9a46.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
![](http://upload-images.jianshu.io/upload_images/4951489-627fbfb0b5619ba8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/659)
![](http://upload-images.jianshu.io/upload_images/4951489-3c939fa416be4aa0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/161)
7、克隆完成之后,启动该虚拟机,因为是克隆过来的,所以和第一台虚拟机一模一样,那么我们需要修改如下内容:
(尖叫提示:记得切换到root用户下操作)
* hostname主机名,修改方式:
vi /etc/hostname
* 修改网络配置
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736,如图:
![](http://upload-images.jianshu.io/upload_images/4951489-9f38590c00aa23b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
将红框内的IP地址从第一台虚拟机的192.168.122.200改为192.168.122.202,因为这是我克隆的第三台,可能是你克隆的第二台,你改为别重复的即可。建议按照一定顺序递增即可。修改完毕记得保存退出。
* 修改Linux主机映射
命令:vi /etc/hosts,修改为如图即可:
![](http://upload-images.jianshu.io/upload_images/4951489-a9ae56ddb1bea66a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
如果z01虚拟机没有设置过该选项,可以手动设置下。方法如上。
* 修改windows系统中的hosts主机名映射,即添加最后一条,如图:
(尖叫提示:hosts文件位置:C:\Windows\System32\drivers\etc)
![](http://upload-images.jianshu.io/upload_images/4951489-6d9aeaa4c06b54b7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
因为我直接克隆了2台出来,配置方式是一样的,学会之后自己克隆一台,再克隆一台即可。
* 重启虚拟机
在root用户下,使用reboot now命令重启虚拟机即可,重启完毕后,就可以使用SecureCRT软件连接该虚拟机了。
![](http://upload-images.jianshu.io/upload_images/4951489-d1eb6fd6491edc17.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
** 总结
操作命令你只需要操作一遍即可(操作一遍很有必要),因为后边开发过程可能会反复用到,脑海里留个印象,需要用到的时候反复查阅,自然会记住,理解也会更加通透。
个人微博:http://weibo.com/seal13
QQ大数据技术交流群(广告勿入):476966007
作者:Z尽际
链接:https://www.jianshu.com/p/b70e16e32c50
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Linux基础02的更多相关文章
- Linux基础 -02
3.4 虚拟机快照技术 什么是快照 3.5 虚拟机克隆技术 什么是克隆 4.Bash Shell快速入门 4.1 什么是Bash Shell bash shell是一个命令解释器,主要负责用户程序与内 ...
- 《前端运维》一、Linux基础--02用户与权限
其实说真的,这些基础挺枯燥的,内容呢绝大多数都是些静态的. 上一篇文章我们学习了基本的指令和vim编辑器的操作方法.这篇文章我们主要来学习下Linux中用户的概念和权限相关的知识. 一.用户与用户组 ...
- Linux基础(02)MakeFile的创建和使用
makefile是生成文件的脚本 , 把当前文件下的.c文件生成.o文件和可执行程序 SRC = $(wildcard *.c) OBJS = $(patsubst %.c,%.o,$(SRC)) C ...
- Linux基础命令-02
Linux基础命令-02:
- 还是不想改报告,伊阿忆啊哟-Linux基础继续
hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...
- 运维之Linux基础(二)
运维之Linux基础(二) 1. file 命令基期用法 2. 文件系统 Linux的文件系统结构是树状结构,所有的文件都在/root跟目录下 /boot:系统启动相关的文件, 如:内核.initrd ...
- 大数据学习之Linux基础01
大数据学习之Linux基础 01:Linux简介 linux是一种自由和开放源代码的类UNIX操作系统.该操作系统的内核由林纳斯·托瓦兹 在1991年10月5日首次发布.,在加上用户空间的应用程序之后 ...
- Linux基础知识第八讲,系统相关操作命令
目录 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 2.磁盘信息查看. 3.系统进程 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 时间和日期 date cal 磁盘和目录空间 ...
- Linux基础知识第七讲,用户权限以及用户操作命令
目录 Linux基础知识第七讲,用户权限以及用户操作命令 一丶简介linux用户,用户权限,组的概念. 1.1 基本概念 1.2 组 1.3 ls命令查看权限. 二丶用户权限修改命令 1.chmod ...
随机推荐
- ubuntu软件卸载方法
一.查看软件包 1.查看已安装的软件包 dpkg --list 2.查看不知道要删除软件的具体名称 dpkg --get-selections | grep <软件相关名称> 二.卸载 1 ...
- border-spacing和borer-collapse以及empty-cells属性
1.border-spacing 用于设置表格中,单元格之间的间隙 示例1:border-spacing: 7px: 单元格水平方向7px间隔,垂直方向7px间隔 示例2:border-spacing ...
- update没带where,寻找问题的思路
数据库版本:5.6.16 前几天,在测试环境中,不知道为什么突然之间,所有的一个字段值全部变成了12,需要将备份还原后开发重新清理垃圾数据并开始测试. 在开发提供 SQL语句的情况下,能否查到是谁做了 ...
- 杭电 2639 Bone Collector II【01背包第k优解】
解题思路:对于01背包的状态转移方程式f[v]=max(f[v],f[v-c[i]+w[i]]);其实01背包记录了每一个装法的背包值,但是在01背包中我们通常求的是最优解, 即为取的是f[v],f[ ...
- EFCore笔记之查询数据
查询数据 基础查询,Linq100实例: https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b using (var context = ...
- javscript中变量的作用域和提升
示例: var a = 1; function foo() { if (!a) { var a = 10; } alert(a); }; foo(); 上面这段代码在运行时会产生 ...
- Java Mail解决标题乱码问题
在Java实现发送邮件功能时,直接使用 message.setSubject(subject) 的方式设置标题,在本地测试发送邮件的中文标题可以正常显示,但是将项目部署到服务器后,发送邮件的中文标题就 ...
- 问题请教:关于同一个POD中多容器的广播信息问题
广大博友好,最近在K8S集群中遇到一个问题,贴出来同大家分享一下 同一个POD中多个容器 如何处理广播信息? 经测试 同一个POD中当先启动的容器占用广播端口后,其他的容器启动就会报bind erro ...
- 路飞学城Python-Day23(practise)
本章总结 练习题 什么是C/S架构? 互联网协议是什么?分别介绍五层协议中每一层的功能? 基于tcp协议通信,为何建立链接需要三次握手,而断开链接却需要四次挥手 为何基于tcp协议的通信比基于udp协 ...
- css——应用多个样式
应用多个样式 在class中使用多个样式 在这是会有优先级关系问题 在上面的代码中,aa,bb,中的颜色会有冲突,到底显示的结果会是黄色还是绿色呢? 结果是绿色的.它是以程序执行的先后为优先级,后执行 ...