Linux 简述与基础命令


Linux

1. Linux 简介

  • Bell 实验室 Ken Thompson 创造了 C 语言,并根据 Multics 项目开发出 Unix。Linux 是基于 Unix 的开源免费的多用户操作系统,由 Linus Torvalds 开发和维护其核心代码。
  1. 内核版本:在 Linus Torvalds 领导下的内核小组开发维护的系统内核的版本号,主要处理与 CPU 和内存的交互。
  2. 发行版本:一些个人/组织/公司在内核版基础上进行二次开发而重新发行的版本号。主流的发行版本如下:

在这里插入图片描述

  • CentOS 是对 redhat 的完整复制,前者免费但是不提供技术支持。

2. VMware 虚拟机

a. 安装虚拟机

  • 安装成功后,会多出二个网卡:VMNet1 和 VMNet8。
    在这里插入图片描述

b. 备份与还原

在这里插入图片描述
在这里插入图片描述

c. 基础操作

ctrl + alt					跳出虚拟机
alt + 回车					跳过自动检查映射文件
ifconfig					获取 IP地址
CMD: ping IP地址			测试链接虚拟机

3. SecureCRT 远程链接工具

  • 连接 Linux 的 Windows 客户端工具有很多,企业中常用的有 secureCRT、Putty、xshell、SSH Secure 等。

a. 基础操作

左击选中,右击粘贴
ctrl + l 或 clear			清屏
ctrl+c						强行终止程序执行

b. pwd 查询所在路径

/root 或 /					表示根目录
~							表示当前用户目录
l							开头是 link,即快捷方式
d							开头是文件

4. Linux 目录结构

在这里插入图片描述

  • root 目录:超级管理员所在的目录,用 ~ 表示
  • home 目录:普通用户所在的目录
  • usr 目录:安装用户文件所在的目录
  • etc 目录:Linux 系统管理和配置文件所在的目录

5. 文件夹(目录)操作命令

a. ls 文件结构

ll -a
-l							以详细形式查询当前目录下所有文件和目录,不包括隐藏文件和目录
-a							以精简形式查询当前目录下所有文件和目录,包括隐藏文件和目录
ls 							以精简形式查询当前目录下的内容
ls -l 或 ll					以详细形式查询当前目录下的内容,d表示目录,-表示文件;此命令可以简写为ll
ls -a						以精简形式查询当前目录下的隐藏内容
ls -la 或 ll -a				以详细形式查询当前目录下的隐藏内容,la和al都可

b. cd 跳转

/							跳转到根目录路径
cd							绝对路径或相对路径
cd ~ 或 cd					当前用户目录
cd /						根目录
cd -						上一次访问的目录
cd ..						上一级目录

c. mkdir 创建

mkdir -p
--help						获取帮助
-p 文件夹名称				一次性创建多级目录,如果目录存在不会覆盖
mkdir aaa					在当前目录下创建aaa目录,相对路径
mkdir ./bbb					在当前目录下创建bbb目录,相对路径
mkdir /ccc					在根目录下创建ccc目录,绝对路径
mkdir /ddd/eee				在根目录下创建ddd目录和eee子目录

d. find 搜索

find 指定路径 -name '关键字'
find / -name  'b'			查询根目录下(包括子目录),名为 b 的目录和文件
find / -name  'b*'			查询根目录下(包括子目录),名以 b 开头的目录和文件
find / -name  '*.cfg'		查询根目录下(包括子目录),扩展名是 cfg 的目录和文件

e. mv 修改

mv 原目录 新目录				修改(伪改名)
mv aaa aaaa					将当前目录下的aaa目录修改为aaaa
mv ./aa ./aaa				同上,./代表相对路径,可以省略

f. mv 剪切

mv 原目录位置 新目录的位置	剪切(支持改名)
mv ./aaa /aa				将当前目录下的aaa目录,移动到根目录下,且修改名为aa(在根目录时/可以省略)
mv  aaa usr					将当前目录下的aaa目录,移动到已存在的目录usr目录下,在/usr目录下名字为aaa
mv  aaa usr/aa				将当前目录下的aaa目录,移动到已存在的目录usr目录下,且修改名为aa

g. cp 复制

cp -r 目录					目录的新位置 复制(支持改名)
-r							递归复制,将指定目录下的文件与子目录一并处理
cp -r /aaa /usr				将/目录下的aaa目录复制到已存在的目录usr目录下,在/usr目录下名字为aaa
cp -r /aaa /usr/aaaa		将/目录下的aaa目录复制到已存在的目录usr目录下,且修改名为aaaa

h. rmdir 删除

  • 只能删除空文件夹,也就是说只能逐个删除,所以很少用 rmdir。
-p							删除目录及其父目录 
rmdir bbb/ccc				删除bbb目录下ccc目录
rmdir -p bbb/ccc			删除bbb目录和ccc子目录

6. 文件操作命令

a. touch 创建

touch  a.java				在当前目录中创建a.java文件
touch  b.txt				在当前目录中创建b.txt文件
touch  c.xml				在当前目录中创建c.xml文件

