Linux相关配置

XFtp 文件上传至Linux
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为/ 表示的是根目录,如果你要进入abc目录,应该这样:cd abc, 而不是cd /abc, 如果你非要使用绝对路径,则应该是cd /home/abc。
在这里插入图片描述
在这里插入图片描述
cd 与 cd ~都是打开用户目录的
在这里插入图片描述
删除目录
rmdir 删除的前提是文件夹中没有内容
rm -rf 删除目录即他们的内容
rm -f删除文件

文件重命名
mv 旧文件名 新文件名
创建一个新文件 文件名 以及文件内容
Vim 文件名
cp
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点…的形式。例如,下面的命令将指定文件复制到当前目录下:

cp ../mary/homework/assign .

cp 文件名 新文件名 将会把旧文件内容copy到新文件中

查找文件
find 如果是从根目录查找需要权限

Linux用户管理
su 用户名 跳转到相应用户 su 默认就跳转到root权限超级管理员
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux重启

reboot

Tomcat 在windows无法访问
需要在linux的防火墙上放行8080端口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux第一天笔记

课程简介

1:linux操作系统简介

2:linux操作系统安装

3:linux操作系统常用指令

4:linux操作系统常用文件指令

复习(上线,能通过互联网-公网问)

Linux简介

1:linux是一个服务器操作系统,项目发布,(运行环境,jdk,tomcat,mysql,redis,nginx,…)环境搭建。

特点: 免费 ,开源,高效,安全,处理高并发能力很强。

Linux内核,华为小米()

2:linux的发行版(在内核的基础上进行的开发应用)

红帽 centOS Ubantu suse 红旗 (中国)

Android—》小米 华为

《鸟哥私房菜》—>初级linux(基础的linux指令)

《人月神话》 --》linux 高级应用(集群,部署信息)

VM和linux的安装

VM:虚拟机

通过vm软件在windows平台虚拟一个新的操作系统(光驱,硬盘,声卡网卡…)

虚拟化,(集群搭建),云计算:运维(linux)

必须开启:当前系统的虚拟化,否则安装失败(F** 2, **或者是F10,F1)

操作系统支持虚拟化,bios 虚拟机化开启enalbel

CentOS:linux操作系统(就是一系列的文件)

  1. (1)创建一个虚拟机

    根据windows硬件,配置虚拟机的配置。

    配置网络连接的时候选择nat方式

    img

  2. (2)安装centos操作系统

网络设置和终端

1:配置网络

自动获取动态IP地址

也就是通过路由器的DHCP功能,使Linux主机自动获取IP地址。

设置方法如下:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

编辑本地网卡的配置文件

主要查看下面这两项是否和下面给出的一致即可。

ONBOOT=yes

BOOTPROTO=dhcp

第一项是确保本地网卡eth0开启。

第二项是使用dhcp,自动获取IP地址、子网掩码、网关和DNS。

然后,执行下面的命令,重启网络服务即可。

service network restart

重启网络服务,使配置文件生效

安装vmtools工具

Vmtools工具可以将windows中的文本文件拷贝到linux中,linux中的内容可以移动的windows中

安装:击安装VMware Tools 会下载到/media/VMware Tools目录下

  1. 1)在root权限将vmtools工具压缩包,解压到opt目录下

