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后面跟整数,

linux笔记

 

uname:查看linux的版本的

   uname

   uname –s

还有另外一个方法看版本:

linux笔记

 

exit:退出登录,或者退出shell

 

hostname:显示主机名

linux笔记

 

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

  1. 虚拟机里有两种比较常用的网络配置方式net,桥接

 

net:虚拟机默认分配的是10.0.2.15(virtualbox)

桥接:实体机和虚拟机在同一个网段。(172.17.13.xx)

 

  1. 检查网络通不通
  1. 首先是查看自己获取到的ip(windows:ipconfig /all;linux:ifconfig)
  2. 用ping命令,从虚拟机ping到实体机,从实体机ping到虚拟机。

注意:如果是ping windows,那注意windows的防火墙要允许

  1. 创建用户

useradd用户名

useradd -d /use/sam/ -m sam

useradd –s /bin/sh –g group –G adm,root gem

  1. 删除用户

userdel [-r] 用户名

  1. 改密码

passwd 用户名

  1. 增加用户组

groupadd 组名

  1. 删组名

groupdel 组名

  1. 修改用户所属组

usermod –g groups loginname

强行设置某个用户的主要组

usermod –G group loginname

设置用户的附加组

usermod –a groups loginname

把用户添加进入某个附加组

  1. 其他查询

cat /etc/group        //查询系统所有的组

groups 用户名       //查询用户属于哪些组

 

  1. linux所有的硬盘,…
  2. 在/dev/的目录下,有sd或者hd开头的文件,它就是硬盘

cd /dev

ls dh*

ls sd*

linux笔记

sda    =>第一块sata或者scsi硬盘

sda1   =>第一块sata或者scsi硬盘的第1个分区

sda2   =>第一块sata或者scsi硬盘的第2个分区

 

sdb    =>第二块硬盘,它是sata或者scsi类型

sdb1   =>第二块硬盘上第一个分区

 

3、使用fdisk硬盘分区

su

fdisk /dev/硬盘名字

第一步:

 

第二步:

linux笔记

linux笔记

第三步:

linux笔记

linux笔记

第四步:

linux笔记

作业:

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 对单一用户生效(当前用户)

linux笔记

~/.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命令定义变量【只对当前shellBASH)有效(临时的)】

shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shellBASH)或其子shellBASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

 

 

1.设置静态IP地址

  1. 备份/etc/systemconfig/network-scripts/ifcfg-*,每个虚拟机的文件不一样。
  2. vim /etc/systemconfig/network-scripts /ifcfg-*
  3. 将BOOTPROTO=DHCP改为:BOOTPROTO=static,
  4. 增加:IPADDR=192… NETMASK=255… GATEWAY=192…
  5. 改DNS1=61.139.2.69 DNS2=114.114.114.114
  6. 重启网络服务 service network restart
  7. 查看IP地址是否正确 ifconfig
  8. 检查网络是否通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

  1. 在本地访问

http://localhost

  1. 找出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