b. cat more less head tail 查看

cat a.java					查看a.java文件的最后一页内容
more a.java					从第一页开始,按回车键换行,按空格健翻页,q退出
less a.java					从第一页开始,按回车键换行,按空格健翻页,支持使用PgUp和PgDn翻页,q退出
head a.java					查看a.java文件的前10行内容
tail a.java					查看a.java文件的后10行内容
head -n 7 a.java			查看a.java文件的前7行内容
tail -n 7 a.java			查看a.java文件的后7行内容

技巧
	输文件名称时,按tab会自动补全
	如果查看页面数据:cat
	如果查看多页数据:less
		回车:下一行
		空格:下一页
		PGUP:上一页
		PGDN:下一页
		q退出
	查看头部几行:head 
	查看尾部几行:tail

c. rm 删除

rm -rf						目录或文件
-r							递归处理,将指定目录下的所有文件及子目录一并处理,它会询问你,y表示是删除,n表示不删除
-f							强制删除,它不会再询问你
rm -rf a.java				强行式删除当前目录下的a.java文件
rm -rf ./a*					强行式删除当前目录下以a开头的所有文件
rm -rf /					删库,慎重使用

d. Vi Vim 编辑

  • Linux 下的 Vi 是一种文字编辑器,后来的升级版本是 Vim,一般使用 Vim。 Vi 分为三种模式:命令行、插入、底行模式。
简单使用
	vim a.java
	i 切换到插入模式
	esc 切换到命令行模式
	:wq! 保存并退出 | :q! 直接退出


切换到插入模式
	i 在当前位置前插入
	I 在当前行首插入
	a 在当前位置后插入
	A 在当前行尾插入
	o 在当前行之后插入一行
	O 在当前行之前插入一行

切换到命令行模式
	按Esc键
	yy	复制当前行
	p	粘贴
	dd	删除当前行
	G	到文件的最后一行
	gg	到文件的第一行  
        
切换到底行模式
	按 :(冒号)
	:wq	保存退出
	:q	退出vi(文件无修改的情况下)
	:q!	不保存强制退出.

非正常退出,无法编辑
	rm -rf 隐藏临时文件夹(如.a.java.swp)

7. 文件压缩命令

  • Windows 打包和压缩是一起的,而 Linux 打包和压缩是分开的。
Windows 的压缩文件的扩展名:.zip或.rar
Linux 中的打包文件扩展名:.tar
Linux 中的压缩文件扩展名:.gz
Linux 中打包压缩的文件扩展名:.tar.gz

a. tar -zcvf 将文件打成压缩包

