Linux基础02

Posted 王振龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础02相关的知识,希望对你有一定的参考价值。

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

** 用户名与主机名

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

 
技术分享图片
 

其中[[email protected]]方括号内的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软件连接该虚拟机了。

 
技术分享图片
 

** 总结

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


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

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



作者:Z尽际
链接:https://www.jianshu.com/p/b70e16e32c50
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。






以上是关于Linux基础02的主要内容,如果未能解决你的问题,请参考以下文章

逆向及Bof基础实践

20155307刘浩《网络对抗》逆向及Bof基础

20155311高梓云《网络对抗》逆向及Bof基础

20145301赵嘉鑫《网络对抗》逆向及Bof基础

[vscode]--HTML代码片段(基础版,reactvuejquery)

Linux bash基础特性二