自学Linux

Linux简介

1: linux是一个服务器操作系统,项目发布,环境搭建。

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

Linux内核,华为 小米

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

红帽  centOS  Ubantu  suse  红旗(中国)

Android---》小米  华为

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

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

 

VM和linux的安装

VM:虚拟机

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

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

 

必须开启:当前系统的虚拟化,否则安装失败(F2,或者是F10,F12

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

 

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

(1)创建一个虚拟机

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

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

      

 

 

(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) root权限将vmtools工具压缩包,解压到opt目录下

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

2)  进入解压后的文件目录 (cd 目录名)  cd  /tmp/vmware-tools-distrib

3)  安装文件  ./***.pl 文件 (一路回车)   ./vmware-install.pl

4)  重启linuxvmtools工具才能生效

文件在linuxwindows之间就可以自由的拷贝了.

 

Linux的目录结构

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

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

 

常用目录介绍:

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

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

cat  /etc/passwd

 

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

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

 

/home[重点]

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

 

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

 

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

 

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

 

/etc [重点] 所有的系统管理所需要的配置文件和子目录

 

/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 是一个安全子系统,控制程序访问特定文件

 

 

 

 

 

 

 

 

远程登录linux

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

 

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

 

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

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

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

 

1)安装xshell5完成以后

2)获取当前linuxip地址

3)使用ip进行远程连

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

 

 

 

 

 

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

 

 

 

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

Linux的常用指令:

1:文件和目录

1) Pwd :显示当前所在的目录

/   linux中根目录

~  当前的用户目录

 

2) cd   切换目录  (. , ..)

cd /home 进入 '/ home' 目录'

cd .. 返回上一级目录

cd ../.. 返回上两级目录

cd 进入个人的主目录

cd ~user1 进入个人的主目录

cd - 返回上次所在的目录

 

3)  ls 查看目录下的文件   ----- ll

ls -F 查看目录中的文件

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

ls -a 显示隐藏文件

  ll -s  显示文件详细信息

 

查看文件内容:

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

Cat  文件

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

 

4) 目录指令

mkdir dir1 创建一个叫做 'dir1' 的目录'

mkdir dir1 dir2 同时创建两个目录

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

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

 

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

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

mv dir1 new_dir 重命名

 

5)修改文件的指令

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

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

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

 

 

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

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

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

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

  

5) Cp 复制指令

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

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

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

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

 

Vi 和Vim文本编辑器使用

进入编辑页面想退出:

Esc 》》》 shift+: 》》》q

 

正常使用

Vim  /usr/local/a001/b003/mm.txt

I  (开始编辑)

Esc 》》》 shift+: 》》》wq

 

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

 

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

 

三种模式

 

正常模式:

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

 

插入模式

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

 

命令行模式 (底行模式)

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

 

三种模式的切换:

 

 

 

 

 

 

 

 

 

(1) 创建一个文本文件

        Touch  文件名

(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   # 查找在系统中属于 groupcat的文件

(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:KBM:MBG:GB)

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

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

Grep指令(文件内容查找)

grep [options] patternfilename

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

option主要参数

编号 参数 解释

1 --version or -V grep的版本

2 -A 数字N 找到所有的匹配行,并显示匹配行后N

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

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

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

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

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

8 -f FILEA FILEB FILEAFILEAB中的匹配

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

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

11 -n 打印行号

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

13 -R 搜索子目录

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

 

pattern主要参数

编号 参数 解释

1 ^ 匹配行首

2 $ 匹配行尾

3 [ ] or [ n - n ] 匹配[ ]内字符

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 \| 表示或的关系

 

(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 -zxvf  info.tar.gz -C  /root  解压一个gzip格式的压缩包 Linux用户和组的管理

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

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

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

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

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

 

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

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

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

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

7) 用户指令操作

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

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

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

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

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

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

   Groups  查看用户属于哪个组

8)用户组操作命令

   Groupadd 组名  创建用户组

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

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

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

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

 

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执行

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

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

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

 

第一组rwx:文件所有者的权限是读、写和执行

第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

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

- 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

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 #<==2320分关机

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

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

halt #<==立马关机

poweroff #<==立马关机

 

重启

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

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

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

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

 

注销用户

logout #<==立马注销

exit #<==立马注销

 

清屏指令

Clear

Ctrl+l

 

注意:

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

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

Su -root 指令切换到管理员

 

 

 

posted @ 2020-10-27 15:53  master_hxh  阅读(234)  评论(0编辑  收藏  举报