语法
	tar -zcvf 打包压缩后的文件名 要打包的文件			打包并压缩
	
	tar -cvf  ***.tar a.java b.java c.xml d.txt		打包
	tar -zcvf ***.tar.gz a.java b.java c.xml d.txt	打包并压缩
	tar -zcvf haha.tar.gz ./*						将当前目录下的所有文件打包压缩成haha.tar.gz文件
		
参数解释
	-z 调用gzip压缩命令进行压缩
	-c 打包文件
	-v 显示运行过程
	-f 指定文件名

支持通配符*的使用
	tar -cvf  ***.tar *.java *.java *.xml *.txt		打包当前目录下指定类型的所有文件
	rm -rf ./*.java									强制式删除当前目录下所有扩展名为java的文件

b. tar -zxvf 解压缩包获得文件

语法
	tar -zxvf 压缩文件						解压后的文件放在当前目录中
	tar -zxvf 压缩文件 –C指定目录			解压后的文件放入指定目录中,注意-C是大写字母C,后面不用接空格符
	tar  -xvf  haha.tar.gz -C/usr/local		解压haha.tar.gz这个压缩文件,里面的文件释放到/usr/local目录下
	tar  -xvf  haha.tar.gz					解压haha.tar.gz这个压缩文件,里面的文件释放到当前目录下
			
参数解释
	-z 自动识别压缩或解压
	-x 取出文件中的内容
	-v 输出文件清单
	-f 文件名由命令台设置

8. 文件权限命令

  • Linux 中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限。
    在这里插入图片描述
语法
	chmod	[参数]	[<权限范围><符号><权限代号>]
	chmod -R 777 
		
参数解释
	-R 递归处理,将指定目录下的所有文件及子目录一并处理
		
权限范围
	u:User,即文件或目录的拥有者。 
	g:Group,即文件或目录的所属群组。 
	o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。 
	a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
        
符号解释
	+ 添加权限
	- 取消权限
	= 重置权限
			
权限代号
	r:读取权限,数字代号为"4"
	w:写入权限,数字代号为"2"
	x:执行或切换权限,数字代号为"1"
	-:不具任何权限,数字代号为"0"
    		
命令
	chmod u+x 1.txt			给1.txt的拥有者添加执行权限,这种写法稍微有点麻烦,开发中一般使用数字代号
	chmod 755 1.txt			给1.txt的拥有者设置读写执行权限,给所属组添加读和执行权限,给其他用户添加读和执行权限
	chmod -R 777 a.txt		给所有人添加对此文件操作的所有权限

9. 其他命令

a. pwd 显示工作目录

语法
	pwd

b. ps -ef 查看进程

语法
	ps -au		显示客户端打开的程序进程
	ps -ef		当前用户打开的程序进程
		
参数解释
	-a 显示所有用户通过终端启动的所有进程
	-A 显示所有进程
	-u 显示所有用户通过终端启动的所有进程详细信息
	-x 显示所有用户通过终端和非终端启动的所有进程详细信息
	-e 此参数的效果和指定"A"参数相同,显示所有程序
	-f 显示UID,PPID,C与STIME栏位
  • 主要是为了看 PID(Processing IDentification)或 PPID(Parent PID)

c. kill pid 杀死进程

  • 中括号 [ ] 包括的无法被删除
语法
	kill 进程号			温柔杀,正常退出
	kill -9 进程号		暴力杀,直接退出

d. grep 文本搜索

语法
	grep [参数] 搜索字符串 文件名

参数解释
	默认 大小写敏感
	-i   	搜索时不区分大小写
	-n   	显示匹配行及行号
	-v   	显示不匹配行(reverse)
	-vn		显示不匹配行及行号
		
命令
	grep as 123.txt				在123.txt文件中搜索as字符串,大小写敏感,显示行		
	grep -n as 123.txt			在123.txt文件中搜索as字符串,大小写敏感,显示行及行号
	grep -v as 123.txt			在123.txt文件中搜索as字符串,大小写敏感,显示没搜索到行
	grep -i as 123.txt			在123.txt文件中搜索as字符串,大小写不敏感,显示行
	grep -ni "Q q" 123.txt	    在123.txt文件中搜索Q q字符串,大小写不敏感,显示行及行号

e. | 管道

语法
	xx | xx						一个命令的输出用作另一个命令的输入
		
命令
	ls --help | more			分页查询帮助信息
	ps -au | grep system 		在ps -au的结果中,搜索字符串system

f. poweroff 关机

语法
	poweroff					需要手动开启虚拟机和登录,并重新连接

g. reboot 重启

语法
	reboot						可以正常连接,刷新连接即可,不需要远程登录

10. Linux 网络

a. 网络(卡)服务

  • 查看当前网络的状态,并启动和停止网络服务。
查看ip
	ifconfig :CentOS6版本
	ip addr  :CentOS7版本
		
修改网卡ip
	vim /etc/sysconfig/network-scripts/ifcfg-ens33
		
概要信息如下		
	DEVICE=ens33                  	#网卡名称
	TYPE=Ethernet               	#网卡类型 以太网
	ONBOOT=yes                  	#是否开机就使用此网卡   在我们安装的时候都已经配置好
	BOOTPROTO=dhcp    				#启动网卡时指定获取IP地址的方式
		常用取值:dhcp               (自动获取ip地址,网关,子网掩码等信息无需设置) 
		常用取值:static             (静态ip,如需要访问网络,需要自己设置ip地址等信息) 
		其他取值:none               (不指定)
            
	IPADDR=192.168.200.133    		#ip地址
	GATEWAY=192.168.200.2     		#网关
	NETMASK=255.255.255.0     		#子网掩码
	DNS1=8.8.8.8			  		# Google提供的公用DNS       

重启网卡服务
	systemctl status network		查看指定服务的状态
	systemctl stop network			停止指定服务
	systemctl start network			启动指定服务
	systemctl restart network		重启指定服务

在这里插入图片描述
在这里插入图片描述

b. 防火墙服务

  • 防火墙类似于一个安全卫士管家,它能对你访问它人电脑,它人访问你的电脑,进行拦截并处理,有的阻止,有的放行,有的转发。
    在这里插入图片描述

① 防火墙设置

开启防火墙
	systemctl start firewalld
		
重启防火墙
	systemctl restart firewalld
		
关闭防火墙
	systemctl stop firewalld
		
设置开机启动
	systemctl enable firewalld
		
停止并关闭开机启动
	systemctl disable firewalld
		
查看防火墙状态
	systemctl status firewalld 或者 firewall-cmd --state
		
查看防火墙开机时是否启动
	systemctl list-unit-files | grep firewalld		类似于Windows的services.msc

② 端口设置

添加
	firewall-cmd --zone=public --add-port=80/tcp --permanent
		
更新防火墙规则
	firewall-cmd --reload
		
查看
	firewall-cmd --zone=public --query-port=80/tcp	指定端口防火墙状态
	firewall-cmd --zone=public --list-ports			全部端口防火墙状态
		
删除
	firewall-cmd --zone=public --remove-port=80/tcp --permanent
				
常用端口
	8080	tomcat
	80		http协议
	443		https协议
	22		ssh远程连接
	3306	mysql
	6379	redis

原文链接:https://qwert.blog.csdn.net/article/details/106394980

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章