tar -zxvf /media/VMware Tools/压缩文件名-C /opt

  1. 进入解压后的文件目录(cd 目录名) cd /tmp/vmware-tools-distrib
  2. 安装文件 ./***.pl文件(一路回车) ./vmware-install.pl
  3. 重启linux,vmtools工具才能生效

文件在linux和windows之间就可以自由的拷贝了.

Linux的目录结构

Linux的文件系统采用层级式的树状目录结构,在此结构中的最上层称之为根目录,使用"/"表示然后在此目录下创建其他目录

Linux是一个文件系统,在linux中一切内容都是文件。

常用目录介绍:

/bin [重点](/usr/bin、/usr/local/bin)

bin是binary的缩写,这个目录中存放着最经常使用的 命令

cat /etc/passwd

/sbin(/usr/sbin、/usr/local/sbin)

s就是superuser的意思,这里存放的是系统管理员使用的系统管理程序

/home[重点]

存放普通用户的主目录,在linux中每个用户都有自己的一个目录,一边该目录名是以用户账号命名的。

/root 该目录是系统管理员,或者是超级权限者的用户目录

/lib 系统开机所需要的最基本的动态链接共享库,

/lost+font 这个目录一般是空的,系统非法关机后这里就会存放一些文件

/etc [重点] 所有的系统管理所需要的 配置文件** (防火墙,jdk,密码)**和子目录

/usr** [重点] 这是一个非常重要的目录, 用户的 很多 应用程序**和文件都放在此目录下类似于windeows下的program file文件夹

/boot 存放的是启动linux时使用的一些核心文件目录

/proc、/srv、/sys 这三个目录和linux内核有关的目录,他是系统内存的一个映射,访问这个目录来获取系统信息。Linux高手才会用到,普通操作者不要乱动。

/tmp 存放临时文件的目录

/dve 类似于windows的设备管理器,把所有的硬件用文件的形式存储

/media linux会自动识别一些设备,如u盘,光驱等,当识别后linux会把识别的设备挂载到这个目录下

/mnt 系统提供该目录是为了让用户临时挂载别的文件系统。

/opt[重点] 这个是我们存放安装软件的目录(jdk tomcat sogou…)

/usr/local [重点] 这个是另外一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装程序

/var 存放不断变化的文件,例如日志文件,经常更新,就放到这个目录下。

/selinux 是一个安全子系统,控制程序访问特定文件

img

远程登录linux

在我们实际操作中,我们的服务器安装的linux系统,让后将项目发布到服务器上,linux服务器是没有显示器的。而且我们和服务器机房不在同一个地方,所以需要远程服务器

Xshell5 就是一个远程终端,用于登录到linux上,如果需要在linux上安装文件,我们还需要将文件远程上传到linux系统上,使用的就是xftp5

注意: 因为xshell5远程登录到linux系统,linux系统必须打开sshd服务,因为这个服务监听22号端口,如果没有开启我们需要开启这个服务。

nc -lp 23 &(打开23端口,即telnet)

netstat -an | grep 23 (查看是否打开23端口)

  1. 1)安装xshell5完成以后
  2. 2)获取当前linux的ip地址
  3. 3)使用ip进行远程连接

img

img

安装文件上传工具 sftp,按照下图进行配置

img

修改sftp中文乱码问题:默认为gbk编码

img

勾选后然后刷新就可以改变乱码了.

img

Linux的常用指令:

1:文件和目录

  1. 1)Pwd :显示当前所在的目录
/ linux中根目录
当前的用户目录
  1. cd 切换目录 (. , …) .当前目录 …上一层目录

cd /home 进入’/ home’ 目录’

cd … 返回上一级目录

cd …/… 返回上两级目录

cd 进入个人的主目录

cd ~user1 进入个人的主目录

cd - 返回上次所在的目录

  1. ls查看目录下的文件

ls -F 查看目录中的文件 file

ls -l 显示文件和目录的详细资料(常用的查看指令)

ls -a 显示隐藏文件

ll -s 显示文件详细信息

查看文件内容:

Cat 指令 查看文件内容的指令

Cat 文件名

Cat 有效的文件路径/文件 查看文件内容

  1. 4)目录指令

mkdir dir1 创建一个叫做’dir1’ 的目录’ make directory

mkdir dir1 dir2 同时创建两个目录

mkdir -p /tmp/dir1/dir2 创建一个目录树(多个文件夹的嵌套)

rmdir dir1 删除一个叫做’dir1’ 的目录’(文件夹中没有内容的) rmove directory

rm -rf dir1 删除一个叫做’dir1’ 的目录并同时删除其内容

rm -rf dir1 dir2 同时删除两个目录及它们的内容

m_v dir1_ new_dir 重命名

5)创建文件的指令

Touch file1 创建一个叫’file1’的文件

Vim 文件名编辑文件内容后就会产生一个文件

Echo ‘内容’> 文件名 将制定内容添加到文件中,这样会覆盖文件原有内容,如果不想覆盖请使用>> 符号

Rm -f 文件名(或者是一个有效的文件目录,最终指向一个文件) 删除一个文件

Mv 文件名新文件名 给文件重命名

Mv 文件名一个有效的文件目录。将某个文件移动到指定目录中

Mv 文件的路径 文件的路径 将当前目录中制定的文件移动到目标文件中

  1. 5)Cp 复制指令

cp dir/* . 复制一个目录下的所有文件到当前工作目录

cp -a /tmp/dir1 路径复制一个目录到当前工作目录

cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2

cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中

Vi 和Vim文本编辑器使用:

Vim是从vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说,vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具

三种模式

正常模式:

以vim打开一个档案就直接进入一般模式(这个是默认的模式) 在这个模式中可以使用[上下左右]按键来移动光标,你可以使用删除字符或者是删除正行来处理档案内容,可以使用复制粘贴来处理文件数据 记得ESC退出

插入模式

按下i I o O a A r R 等任何一个字母之后才会进入编辑模式一般来说按i即可 :wq保存退出

命令行模式(底行模式)

在这个模式当中,可以提供相关指令,完成读取,存盘替换离开vim、显示行号等动作则是在此模式中打成

三种模式的切换:

img

img

img

img

:wq 退出保存

:q! 退出不保存

  1. (1)创建一个文本文件

     Touch  文件名
    
  2. (2)使用vim指令切换不同的模式完成练习

find文件查找指令(名字)

Find指令

基本格式:语法:find [查找文件的路径] [查找条件] [处理动作]

1.按照文件名查找

(1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找

(2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf

(3)find /etc -name ‘srm’ #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串’srm’的文件

(4)find . -name ‘srm*’  #表示当前目录下查找文件名开头是字符串’srm’的文件

2.按照文件特征查找

(1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)

(2)find / -atime -2  # 查找在系统中最后48小时访问的文件

(3)find / -empty   # 查找在系统中为空的文件或者文件夹

(4)find / -group cat   # 查找在系统中属于group为cat的文件

(5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)

(6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件

(7)find / -user fred   #查找在系统中属于fred这个用户的文件

(8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)

(9)find / -size -1000k   #查找出小于1000KB的文件

(10) find /- type f|d 查找当前目录下所有文件 file directory

Grep指令(文件内容查找)

grep [options] ‘pattern’ filename

下面所列的参数主要是一些常用的参数。

option主要参数

编号 参数 解释

  1. 1–version or -V grep的版本
  2. 2-A 数字N 找到所有的匹配行,并显示匹配行后N行 after

3 -B 数字N 找到所有的匹配行,并显示匹配行前面N行 befor

4 -b 显示匹配到的字符在文件中的偏移地址

5 -c 显示有多少行被匹配到

6 --color 把匹配到的字符用颜色显示出来

7 -e 可以使用多个正则表达式

8 -f FILEA FILEB FILEA在FILEAB中的匹配

9 -i 不区分大小写针对单个字符 inorgecase

10 -m 数字N 最多匹配N个后停止

11 -n 打印行号

12 -o 只打印出匹配到的字符

13 -R 搜索子目录

14 -v 显示不包括查找字符的所有行

pattern主要参数

编号 参数 解释

1 ^ 匹配行首

2 $ 匹配行尾

3 [] or [n - n] 匹配[]内字符 [9] 1[3-5]

4 . 匹配任意的单字符

5 * 紧跟一个单字符,表示匹配0个或者多个此字符

6 \ 用来屏蔽元字符的特殊含义

7 ? 匹配前面的字符0次或者1次

8 + 匹配前面的字符1次或者多次

9 X{m} 匹配字符X m次

10 X{m,} 匹配字符X 最少m次

11 X{m,n} 匹配字符X m—n 次

12 666 标记匹配字符,如666 被标记为1,随后想使用666,直接以1 代替即可

13 | 表示或的关系

020-876643434 0755

876643434

  1. (1)创建一个文件内容为

a

bc

def

ght12

abc999

tydvl658

123

456

789abc

命令

grep --version 显示grep的版本号

grep -A 2 “a” test.txt //匹配字符’a’ 后面两行

grep -B 2 “a” test.txt //匹配字符’a’ 前面两行

grep -c “a” test.txt //在整个txt中,共有三个字符’a’被匹配到

grep --color “a” txt //匹配到的内容使用颜色显示

grep -e “a” -e “1” test.txt //查找txt中字符 ‘a’ 和字符 ‘1’

grep -i “a” test1.txt //找出所有字符’a’ 并且不区分大小写

grep -m 2 “a” test.txt //匹配2个后停止

grep -n -m 2 “a” test.txt//打印出匹配字符的行号

grep “a” * //只在当前目录查找字符’a’

grep -R “a” * //在当前目录和子目录查找字符’a’

grep -v “a” test.txt 显示不包括查找字符的所有行

grep -n ‘^a’ test.txt //匹配以字符’a’开头的

grep -n ‘33$’ test.txt //匹配以字符串"33"结束的

文件压缩和解压(必须)

打包和压缩文件:

tar -tf archive.tar 显示一个压缩包中的内容

tar -zcvf info.tar.gz a.java bb.java 创建一个gzip格式的压缩包

tar -xvf info.tar.gz -C /root 解压一个gzip格式的压缩包

tar -axvf info.tar.gz -C /root 解压一个gzip格式的压缩包

Linux用户和组的管理

1)Linux系统是一个 多用户多任务 的操作系统,任何要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统中用户名 /home

2)Linux的用户需要至少属于一个组。

3)在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。

4)linux中所创建的账号和其相关信息(密码除外)均放在/etc/passwd 文件中,linux在安装好后会默认创建多个用户,但是这些用户为linux进程用户不能登录

用户信息结构为:(使用指令 cat /ect/passwd 查看)

img

5)为安全起见,用户真实的密码采用 MD5 加密算法加密后,保存在/etc/shadow配置文件中,该文件只有root用户可以读取。

与passwd文件类似,shadow文件也是每行定义和保存一个账户的相关信息。第一个字段为用户帐户名,第二个字段为账户的密码。

6)用户组帐号信息保存在/etc/group配置文件中,任何用户均可以读取。用户组的真实密码保存在/etc/gshadow配置文件中。

在group中,第一个字段代表用户组的名称,第二个字段为x,第三个为用户组的ID号,第四个为该用户组的用户成员列表,各用户名间用逗号分隔

  1. 7)用户指令操作

    Useradd 用户名 (使用当前的用户名添加一个组,并将创建的用户放入到这个组中)

    Passwd 用户名为当前用户设置密码

    Userdel -r 用户名删除该账户和所有目录结构

    Passwd -l 用户名锁定账户密码 lock

    Passwd -u 用户名解锁账户密码 unlock

    Passwd -S 用户名 查看用户密码锁定状态

    Groups 查看用户属于哪个组

  2. 8)用户组操作命令

    Groupadd 组名 创建用户组

    Groupdel 组名 删除用户组(有用户的组不能删除的,空组可以删除组信息)

Useradd -g 组名 用户名 创建用户并且制定用户所属的组

gpasswd ** **** -a 用户账户 **** **用户组名 将某个用户添加到该组 add

gpasswd -d 用户账户 用户组名 将某个用户移除该组 delete

9)切换用户和操作环境

su - username #用户和操作环境都改变

su username #只切换用户不切换操作环境及环境变量不变。还可用于退出超级权限

10)用户和组常用命令

groups 查看当前登录用户的组内成员

groups 用户名 查看当前用户所在的组

whoami 查看当前登录用户名

文件权限

  • rw- r-- r-- root root 0 7月 20 01:03 a.java

  • 第一个字符代表文件(-)、目录(d),链接(l)

  • 其余字符每3个一组r 读 w 写 x执行 read write execute

rw-读写没有执行权利(当前的文件拥有者) tomer

r-- 读 没有写和执行的权利(和当前文件拥有者在 同一个组 的用户) root

r-- 读 没有写和执行的权利(其他用户的权利)

  • 第一组rwx:文件所有者的权限是读、写和执行
  • 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
  • 第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7 777 755 rwxr-xr-x

  • 1 表示连接的文件数
  • root 表示用户
  • root表示用户所在的组
  • 1213 表示文件大小(字节)
  • Feb 2 09:39 表示最后修改日期
  • abc 表示文件名

改变权限的命令

chmod 改变文件或目录的权限

chmod 755 ** 文件:赋予abc权限rwxr-xr-x

chmod u=rwx,g=rx,o=rx 文件名:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-x,g+w 文件名:给abc去除用户执行的权限,增加组写的权限

chmod a+r 文件名:给所有用户添加读的权限

改变所有者(chown)和用户组(chgrp)命令

chown 用户名文件名:改变abc的所有者为xiaoming change owner

chgrp 组 文件:改变abc所属的组为root

chown 用户目录:改变abc这个目录的所有者是root

chown ‐R 用户 目录:改变abc这个目录及其下面所有的文件和目录的所有者是root

改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组

usermod ‐g 组名用户名

关机、重启、注销

关机:

shutdown -h 0 #<==0秒后关机

shutdown -h now #<==现在关机

shutdown -h 10 #<==10分钟后关机

shutdown -h 23:20 #<==23:20分关机

shutdown -c #<==取消shutdown关机命令

init 0 #<==立马关机(切换运行级别为0,推荐使用)

halt #<==立马关机

poweroff #<==立马关机

重启

shutdown -r now #<==现在重启

shutdown -r 23:20 & #<==23:20分重启,加&符号代表把该命令转到后台处理

reboot #<==立马重启(推荐使用)

init 6 #<==立马重启(切换运行级别为6,推荐使用)

注销用户

logout #<==立马注销

exit #<==立马注销

清屏指令

Clear

Ctrl+l

注意:

Sync:这个指令将数据从内存中同步到磁盘上(关机和重启之前使用)

登录的时候少用管理员,可以使用普通用户登录后然后使用指令

Su -root 指令切换到管理员

Linux第二天笔记

课程简介
1:linux操作系统安装jdk
2:linux操作系统下tomcat的安装
3:linux操作系统安装eclipse
4: linux操作系统安装mysql
5:linux系统下shell脚本的编写和运行
复习
配置EditPlus
文件>FTP>设置FTP服务器

Jdk安装
1:通过 Xftp工具将我们安装工具包(jdk-8u211-linux-x64.tar.gz)传入到/root文件夹下
cd /root
2:解压jdk的压缩文件
tar -zxvf jdk-8u211-linux-x64.tar.gz;
把解压出来的目录jdk1.8.0_211移动到/usr/local
mv jdk1.8.0_211 /usr/local/ 移动
cd /usr/local 切换目录
ls 查看
3: 这个时候我们进入解压的文件夹中的bin目录下就可以输入 ./java ./javac等指令
这样导致的结果很不方便,所以我们需要配置环境变量
cd jdk1.8.0_211/bin

4:配置环境变量 /etc/profile 文件中 (将java的内容配置到最后行比较清晰)
Vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_211
PATH=/usr/local/jdk1.8.0_211/bin:$PATH
export JAVA_HOME PATH

Esc退出编辑模式
:wq 保存我们修改的数据
5: 重启 linux后,在任何目录下都可以直接使用java 和javac指令了 然后编码测试即可
Tomcat
上传 apache-tomcat-8.5.40.tar.gz 到root
cd /root
1:解压tomcat的压缩包
tar -axvf apache-tomcat-8.5.40.tar.gz
mv apache-tomcat-8.5.40 /usr/local/ 移动

2:启动tomcat。、
进入到解压文件夹的bin目录下,使用指令开启服务
cd /usr/local/apache-tomcat-8.5.40/bin
./startup.sh
3: 在linux中我们使用 localhost:8080 就可以访问了.

4: 这个时候我们在windows中使用浏览器无法访问,原因是linux的防火墙对这个端口没有放行
(1)使用指令 service iptables status 查看只有22端口放行。
5: 编辑防火墙文件放行8080端口
使用指令 vim /etc/sysconfig/iptables 打开防火墙文件 放开8080端口

6:重启防火墙
Service iptables restart
7: 在windows中使用 ip和端口号就能够正常访问了.

关闭防火墙的方法为:

  1. 永久性生效,但是要重启
    开启:chkconfig iptables on
    关闭:chkconfig iptables off

  2. 即时生效,重启后失效
    开启:service iptables start
    关闭:service iptables stop

安装mysql
使用yum快速 安装MySQL数据库
1.查看CentOS下是否已安装mysql
[root@localhost ~]# yum list installed | grep mysql

2.删除已安装mysql
[root@localhost ~]# yum -y remove mysql

3.查看yum库中的mysql(非必须)
[root@localhost ~]# yum list | grep mysql

4.从yum库中的安装mysql
[root@localhost ~]# yum -y install mysql mysql-server mysql-devel

5.验证是否安装成功
[root@localhost ~]# rpm -qi mysql-server

6.启动MySql服务
[root@localhost ~]# /etc/init.d/mysqld start

7.登录并设置密码
[root@localhost ~]# mysql -u root 初始没有密码
Mysql>show variables like ‘%port%’; 查看端口号信息
mysql> show databases;
mysql> use mysql; mysql数据库中存放的是用户的信息user表
mysql> update user set password=password(‘root’) where user=‘root’;

8.开放远程登录权限
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

开放3306端口
5: 编辑防火墙文件放行3306端口
使用指令 vim /etc/sysconfig/iptables 打开防火墙文件 放开8080端口

6:重启防火墙
Service iptables restart

9:mysql服务是否正常启动

service mysqld status 查看mysql服务是否开启

Ps -ef |grep mysql 查看后台进程中的mysql状态。

Shell脚本(linux编程) startup.sh
(1)运维人员在进行服务器集群管理的时候,需要编写一下shell脚本来进行集群的管理
(2)大数据的工作人员需要编写shell脚本对数据库进行管理
Shell是一个命令行解释器,它为用户提供了一个向linux系统内核发送请求以便运行程序的界面系统级程序,用户可以通过shell脚本来启动,挂起,停止或者是编写一些程序。

1:编写shell 输出hello world
(1)Shell 脚本以 ***.sh 命名
(2)Shell 脚本的开头为 #!/bin/bash 开头
(3)赋予用户执行的权限 +x
(4)执行的时候可以是相对路径 或者是绝对路径

vim hello.sh
内容如下:
#!/bin/bash
echo “Hello World !”

:wq

chmod 755 hello.sh
./hello.sh

Linux第一天笔记

课程简介

1:linux操作系统简介

2:linux操作系统安装

3:linux操作系统常用指令

4:linux操作系统常用文件指令

复习(上线,能通过互联网-公网问)

Linux简介

1:linux是一个服务器操作系统,项目发布,(运行环境,jdk,tomcat,mysql,redis,nginx,…)环境搭建。

特点: 免费 ,开源,高效,安全,处理高并发能力很强。

Linux内核,华为小米()

2:linux的发行版(在内核的基础上进行的开发应用)

红帽 centOS Ubantu suse 红旗 (中国)

Android—》小米 华为

《鸟哥私房菜》—>初级linux(基础的linux指令)

《人月神话》 --》linux 高级应用(集群,部署信息)

VM和linux的安装

VM:虚拟机

通过vm软件在windows平台虚拟一个新的操作系统(光驱,硬盘,声卡网卡…)

虚拟化,(集群搭建),云计算:运维(linux)

必须开启:当前系统的虚拟化,否则安装失败(F** 2, **或者是F10,F1)

操作系统支持虚拟化,bios 虚拟机化开启enalbel

CentOS:linux操作系统(就是一系列的文件)

  1. (1)创建一个虚拟机

    根据windows硬件,配置虚拟机的配置。

    配置网络连接的时候选择nat方式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0D8YTQG-1576757449917)(https://word2md.com/)]

  2. (2)安装centos操作系统

网络设置和终端

1:配置网络

自动获取动态IP地址

也就是通过路由器的DHCP功能,使Linux主机自动获取IP地址。

设置方法如下:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

编辑本地网卡的配置文件

主要查看下面这两项是否和下面给出的一致即可。

ONBOOT=yes

BOOTPROTO=dhcp

第一项是确保本地网卡eth0开启。

第二项是使用dhcp,自动获取IP地址、子网掩码、网关和DNS。

然后,执行下面的命令,重启网络服务即可。

service network restart

重启网络服务,使配置文件生效

安装vmtools工具

Vmtools工具可以将windows中的文本文件拷贝到linux中,linux中的内容可以移动的windows中

安装:击安装VMware Tools 会下载到/media/VMware Tools目录下

  1. 1)在root权限将vmtools工具压缩包,解压到opt目录下

tar -zxvf /media/VMware Tools/压缩文件名-C /opt

  1. 进入解压后的文件目录(cd 目录名) cd /tmp/vmware-tools-distrib
  2. 安装文件 ./***.pl文件(一路回车) ./vmware-install.pl
  3. 重启linux,vmtools工具才能生效

文件在linux和windows之间就可以自由的拷贝了.

Linux的目录结构

Linux的文件系统采用层级式的树状目录结构,在此结构中的最上层称之为根目录,使用"/"表示然后在此目录下创建其他目录

Linux是一个文件系统,在linux中一切内容都是文件。

常用目录介绍:

/bin [重点](/usr/bin、/usr/local/bin)

bin是binary的缩写,这个目录中存放着最经常使用的 命令

cat /etc/passwd

/sbin(/usr/sbin、/usr/local/sbin)

s就是superuser的意思,这里存放的是系统管理员使用的系统管理程序

/home[重点]

存放普通用户的主目录,在linux中每个用户都有自己的一个目录,一边该目录名是以用户账号命名的。

/root 该目录是系统管理员,或者是超级权限者的用户目录

/lib 系统开机所需要的最基本的动态链接共享库,

/lost+font 这个目录一般是空的,系统非法关机后这里就会存放一些文件

/etc [重点] 所有的系统管理所需要的 配置文件** (防火墙,jdk,密码)**和子目录

/usr** [重点] 这是一个非常重要的目录, 用户的 很多 应用程序**和文件都放在此目录下类似于windeows下的program file文件夹

/boot 存放的是启动linux时使用的一些核心文件目录

/proc、/srv、/sys 这三个目录和linux内核有关的目录,他是系统内存的一个映射,访问这个目录来获取系统信息。Linux高手才会用到,普通操作者不要乱动。

/tmp 存放临时文件的目录

/dve 类似于windows的设备管理器,把所有的硬件用文件的形式存储

/media linux会自动识别一些设备,如u盘,光驱等,当识别后linux会把识别的设备挂载到这个目录下

/mnt 系统提供该目录是为了让用户临时挂载别的文件系统。

/opt[重点] 这个是我们存放安装软件的目录(jdk tomcat sogou…)

/usr/local [重点] 这个是另外一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装程序

/var 存放不断变化的文件,例如日志文件,经常更新,就放到这个目录下。

/selinux 是一个安全子系统,控制程序访问特定文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMgqe1bv-1576757449922)(https://word2md.com/)]

远程登录linux

在我们实际操作中,我们的服务器安装的linux系统,让后将项目发布到服务器上,linux服务器是没有显示器的。而且我们和服务器机房不在同一个地方,所以需要远程服务器

Xshell5 就是一个远程终端,用于登录到linux上,如果需要在linux上安装文件,我们还需要将文件远程上传到linux系统上,使用的就是xftp5

注意: 因为xshell5远程登录到linux系统,linux系统必须打开sshd服务,因为这个服务监听22号端口,如果没有开启我们需要开启这个服务。

nc -lp 23 &(打开23端口,即telnet)

netstat -an | grep 23 (查看是否打开23端口)

  1. 1)安装xshell5完成以后
  2. 2)获取当前linux的ip地址
  3. 3)使用ip进行远程连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JVgmBswH-1576757449926)(https://word2md.com/)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nwe9fzDl-1576757449928)(https://word2md.com/)]

安装文件上传工具 sftp,按照下图进行配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0C4YGAN1-1576757449931)(https://word2md.com/)]

修改sftp中文乱码问题:默认为gbk编码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Te1fwrvP-1576757449941)(https://word2md.com/)]

勾选后然后刷新就可以改变乱码了.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g0tgBU3h-1576757449943)(https://word2md.com/)]

Linux的常用指令:

1:文件和目录

  1. 1)Pwd :显示当前所在的目录
/ linux中根目录
当前的用户目录
  1. cd 切换目录 (. , …) .当前目录 …上一层目录

cd /home 进入’/ home’ 目录’

cd … 返回上一级目录

cd …/… 返回上两级目录

cd 进入个人的主目录

cd ~user1 进入个人的主目录

cd - 返回上次所在的目录

  1. ls查看目录下的文件

ls -F 查看目录中的文件 file

ls -l 显示文件和目录的详细资料(常用的查看指令)

ls -a 显示隐藏文件

ll -s 显示文件详细信息

查看文件内容:

Cat 指令 查看文件内容的指令

Cat 文件名

Cat 有效的文件路径/文件 查看文件内容

  1. 4)目录指令

mkdir dir1 创建一个叫做’dir1’ 的目录’ make directory

mkdir dir1 dir2 同时创建两个目录

mkdir -p /tmp/dir1/dir2 创建一个目录树(多个文件夹的嵌套)

rmdir dir1 删除一个叫做’dir1’ 的目录’(文件夹中没有内容的) rmove directory

rm -rf dir1 删除一个叫做’dir1’ 的目录并同时删除其内容

rm -rf dir1 dir2 同时删除两个目录及它们的内容

m_v dir1_ new_dir 重命名

5)创建文件的指令

Touch file1 创建一个叫’file1’的文件

Vim 文件名编辑文件内容后就会产生一个文件

Echo ‘内容’> 文件名 将制定内容添加到文件中,这样会覆盖文件原有内容,如果不想覆盖请使用>> 符号

Rm -f 文件名(或者是一个有效的文件目录,最终指向一个文件) 删除一个文件

Mv 文件名新文件名 给文件重命名

Mv 文件名一个有效的文件目录。将某个文件移动到指定目录中

Mv 文件的路径 文件的路径 将当前目录中制定的文件移动到目标文件中

  1. 5)Cp 复制指令

cp dir/* . 复制一个目录下的所有文件到当前工作目录

cp -a /tmp/dir1 路径复制一个目录到当前工作目录

cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2

cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中

Vi 和Vim文本编辑器使用:

Vim是从vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说,vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具

三种模式

正常模式:

以vim打开一个档案就直接进入一般模式(这个是默认的模式) 在这个模式中可以使用[上下左右]按键来移动光标,你可以使用删除字符或者是删除正行来处理档案内容,可以使用复制粘贴来处理文件数据

插入模式

按下i I o O a A r R 等任何一个字母之后才会进入编辑模式一般来说按i即可

命令行模式(底行模式)

在这个模式当中,可以提供相关指令,完成读取,存盘替换离开vim、显示行号等动作则是在此模式中打成

三种模式的切换:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H28o161v-1576757449944)(https://word2md.com/)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DNrlQmVv-1576757449946)(https://word2md.com/)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rgl3pgEk-1576757449947)(https://word2md.com/)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oAX3scxa-1576757449948)(https://word2md.com/)]

:wq 退出保存

:q! 退出不保存

  1. (1)创建一个文本文件

     Touch  文件名
    
  2. (2)使用vim指令切换不同的模式完成练习

find文件查找指令(名字)

Find指令

基本格式:语法:find [查找文件的路径] [查找条件] [处理动作]

1.按照文件名查找

(1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找

(2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf

(3)find /etc -name ‘srm’ #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串’srm’的文件

(4)find . -name ‘srm*’  #表示当前目录下查找文件名开头是字符串’srm’的文件

2.按照文件特征查找

(1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)

(2)find / -atime -2  # 查找在系统中最后48小时访问的文件

(3)find / -empty   # 查找在系统中为空的文件或者文件夹

(4)find / -group cat   # 查找在系统中属于group为cat的文件

(5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)

(6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件

(7)find / -user fred   #查找在系统中属于fred这个用户的文件

(8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)

(9)find / -size -1000k   #查找出小于1000KB的文件

(10) find /- type f|d 查找当前目录下所有文件 file directory

Grep指令(文件内容查找)

grep [options] ‘pattern’ filename

下面所列的参数主要是一些常用的参数。

option主要参数

编号 参数 解释

  1. 1–version or -V grep的版本
  2. 2-A 数字N 找到所有的匹配行,并显示匹配行后N行 after

3 -B 数字N 找到所有的匹配行,并显示匹配行前面N行 befor

4 -b 显示匹配到的字符在文件中的偏移地址

5 -c 显示有多少行被匹配到

6 --color 把匹配到的字符用颜色显示出来

7 -e 可以使用多个正则表达式

8 -f FILEA FILEB FILEA在FILEAB中的匹配

9 -i 不区分大小写针对单个字符 inorgecase

10 -m 数字N 最多匹配N个后停止

11 -n 打印行号

12 -o 只打印出匹配到的字符

13 -R 搜索子目录

14 -v 显示不包括查找字符的所有行

pattern主要参数

编号 参数 解释

1 ^ 匹配行首

2 $ 匹配行尾

3 [] or [n - n] 匹配[]内字符 [9] 1[3-5]

4 . 匹配任意的单字符

5 * 紧跟一个单字符,表示匹配0个或者多个此字符

6 \ 用来屏蔽元字符的特殊含义

7 ? 匹配前面的字符0次或者1次

8 + 匹配前面的字符1次或者多次

9 X{m} 匹配字符X m次

10 X{m,} 匹配字符X 最少m次

11 X{m,n} 匹配字符X m—n 次

12 666 标记匹配字符,如666 被标记为1,随后想使用666,直接以1 代替即可

13 | 表示或的关系

020-876643434 0755

876643434

  1. (1)创建一个文件内容为

a

bc

def

ght12

abc999

tydvl658

123

456

789abc

命令

grep --version 显示grep的版本号

grep -A 2 “a” test.txt //匹配字符’a’ 后面两行

grep -B 2 “a” test.txt //匹配字符’a’ 前面两行

grep -c “a” test.txt //在整个txt中,共有三个字符’a’被匹配到

grep --color “a” txt //匹配到的内容使用颜色显示

grep -e “a” -e “1” test.txt //查找txt中字符 ‘a’ 和字符 ‘1’

grep -i “a” test1.txt //找出所有字符’a’ 并且不区分大小写

grep -m 2 “a” test.txt //匹配2个后停止

grep -n -m 2 “a” test.txt//打印出匹配字符的行号

grep “a” * //只在当前目录查找字符’a’

grep -R “a” * //在当前目录和子目录查找字符’a’

grep -v “a” test.txt 显示不包括查找字符的所有行

grep -n ‘^a’ test.txt //匹配以字符’a’开头的

grep -n ‘33$’ test.txt //匹配以字符串"33"结束的

文件压缩和解压(必须)

打包和压缩文件:

tar -tf archive.tar 显示一个压缩包中的内容

tar -zcvf info.tar.gz a.java bb.java 创建一个gzip格式的压缩包

tar -xvf info.tar.gz -C /root 解压一个gzip格式的压缩包

tar -axvf info.tar.gz -C /root 解压一个gzip格式的压缩包

Linux用户和组的管理

1)Linux系统是一个 多用户多任务 的操作系统,任何要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统中用户名 /home

2)Linux的用户需要至少属于一个组。

3)在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。

4)linux中所创建的账号和其相关信息(密码除外)均放在/etc/passwd 文件中,linux在安装好后会默认创建多个用户,但是这些用户为linux进程用户不能登录

用户信息结构为:(使用指令 cat /ect/passwd 查看)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xRi3VJ7k-1576757449954)(https://word2md.com/)]

5)为安全起见,用户真实的密码采用 MD5 加密算法加密后,保存在/etc/shadow配置文件中,该文件只有root用户可以读取。

与passwd文件类似,shadow文件也是每行定义和保存一个账户的相关信息。第一个字段为用户帐户名,第二个字段为账户的密码。

6)用户组帐号信息保存在/etc/group配置文件中,任何用户均可以读取。用户组的真实密码保存在/etc/gshadow配置文件中。

在group中,第一个字段代表用户组的名称,第二个字段为x,第三个为用户组的ID号,第四个为该用户组的用户成员列表,各用户名间用逗号分隔

  1. 7)用户指令操作

    Useradd 用户名 (使用当前的用户名添加一个组,并将创建的用户放入到这个组中)

    Passwd 用户名为当前用户设置密码

    Userdel -r 用户名删除该账户和所有目录结构

    Passwd -l 用户名锁定账户密码 lock

    Passwd -u 用户名解锁账户密码 unlock

    Passwd -S 用户名 查看用户密码锁定状态

    Groups 查看用户属于哪个组

  2. 8)用户组操作命令

    Groupadd 组名 创建用户组

    Groupdel 组名 删除用户组(有用户的组不能删除的,空组可以删除组信息)

Useradd -g 组名 用户名 创建用户并且制定用户所属的组

gpasswd ** **** -a 用户账户 **** **用户组名 将某个用户添加到该组 add

gpasswd -d 用户账户 用户组名 将某个用户移除该组 delete

9)切换用户和操作环境

su - username #用户和操作环境都改变

su username #只切换用户不切换操作环境及环境变量不变。还可用于退出超级权限

10)用户和组常用命令

groups 查看当前登录用户的组内成员

groups 用户名 查看当前用户所在的组

whoami 查看当前登录用户名
在这里插入图片描述

文件权限

  • rw- r-- r-- root root 0 7月 20 01:03 a.java

  • 第一个字符代表文件(-)、目录(d),链接(l)

  • 其余字符每3个一组r 读 w 写 x执行 read write execute

rw-读写没有执行权利(当前的文件拥有者) tomer

r-- 读 没有写和执行的权利(和当前文件拥有者在 同一个组 的用户) root

r-- 读 没有写和执行的权利(其他用户的权利)

  • 第一组rwx:文件所有者的权限是读、写和执行
  • 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
  • 第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7 777 755 rwxr-xr-x

  • 1 表示连接的文件数
  • root 表示用户
  • root表示用户所在的组
  • 1213 表示文件大小(字节)
  • Feb 2 09:39 表示最后修改日期
  • abc 表示文件名

改变权限的命令

chmod 改变文件或目录的权限

chmod 755 ** 文件:赋予abc权限rwxr-xr-x

chmod u=rwx,g=rx,o=rx 文件名:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-x,g+w 文件名:给abc去除用户执行的权限,增加组写的权限

chmod a+r 文件名:给所有用户添加读的权限

改变所有者(chown)和用户组(chgrp)命令

chown 用户名文件名:改变abc的所有者为xiaoming change owner

chgrp 组 文件:改变abc所属的组为root

chown 用户目录:改变abc这个目录的所有者是root

chown ‐R 用户 目录:改变abc这个目录及其下面所有的文件和目录的所有者是root

改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组

usermod ‐g 组名用户名

关机、重启、注销

关机:

shutdown -h 0 #<==0秒后关机

shutdown -h now #<==现在关机

shutdown -h 10 #<==10分钟后关机

shutdown -h 23:20 #<==23:20分关机

shutdown -c #<==取消shutdown关机命令

init 0 #<==立马关机(切换运行级别为0,推荐使用)

halt #<==立马关机

poweroff #<==立马关机

重启

shutdown -r now #<==现在重启

shutdown -r 23:20 & #<==23:20分重启,加&符号代表把该命令转到后台处理

reboot #<==立马重启(推荐使用)

init 6 #<==立马重启(切换运行级别为6,推荐使用)

注销用户

logout #<==立马注销

exit #<==立马注销

清屏指令

Clear

Ctrl+l

注意:

Sync:这个指令将数据从内存中同步到磁盘上(关机和重启之前使用)

登录的时候少用管理员,可以使用普通用户登录后然后使用指令

Su -root 指令切换到管理员

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值