linux笔记
Linux基础操作
查看帮助:--help
ls:列出文件和目录(dir)
什么参数都不给,默认列出当前目录的东西
最常用的用法:ls -ls,列出的内容
cat:输出文件内容。只能输出文本文件内容,不懂bin
cd:改变当前目录,用法:cd 相对路径或者绝对路径,
不以/开头的路径,叫相对路径
以/开头的路径,叫绝对路径
cd .. 回到上一层
cd 回家
cd ~ 回家
cd / 回到根目录
cd ../../ 回到上一层的上一层
pwd:显示当前目录
mkdir:创建目录
mkdir 目录名 #表示在当前目录下创建
mkdir /xxx #在根目录下创建xxx
mkdir ../abc #在上一层目录下创建abc
tar:用来打包的,用来解压的,压缩的
tar zxvf xxx.tar.gz #解压gz类型的压缩文件
tar jxvf xxx.tar.bz2 #解压bz2类型的压缩文件
tar cxvf xxx.tar.gz 目录名,#压缩成gz格式
tar cjvf xxx.tar.bz2 目录名,#压缩成bz2格式
cp:复制文件
cp 1.txt 2.txt #创建1.txt的复本,名字叫2.txt
cp /home/cp/桌面/1.txt /home/cp/桌面/11.txt
#与windows下的copy,xcopy差不多
ln:创建软硬链接(快捷方式)
touch:创建文件或修改文件时间
touch 文件名 #创建一个新文件
touch -d '2位的月/2位的日/4位的年' 文件名 #更改创建时间,访问时间
su:切换用户
whoami:显示当前用户
sudo:以root身份执行
top:查看系统资源进程
q退出进程
du:查看文件和目录的大小
Du –h –d1 目录名
-h使用k,m,g单位
-d后面跟整数,
uname:查看linux的版本的
uname
uname –s
还有另外一个方法看版本:
exit:退出登录,或者退出shell
hostname:显示主机名
passwd:改密码
rm:删除文件或者目录
rm –rf abc* #删除当前目录下所有以a开头的文件或目录
-r 递归,子子孙孙都被删除
-f 强行删
mv:重命名和移动文件的
mv 文件名 目的目录名 #移动文件
mv 老的文件名 新的文件名 #重命名
VI和VIM操作:
一、VIM的使用方法
(1)3种工作模式:普通模式,插入模式,命令模式
普通模式:只能查看文件
插入模式:可以修改文件
命令模式:可以执行各种命令
(2)模式切换:
其它模式→普通模式ESC
普通模式→插入模式
i 在光标前插入
I 在行首插入
a 在光标后插入
A 在行末插入
o 在当前行之下新建
O 在当前行之上新建行
r 替换当前字符
R 从当前字符开始替换
普通模式→命令模式
普通模式→可视模式
v 可视模式
V 可视模式块
(3)常用快捷键和命令
: q //退出
:q! //退出不保存
: w //保存
:wq //先保存再退出
/qq/ //在当前文件夹中查找qq
gg //光标移动到页首
复制:可视模式 V → 选择复制内容 Y → 位置 P
- 虚拟机里有两种比较常用的网络配置方式net,桥接
net:虚拟机默认分配的是10.0.2.15(virtualbox)
桥接:实体机和虚拟机在同一个网段。(172.17.13.xx)
- 检查网络通不通
- 首先是查看自己获取到的ip(windows:ipconfig /all;linux:ifconfig)
- 用ping命令,从虚拟机ping到实体机,从实体机ping到虚拟机。
注意:如果是ping windows,那注意windows的防火墙要允许
- 创建用户
useradd用户名
useradd -d /use/sam/ -m sam
useradd –s /bin/sh –g group –G adm,root gem
- 删除用户
userdel [-r] 用户名
- 改密码
passwd 用户名
- 增加用户组
groupadd 组名
- 删组名
groupdel 组名
- 修改用户所属组
usermod –g groups loginname
强行设置某个用户的主要组
usermod –G group loginname
设置用户的附加组
usermod –a groups loginname
把用户添加进入某个附加组
- 其他查询
cat /etc/group //查询系统所有的组
groups 用户名 //查询用户属于哪些组
- linux所有的硬盘,…
- 在/dev/的目录下,有sd或者hd开头的文件,它就是硬盘
cd /dev
ls dh*
ls sd*
sda =>第一块sata或者scsi硬盘
sda1 =>第一块sata或者scsi硬盘的第1个分区
sda2 =>第一块sata或者scsi硬盘的第2个分区
sdb =>第二块硬盘,它是sata或者scsi类型
sdb1 =>第二块硬盘上第一个分区
3、使用fdisk硬盘分区
su
fdisk /dev/硬盘名字
第一步:
第二步:
第三步:
第四步:
作业:
a.在虚拟机里增加磁盘控制器,在其上面挂载新的硬盘,硬盘大小10G,
b.在linux中,对该盘进行分区,使用gpt分区表。分成2个区,4G+6G。
4.创建文件系统
mkfs –t ext3 分区的名字
//例如:在第一块硬盘的第一个分区上创建ext3类型的文件系统
mkfs –t ext3 /dev/sdb1
5.挂载文件系统
cd /media
mkdir disk2-1
//将第一块硬盘的第一个分区挂在/media/disk2-1这个目录上
//以后就可以通过这个目录对硬盘进行操作
mount /dev/sdb1 /media/disk2-1
6.要让当前用户可以对该分区有权限,可以把disk2-1的owern改了,改成自己
chown pc:pc /media/disk2-1
7.开机自动挂载
编辑 /etc/fatab文件
在它最后增加一行
分区名挂载的目录名
例如:
/dev/sdb1 /media/c
然后重启
1.显示单个环境变量
echo $xxx
2.设置一个新的环境变量hello,并且显示出来(注意大小写)
$ export HELLO=”hello!”
echo $HELLO
3.显示所有环境变量
env
4.清除环境变量
unset
5.环境变量种类
临时的,永久的
6.设置永久变量的几个文件
/etc/profile 对所有用户生效
~/.bash_profile 对单一用户生效(当前用户)
~/.bashrc 对单一用户生效,子bash启动才生效
/etc/bashrc 也同样,只是是全局的
7.修改了两个profile之后,如果不想重启,可以执行下面的命令:
source 文件名
让他立即生效,如果改了bashrc文件,也可以用source来重新加载,也可以关了终端,重新打开。不需要重启。
1.Linux的变量种类
按变量的生存周期来划分,Linux变量可分为两类:
1.永久的:需要修改配置文件,变量永久生效。
2.临时的:使用export命令行声明即可,变量在关闭shell时失效。
2.设置变量的三种方法
1.在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量
# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。
2.在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑guok用户目录(/home/guok)下的.bash_profile
$ vi /home/guok/.bash.profile
添加如下内容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。
3.直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
1.设置静态IP地址
- 备份/etc/systemconfig/network-scripts/ifcfg-*,每个虚拟机的文件不一样。
- vim /etc/systemconfig/network-scripts /ifcfg-*
- 将BOOTPROTO=DHCP改为:BOOTPROTO=static,
- 增加:IPADDR=192… NETMASK=255… GATEWAY=192…
- 改DNS1=61.139.2.69 DNS2=114.114.114.114
- 重启网络服务 service network restart
- 查看IP地址是否正确 ifconfig
- 检查网络是否通ping www.qq.com
1.使用“源”来管理软件包
yum install 包的名字 //安装包
yum update //更新
yum upgrade //升级,包括升级系统,类windows update
yum remove 包的名字 //删除
yum clean //清理
yum list //列出所有的包
yum list installed //列出所有已安装的包
例如:yum list installed | grep jdk
yum search //查找包
2.RPM包管理
rpm –qa //查询系统中已安装的软件
rpm –qf 文件名的绝对路径
//查询一个已安装的文件属于哪个软件包
rpm –ql 软件名 //查询已安装软件包都安装到何处
rpm –ivh rpm 文件 //安装
rpm –Uvh rpm 文件 //升级一个 rpm包
rpm –e 软件名 //删
3.bin文件安装
(1)设置文件可执行
(2)./文件名 直接运行
4.源代码编译安装
(1)解压jar
(2)./configure [-prefix=newpath](自己指定安装路径)
(3)make && make install (这一步要有root权限)
5、多个jdk版本间切换
alternatives --config java
*(补充)6、centos中安装mariadb(mysql)
a.sudo yum install mariadb*
b.安装好之后,启动服务
(1)systemctl start mariadb
(2)systemctl enable mariadb
c.登录mysql
mysql -uroot -p
1、安装vsftp
yum -y install vsftpd
2、启动服务
service vsftpd start
3、配置vsftpd
# whereis vsftpd
vsftpd:/usr/sbin/vsftpd/etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
yum安装的主要目录为上述的3个目录,其中配置文件vsftpd.conf在/etc/vsftpd中;
#默认配置文件:/etc/vsftpd.conf
#下面是配置的选项及说明
######### 核心配置 ###########
# 允许本地用户登录
local_enable=YES
# 本地用户的写权限
write_enable=YES
# 使用FTP的本地文件权限,默认为077
# 一般设置为022
local_umask=022
# 切换目录时
# 是否显示目录下.message的内容
dirmessage_enable=YES
dirlist_enable = NO
# 验证方式
#pam_service_name=vsftpd
# 启用FTP数据端口的数据连接
connect_from_port_20=YES
# 以独立的FTP运行
listen=yes
# 修改连接端口
#listen_port=21
######### 匿名登录设置 ###########
# 允许匿名登录
anonymous_enable=NO
# 如果允许匿名登录
# 是否开启匿名上传权限
#anon_other_
# 如果允许匿名登录
# 匿名帐号可以有删除的权限
#anon_other_write_enable=
####限制登录
# 用userlist 来限制用户访问
#userlist_enable=no
名单中的人不允许访问
限制名单文件放置的路径
### 限制目录
# 限制所有用户都在家目录
#chroot_local_user=yes
# 调用限制在家目录的用户名单
chroot_list_enable=YES
# 限制在家目录的
######### 日志设置 ###########
# 日志文件路径设置
xferlog_file=/var/log/vsftpd.log
# **上传/下载的日志
xferlog_enable=YES
# 使用标准的日志格式
xferlog_std_format=YES
######### 安全设置 ###########
# 用户空闲超时,单位秒
#idle_session_timeout=600
# 数据连接空闲超时,单位秒
#data_connection_timeout=120
# 将客户端空闲1分钟后断开
#accept_timeout=60
# 中断1分钟后重新连接
#connect_timeout=60
# 本地用户传输速率,单位bite
#local_max_rate=50000
# FTP最大连接数
#max_clients=200
# 每IP的最大连接数
#max_per_ip=5
######### 被动模式设置 ###########
# 是否开启被动模式
pasv_enable=yes
# 被动模式最小端口
pasv_min_port=5000
# 被动模式最大端口
pasv_max_port=6000
######### 其他设置 ###########
#欢迎信息
ftpd_banner=Welcome to Ftp Server!
4、centos7里有一个默认的网络防火墙firewalld
service firewalled stop #暂时关闭
systemctl mask firewalld #永远把firewall禁用掉
5、被动模式
a.客户端tcp -> 服务器的21端口
b.服务器让客户端认证
c.客户端发:USER 用户名
客户端发:PASS 密码
d.服务端提示认证成功
e.客户端发: PASV #使用被动模式
f.服务端: Entering Passive Mode(172.17.13.55.49.209).
g.客户端发起一个新的连接:连接到172.17.13.55.的49209这个端口
手工配置jdk
1、下载jdk,地址在www.java.com
ftp://10.10.12.8/
基础类库/jdk
2、解压
tar zxvf gz包的名字
3、把jdk放到/usr/lib里
mv 目录的名字 /usr/lib
4、在环境变量PATH中增加jdk的bin路径
vim /etc/profile
比如:在最后面增加:
export PATH=SPATH:/usr/lib/jdk1.8.0_111/bin
5、如果用yum安装过jdk,需要把yum安装过的jdk删了
yum remove 包的名字
6、验证一下
java –version
1.安装
yum install –y httpd
2.启动服务
service httpd start
systemctl start httpd
3.改端口
vim /etc/httpd/conf/httpd。conf
Listen 80
Listen 192.168.x.x 8080
Listen 0.0.0.0 xxx
- 在本地访问
http://localhost
- 找出web的根路径
DocumentRoot “/var/www/html”
6.发布静态页面
将静态页面文件放到/var/www/html目录下
7.关闭防护墙,在局域网电脑上查看网页
http://192.168.xx.xx/
8.发布虚拟目录
(1)在httpd.conf最后增加
Alias /test “/var/www/test”
<Directory “/var/www/test”>
Options Indexes MultiViews
Order allow,deny
Allow from all
</ Directory >
(2)用root账号创建/var/www/test目录
(3)在/var/www/test目录下放html文件
(4)重启httpd