linux笔记

linux(ubuntu16.04)

1、准备工作
1) linux操作系统安装方式
1. 双系统 ubuntu / windows
2. 虚拟机
3. 云服务器(阿里云/腾讯云)
服务器
阿里云/腾讯云
客户端 – 用来连接服务器
1、终端工具
xshell
putty
2、ssh
ssh user@ip
ip 47.93.255.92
user root
password 重置密码

2) linux特点
	1. 性能强劲,运行稳定,一般作为服务器(可长时间不关机,windows不行)
	2. 整个操作系统可以被压缩成很小的一个文件,容易植入一些硬件设备中
		飞行器、冰箱
	3. 开源免费(linux源代码在github上免费提供)
        版本控制工具
            git 	github
            svn     svn服务器
	4. 对于初学者容易建立编程思维,是学习编程语言最好的环境
		linux
		c			vc
		java		eclipse/myeclipse
		c++ 		vc
		php			eclipse
		web 		dw/ws

		hello.html 	-> 浏览器
		hello.c -编译-> 	hello.o -> 运行
	5. 文件系统
		没有盘符的概念,所有的文件都处于根目录下,目录也是一种特殊的文件

2、环境搭建
服务器
阿里云服务器
终端工具
xshell

3、使用
登录方式:
win10 ssh / xshell
mac ssh

	$ ssh root@ip
登录成功:
	root@VM-0-9-ubuntu:~$
		root 				当前账号
		@					分隔符号
		VM-0-9-ubuntu		主机名称
		:					分割符号
		~ 					当前所在目录	 
		$ 					分割符号

	windows
		c:/users/znn
	linux
		/home/znn

4、linux目录结构
小区某栋楼 /
该楼的住户 ~

/	根目录【cd /】
	/bin	常用命令
	/home 	普通用户家目录
		zhangsan
		lisi
			默认情况下,普通用户只能在用户家目录中进行更新操作(增加、删除、修改)
	/opt 	第三方文件解压安装目录
	/var 	下面有www/html部署目录,还能存放各种服务的日志
	/root 	超级管理员的家目录
	/etc 	系统管理和配置文件
	...	

~	家目录【cd】

5、用户管理(超级管理员身份)
使用root登录到ubuntu系统中
用户名:root
密码:阿里云控制台中重置密码

1) 创建新用户
	$ adduser 用户名称
	过程:
		1. 新建组,组名与用户名保持一致
			/etc/group		保存了组信息
		2. 新建用户,并且将用户放到刚刚新建的组中
			/etc/passwd 	保存了用户信息
			/etc/shadow  	保存了用户的密码信息	
		3. 创建了一个家目录 /home/xxx
		4. /etc/skel拷贝到用户家目录		
2) 删除用户
	$ userdel -r zhangsan
	删除用户信息、密码、家目录
	
	创建完用户后,如果从root切换到当前新建的用户下,进行了一些操作后,再回到root用户下,想要删除新建的用户时,报错当前用户被进程xxx所占用
	解决:
		ctr + d 退出root用户,回到新建的用户
		ctr + d 退出新建的用户,回到root用户
		再执行userdel -r 用户名即可删除
	参考:
		https://blog.csdn.net/qq_27610647/article/details/100055786

	信息:userdel: user 'znn1' does not exist
	命令:rm -rf /home/znn1
	原因:因为你仅删除了用户,可以带参数运行连目录一起删除
		userdel znn1	删除用户,不删除用户主目录
		userdel -r znn1	-r表示连用户主目录一起删除
		若删除用户后主目录还在,可手动删除	rm -rf /home/znn1

3) 修改用户
	1. 密码
		$ passwd zhangsan
	2. 信息
		$ usermod -g 1008 zhangsan
		将zhangsan的组id换成1008

		$ id zhangsan
			表示查看当前用户的id 
4) 切换用户
	$ su - 用户名
	$ su 用户名
5) sudo
	sudo命令表示当前普通用户以root的身份运行某个命令,但是需要将当前的普通用户配置到/etc/sudoers中才能使用

	$ vi /etc/sudoers

6、常用命令
$ pwd
打印当前文件所在路径
$ ls
ls
列出当前目录下所有的文件
ls 目录/home
列出家目录的所有的目录以及文件
zhangsan/zhangsan123
/home$ ls -l
以长格式列出当前目录下所有的文件
drwxr-xr-x 22 test test 4096 Jul 19 20:02 test
d 文件类型
d 目录
- 文件
rwxr-xr-x
rwx read write execute 拥有者权限
r-x read - execute 同组人权限
r-x read - execute 其他人权限
22
test 拥有者
test 拥有者所属组
4096 文件大小
Jul 19 20:02 最近访问时间
test 文件名称
$ cd
切换到指定目录
$ cd / 切换到根目录
$ cd ~ 或者 $ cd 切换到家目录
$ cd … 退到上一级目录
$ cd day01 切换到day01目录
$ clear
清理终端屏幕
$ history
列出历史命令
$ man 命令
查看指定命令的手册
q quit 退出手册
回车 下一行
空格 下一页
$ more 预览
$ less 预览
$ cat 连接后显示
$ tac 连接后显示
$ nl 添加行号后显示
$ tail 预览末尾10行
$ head 预览头10行

7、文件系统
1) 新建目录
$ mkdir linux es5 es6
$ mkdir -p day01/a/b/c
mkdir -p xx/yy的好处就是一次可以创建多级文件夹,若xx文件夹不存在,则先创建xx文件夹,然后在xx文件夹下创建yy文件夹
mkdir xx/yy会报错
2) 新建文件/修改最近访问时间
$ touch 文件名
如果指定的文件名不存在,创建该文件
如果指定的文件名存在,修改最近访问时间为当前时间
3) 拷贝文件或者目录
$ cp a.txt b.txt 将文件a.txt复制一份为b.txt
$ cp -r dir1 dir2 将目录dir1复制一份为dir2
4) 移动
$ mv a.* dir1
$ mv a b
5) 连接
创建硬链接(防止误删除,多个指针指向同一个inode)
$ ln a.txt a.txt.h
创建软连接(linux里的软连接类似于windows系统中的快捷方式)
$ ln -s a.txt a.txt.s

	软链接:
	1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
	2.软链接可以 跨文件系统 ,硬链接不可以
	3.软链接可以对一个不存在的文件名进行链接
	4.软链接可以对目录进行链接

	硬链接:
	1.硬链接,以文件副本的形式存在。但不占用实际空间。
	2.不允许给目录创建硬链接
	3.硬链接只有在同一个文件系统中才能创建
6) 删除
	$ rm -rf * 删除当前目录下的所有文件
		所删除的文件,一般都不能恢复
	$ rm -f 
		f参数忽略不存在的文件,不显示任何信息
	$ rm 命令删除一个目录中的一个或者多个文件或者目录,只用rm命令不会
		删除目录,通常文件通常可以恢复
	$ rmdir 	只能删除空目录
7) 压缩与解压缩
	1. 压缩
		gzip 	压缩
		bzip2	压缩
		zip		打包压缩
		
		$ gzip a.txt 	
		=> a.txt.gz
		$ bzip2 b.txt
		=> b.txt.bz2 
		$ zip all.zip *.txt
		=> all.zip 	(a.txt b.txt c.txt)

		gzip只能压缩文件 , 不能压缩目录 ,后缀名为.gz , 而且不保留原文件
		bzip2压缩文件,压缩文件后缀为.bz2
			bzip2 [-k] [文件]  
			-k:产生压缩文件后保留原文件
		zip压缩文件,压缩文件后缀为.zip
			-r  压缩目录
			eg:zip services.zip /etc/services  压缩文件;
				zip -r test.zip  /test  压缩目录
			如果不加-r选项,压缩后的文件没有数据。
	2. 解压缩
		$ gunzip a.txt.gz
		=> a.txt
		$ bunzip2 a.txt.bz3
		=> a.txt

		$ unzip all.zip
		=> a.txt b.txt c.txt
		$ unzip all.zip -d dir2
		=> dir2/a.txt b.txt c.txt

	3. 归档
		tar	
			-c 	创建归档文件
			-x 	拆档
			-v 	打印细节
			-f 	指定归档/拆档文件
			-j 	bzip2格式 	xxx.tar.bz2
			-z 	gzip格式 	xxx.tar.gz

		$ tar cvf all.tar *.txt
		$ tar cvzf all.tar.gz *.txt	(gzip)
		$ tar cvjf all.tar.bz2 *.txt (bzip2)
	
	4. 拆档
		$ tar xvf all.tar.gz

	归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和
	压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小

8、软件安装
1) apt命令安装
更新源
# apt update

	安装软件包
	# apt install xxx
	# apt install zip
	# apt install git
	# apt install mysql-server-5.7

	apt与apt-get的区别
		apt是apt-get的升级,apt-get中很多命令已经被apt取代
		优先推荐使用apt

2) 解压缩安装
	jdk
	nodejs

9、文件内容查看
cat 将多个文件内容显示出来
tac

10、权限
使用者与群组
拥有者 u user
同组人 g group
其他人 o other
所有人 a all
权限类型
读 r read
写 w write
执行 x execute
权限
rw- 110 6
r-x 101 5

如何查看同组的人
$ more /etc/passwd

修改文件权限
	1. 通过表达式来修改
		$ chmod g-r a.txt
		g 表示是同组人还是拥有者还是其他人
		- 移出权限
		+ 添加权限
		= 设置权限

		$ chmod g-r a.txt
		$ chmod o+w a.txt

	2. 通过二进制方式修改
		--x 	001 	1
		-w-		010		2
		-wx		011		3
		r-- 	100		4
		r-x 	101		5
		rw- 	110		6
		rwx 	111		7
		$ chmod 644 a.txt
		$ chmod -R 777 a.txt	赋予当前文件最高权限

filezilla上传文件失败
	1)在linux下进入/var/www目录下,输入如下命令
	$ sudo chmod -R 777 html

	2)上传文件成功后,但是在浏览器无法访问时,在linux下进入/var/www/html目录,输入如下命令
	$ sudo chmod -R 777 项目名

12、vim编辑器
1) 作用
1. 修改配置文件
2. 快速修复部署到服务器上的代码
3. 编写js代码

2) vim与vi
	vim是vi的升级版本

3) 模式
	命令行模式
		切换到输入模式,以输入字符 i
		删除当前光标所在处的字符 x
		复制	yy
		粘贴 	p
		删除 	dd
		回退	u
		切换到底行模式 :
	编辑模式【左下角 insert】
		写代码
		字符按键以及Shift组合,输入字符
		ENTER,回车键,换行
		BACKSPACE,退格键,删除光标前一个字符
		DEL,删除键,删除光标后一个字符
		方向键,在文本中移动光标
		Page Up/Page Down,上/下翻页
		Insert,切换光标为输入/替换模式
		ESC,退出输入模式,切换到命令行模式
	底行模式【底行可以输入】
		保存 		:w
		另存为 		:w other.txt
		退出 		:q
		保存退出 	:wq
		不保存退出 	:q!
		查找 		/larry	n表示查找下一个
		替换 		:1,$s/larry/8888/g
		复制 		:1,4co55
		
4) vi配置
	1. 自定义vimrc
		~/.vimrc
	2. 使用第三方插件
		spf13-vim
		下载spf13
			$ apt update
			$ apt install git
			$ git --version
			$ apt install vim
			$ vim --version

			$ curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
			如果下载失败
				1. 先试着换网多执行几次该命令
				2. 重新创建一个用户,在新用户中下载
		卸载spf13
			apt remove vim
			apt remove vim-runtime
			apt remove vim -tiny
			apt remove vim-common
			apt remove vim-doc
			apt remove vim-scripts

13、其他重要命令
$ find ./ -name '*.txt'
	查找当前目录中所有的.txt文本文档
$ grep 1003 /etc/passwd
	查找passwd文件中的包含1003行的内容
$ sleep 1000s
$ sleep 1000s &
	将当前进程放到后台执行
$ ps -ef | grep java
	在所有进程中找到java相关的进程
$ kill -9 pid
$ reboot
	重启云服务器

卸载软件步骤:
1. 关闭进程:
# ps -ef | grep vsftpd
# kill -9 pid
# 或者
# killall vsftpd
2. 删除软件
apt install -> apt remove --purge
解压 -> 删除

下载所有软件之前更新源
apt update
14、apache2
1) 安装
apt-get下载报错时,使用apt下载,apt是apt-get的升级
# sudo apt install apache2
默认情况下安装后会自动启动

	# sudo service apache2 status
	# sudo service apache2 start
	# sudo service apache2 restart
	# sudo service apache2 stop

	apache的部署目录
		/var/www/html/
			wangyi/index.html

2) 测试
	浏览器地址栏
	http://47.93.255.92
	=> /var/www/html/index.html

	http://47.93.255.92/wangyi
	=> /var/www/html/wangyi/index.html

3) 部署
	将本地的项目代码上传至服务器的/var/www/html/目录下
	解决方案
		windows : fillzilla
		linux : vsftpd

15、vsftpd安装
作用:可以使用ftp工具或者命令将客户机上的文件上传到服务器上。

/etc/profile
	export NODE_HOME=/opt/node-v10.16.2
	export PATH=$PATH:/usr/sbin:$NODE_HOME/bin

	export JAVA_HOME=/opt/jdk1.8.0_221
	export PATH=$PATH:/usr/sbin:$JAVA_HOME/bin

	配置文件的路径为/opt下的解压缩后的文件名

安装过程:
	1) 使用apt安装
		# sudo apt install vsftpd
	2) 测试
		# vsftpd -version
		vsftpd: version 3.0.3

		报错:
			/usr/sbin不在PATH中
		解决方案:
			# sudo vi /etc/profile
				追加
				export PATH=$PATH:/usr/sbin
			在/etc下执行该命令
				# source profile 【使配置文件生效】
	3) 连接测试
		# ftp 47.93.255.92
			1. 提示输入用户名密码,说明可以访问ftp服务器
			2. 提示timeout,说明网络有可能不同,对方(阿里云)添加了防火墙
				解决方案:
					去阿里云的管理页面中打开21端口即可
	4) 使用fillzilla
		将被动模式变为主动模式
		这时候可以查看,但是无法上传文件
			解决方案:
				配置vsftpd
				# sudo vi /etc/vsftpd.conf
				将31行的注释给删除即可
				write_enable=YES
	5) 重启vsftpd
		# sudo service vsftpd restart

16、安装nodejs 解压安装
1) 下载安装包
windows
https://nodejs.org/dist/v12.18.2/node-v12.18.2-linux-x64.tar.xz
下载完之后通过filezilla上传至服务器/opt
linux
# wget https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-x64.tar.xz
下载完之后将该压缩包移动到/opt下
# sudo mv node.xxx.tar.xz /opt
2) 解压
# sudo tar xvf node.xxx.tar.xz
3) 重命名
# mv node-v12.18.2.xxx node-v12.18.2
此时无法使用node进入到node环境,需要配置环境
4) 配置环境变量
配置步骤:
# sudo vi /etc/profile
文件的最后追加
export NODE_HOME=/opt/node-v10.16.2
export PATH= P A T H : / u s r / s b i n : PATH:/usr/sbin: PATH:/usr/sbin:NODE_HOME/bin
# source /etc/profile
4) 测试
# node -v
v10.16.2

17、安装jdk
1) 下载
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
2) 移动到/opt下解压缩
# sudo tar xvf jdk-8u102-linux-x64.tar.gz
3) 配置环境变量
# sudo vi /etc/profile
文件的最后追加
export JAVA_HOME=/opt/jdk1.8.0_102
export PATH= J A V A H O M E / b i n : {JAVA_HOME}/bin: JAVAHOME/bin:PATH
# source /etc/profile
4) 测试
# java -version

18、安装mysql
1) 卸载mysql
# sudo apt autoremove --purge mysql-server-5.0
# sudo apt remove mysql-server
# sudo apt autoremove mysql-server
# sudo apt remove mysql-common
清理残留数据
# dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P

2) 下载
	# sudo apt install mysql-server
	根据提示输入数据库的用户名与密码
	# mysql -uroot -p4444
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值