随笔 - 26,  文章 - 0,  评论 - 0,  阅读 - 23812

视频课程老师博客:

http://oldboy.blog.51cto.com

https://www.oldboyedu.com/

linux操作系统镜像下载地址:

https://www.centos.org/         -----centos的官网

https://mirrors.aliyun.com/      ----阿里云下载

==============================一、 Linux操作系统的安装配置、调优及安全设置===============================================

1 安装centoslinux系统:

 安装详细过程请百度搜索。

 linux在虚拟机上安装centos6.7系统分区的基本要求:

 1)要至少有一个根(/)分区,用来存放系统文件及程序。其大小至少在5GB以上,平时自己安装使用创建的文件的都在该目录下。

2)要有一个swap(交换)分区,它的作用相当于windows里的虚拟内存,swap分区的大小一般为物理内存为8G或小于8G,分区配置8G。但当系统物理内存大于8GB时,则swap分区配置8~16GB即可,太大无用,浪费磁盘空间。

3)/boot分区,这是Linux系统的引导分区,用于存放系统引导文件,如Linux内核等。该分区推荐可以设置512MB,最低空间可以设置成256MB。这个分区也是必须的。

系统分区详解:

硬盘使用前----进行分区-------格式化(创建文件系统)------存放数据

类似于:房子使用前-----进行隔断----装修,买家具--------住人

一块硬盘分区:

主分区、扩展分区、逻辑分区

主分区+扩展分区的数量<=4,其中一个主分区可以用一个扩展分区替换,扩展分区最多只能一个或者没有。

扩展分区不能直接使用,还需要再上面创建逻辑分区,逻辑分区可有多个。

主分区+扩展分区  编号只能1-4,逻辑分区的编号只能从5开始。

(1)常规分区:

/boot     主分区(引导分区)。

swap     交换分区      物理内存小于8G就分8G,物理内存8G,就分8G-16G.

/         根分区,Linux所有目录顶点   剩余所有空间。

(2)数据重要(数据库、存储服务器): 

/boot     主分区(引导分区)。 

swap     交换分区      物理内存小于8G就分8G,物理内存8G,就分8G-16G。

/       根分区,Linux所有目录顶点,100-200G。

/data     存放数据,其他所有空间。 

(3)特大网站,门户(产品线特别多,需求,如淘宝等大型网站): 

/boot     主分区(引导分区) 。 

swap     交换分区      物理内存小于8G就分8G,物理内存8G,就分8G-16G。 

/       根分区,Linux所有目录顶点,100-200G。

剩余空间不分配,哪个部门领到服务器,根据需求再进行分区。

磁盘分区命名及编号方式

(1)以设备名命名

在Linux系统中,磁盘设备对应与系统中的特殊文件,这些特殊目录中,不同的设备对应的设备名称如下:

 (2)使用数字编号

 为了表示不同的分区,通常会用数字进行编号。

需要注意的是,在对分区编号时,数字1-4只能留给主分区或扩展分区使用,逻辑分区(是在扩展分区基础上的)编号只能从5开始。

在对Linux系统设置了分区之后,还要在分区上创建文件系统(格式化)才能安装系统,这个在安装时由系统自行完成创建。

 

 2配置网卡

1)在Linux命令行输入setup 回车进入配置网卡界面;

2)操作如下

整个配置过程依次为:执行setup命令→network  configuration→device configuration→eth0→配置完依次点击“OK”→“save”→save&quit→quit,这样就退出到命令行界面了,

最后在输入ifup  eth0启动网卡即可,该配置实质就是修改网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0内容。

查看ip地址:ifconfig

 用本地cmd去ping虚拟机IP拼通即可。

查看网卡配置:cat  /etc/sysconfig/network-scripts/ifcfg-eth0 

 注:网卡配置中的ONBOOT=no,每次重启电脑或开机需要通过ifup  eth0来重启网卡,所以需要改为yes。

 

3. 安装完成Linux后调优及安全设置

3.1关闭SELinux功能

SELinux是美国国家安全局对于强制访问控制的实现,这个功能让系统管理员又爱又恨,这里还是把他关闭了。至于安全问题后面通过其他手段来解决,这也是大多数生产环境

的做法。如果非要开启也是可以的,但是这里我们把它关闭。

更改之前可先把之前的文件进行备份

cp   /etc/selinux/config   /etc/selinux/config.ori    -------------同目录下备份config文件,后面的是备份路径

 更改SELinux的状态方法1:

输入vi  /etc/selinux/config ,输入 i 光标移入enforcing,把enforcing改成disabled。按“esc”退出输入。然后直接输入 : wq 回车,进行保存。(若是不保存输入 :q!回车直接退出)

更改SELinux的状态方法2:

  注意!!!

上图已经把文件中的SELinux已经改成disabled了,一般更改文件后需要重启服务器才会生效,所以即使文件中已经改成功了,系统中还是没有生效。但是一般工作中的Linux服务器的服务多,使用比较多,重启太慢,影响正常使用,所以最好不要重启,可以用setenforce设置SELinux的方法把系统中未生效的信息设置成permissive(与disabled状态相同都有关闭的意思),重启后disabled生效。 

 

3.2 关闭防火墙

 /etc/init.d/iptables   stop         -------临时关闭防火墙,重启服务器防火墙会重新打开

/etc/init.d/iptables    status      ---------查看防火墙的状态

chkconfig iptables   off         --------永久关闭防火墙,重启电脑也不开

4.隐藏Linux版本信息

在登录到Linux主机本地(非CRT连接的窗口)前,会显示系统的版本及内核信息。防止版本信息暴露,可通过该版本的漏洞攻击服务器。为了保险起见,可通过下列命令。如下图:

 cat   /etc/issue      或者       cat   /etc/issue.net        ---------查看系统版本和内核信息

          > /etc/issue          或者           > /etc/issue.net          ---------------清空文件中的版本信息和内核信息(不要删除文件,删除文件可能导致故障,清空文件的内容可能不会产生故障。)

 5 系统的运行级别及作用

 把系统的不同状态(级别)用数字表示。

cat    /etc/inittab        ------查询系统运行的级别(1-6 七种级别模式)(只能查看不能修改系统的运行级别)

runlevel        ------查看当前运行级别

最常见的切换运行级别: 

init  0       -------- 关机  

shutdown  -h  now         --------关机

halt        --------关机

init   6     ----------重启

reboot       ------重启

shutdown  -r   now      ----------重启

     表示    “Linux关机了”。

     表示   “单用户状态 ,Linux系统出问题了,维护时需要使用单用户(如:系统用户root密码丢了,需要找回)” 

2      表示   “没有NFS(网络文件系统)的多用户模式(Linux可同时很多用户远程连接)”

    表示  “完整的多用户模式(当前我们使用的命令行的模式),工作中常用的级别”

   表示 “ 暂时保留的 ”

5     表示 “桌面模式”

   表示 “重启模式”

  =======================================二、Linux客户机远程服务(器)故障排查思路==================================

 1.客户端连Linux服务器连不上可能原因

ping   192.168.121.23    (客户机拼服务器的地址)

不通可能原因: ip拼的不对;网线松动;防火墙未关。

 2.本地电脑连服务器上的服务

/etc/init.d/iptables   stop       ----------阻挡防火墙开通(关闭防火墙)

netstat   -lntup|grep  22      (等于netstat   -lntup|grep  sshd )    ------查看端口是否开放(以ssh服务端口为例)

/etc/init.d/sshd   restart       ---------重启sshd服务。若22(sshd)端口没有开放,可用此方法重启

 例:telnet   192.168.23.128   22     (客户机测试服务器上的服务是否正常,IP和端口)

不通可能原因: 服务器端防火墙阻挡;  端口没有开放,服务器端没有对应的服务。

客户端ssh工具:Securcrt,xshell,putty     --------默认的端口号都是22

服务器端的ssh服务:进程名sshd;对应服务器的软件:【openssh(连接),openssl(加密)】

 

 

 =====================================三、 linux命令整理:====================================

 ====================说明:1、创建;2、查看;3、修改;4、拷贝;5、删除;6、其他;7、常用的快捷键========================

Linux中‘目录’和‘文件’这两个名字的区别 

‘目录’相当于windows系统中的文件夹; 

‘文件’相当于windows系统中文件夹中创建的文件(例test.txt)。

首页:创建Linux普通用户、修改用户密码

useradd   hbxgril     -------创建用户useradd

tail  -1   /etc/passwd        ----------查看刚创建的用户

passwd   hbxgril         --------给用户hbxgril修改密码

su    -     hbxgril         -------切换到hbxgril用户(-和用户名中间有空格)

echo   '123'  |passwd     --stdin   hbxgril        ------修改密码的另一种方式(|是管道,把前面的123密码通过  |   传给passwd,然后通过  --stdin接受传过来的passwd作为用户hbxgril的密码)

注意注意!!!root用户在输入信息的时前面命令提示符是 #,普通用户命令提示符前是 $ 符号。

 1 创建目录/文件

1 .1 创建目录(相当于文件夹)

mkdir /data    创建data目录

mkdir  -p      连续创建两级或两级以上的目录       例:mkdir -p /data/mak  -----创建了data和data下的mak两级目录

查看目录  ls -ld /data        ------创建完可查看目录(ld可查看目录的详细信息) 

 cd  /                  ------------切换到根目录 

cd   /data                       ----------切换到data目录

mkdir  data            -------------先切换到根目录在直接创建data目录,表示在根目录/下创建了一个data目录

cd /; mkdir data                 ----------先切到根目录,在到根目录创建data目录,这里;作用是把两个命令在一行分隔开 

cd ..              ---------退回到上级目录 

cd .              ---------当前目录 

1.2 创建文件(相当于创建的文本文档、word文档等带后缀的文档) 

touch    创建文件、改变文件的时间戳

-a         改变文件的访问(access)时间

-m        改变修改(modify)时间   (access时间或者modify时间改变,change时间也会改变)

例: touch   /data/oldboy.txt          ---------------创建文件 

: touch  -a    /data/oldboy.txt           -----------改变文件的时间(access时间)戳

例: touch  -m   /data/oldboy.txt           -----------改变文件的时间戳(modify时间)

  在目录中创建多个文件

 方法1 : 

touch  /data/stu{1..5}          --------在data目录下创建5个stu文件(若创建的文件已经存在,那么就只更新这个已经存在的文件的时间;文件不存在就创建文件) 

ls  /data           --------查询data目录下创建的文件 

 

方法2: 

 1.3创建的文件中添加内容 

vi    windows记事本,简单 。             例:vi oldboy.txt    ----在文本中添加内容。 

vim     复杂编辑器。  复杂功能,可以高亮,自动缩进功能(写shell,python脚本用) 

 方法1 

步骤:vi  oldboy.txt    ----编辑oldboy.txt文档 

点击回车 →按  a  或者是  i  →输入要添加的内容 →内容输入完成点击 esc →最后输入  :wq  完成保存。 

若是不想保存最后可输入  :q! 强制退出。

cat  oldboy.txt       ---------查看oldboy.txt文档中添加的内容 

 

*****方法2(直接创建文件并在文件中添加内容):

echo  打印输出内容。      例 :  echo $pwd       --------------打印出变量$pwd的值。

echo 配合 ‘>’  ‘>>’ 可以为文件覆盖及追加内容。(‘>’意思是重定向,会清楚文件里所有以前的数据;“>>”为追加内容,只在文件尾部追加需要的内容),

还有个较复杂不常用的类似命令printf。

例1:echo ‘oldboy’>oldboy.txt   --------是在文件oldboy.txt文件中添加内容,没有该文件时创建文件并写入内容,有该文件时,现在输入的内容会覆盖之前的内容。

例2:echo ‘oldboy’>>oldboy.txt   --------是在文件oldboy.txt文件中添加内容,没有该文件时创建文件并写入内容,有该文件时,现在输入的内容会追加在之前文件里内容的后面。

echo  'I am studying linux' > /data/oldboy.txt      ---------添加文件并插入内容

注意:‘>’  的意思是data目录中没有oldboy.txt文件时创建该文件并写入内容,有文件时只在该文件中添加内容,且添加的内容是覆盖之前的内容。 

 

echo  'I am a student'>>/data/oldboy.txt       -----------添加文件并插入内容 

注意:‘>>’  的意思是data目录中没有oldboy.txt文件时创建该文件并写入内容,有文件时只在该文件中添加内容,且添加的内容是在之前的内容后添加,不覆盖之前的内容。 

 *****方法3 (直接创建文件并添加内容) 

1.单行加入内容 

cat >oldboy.txt           --------如果有这个文件就只往这个里面添加内容,‘>’ 表示会覆盖之前文件中的内容,如果没有就会创建该文件会创建该文件写入输入的内容,之前的内容被覆盖。然后ctrl+d或ctrl+c保存。 

 2.可多行加入内容 

cat >>test.txt <<eof 

test 

liyao 

oldboy 

eof 

 ----------如果有这个文件就只往这个里面添加内容,‘>>’ 表示会在这个文档中追加输入的内容,如果没有就会创建该文件追加输入的内容,之前的内容不会被覆盖。ctrl+d ctrl+c 保存。

注意:’eof’  是成对存在,任何字母都可以,只要是成对存在的。

 

特殊符号介绍:

 (‘ 或 1> ’;’ >> 或 1>> ’;’  0< < ’;‘ 0<< << ’) 箭头指向的方向是数据流向。 

 >  1>   输出重定向   把前面输出的东西输入到后边的文件中,会清除文件原有内容。 

>> 或 1>>   追加输出重定向  把前面输出的东西追加到后面的文件尾部,不会清除文件原有内容。 

0<   输入重定向   输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名。

0<< <<  追加输入重定向  后面跟字符串,用来表示‘输入结束’,也可以用ctrl+d 来结束输入。

 2>  错误重定向    把错误信息输入到后边的文件中,会删除文件原有内容。

2>> 错误追加重定向  把错误信息追加到后面文件中,不会删除文件原有内容。

例:echo  '1 2 3 4' >oldboy.txt       ----- 在文件中插入内容

xargs -n 2 <oldboy.txt       -------给文件中的内容分组,两个一组

 

 重要:

需求:文本中添加内容,命令正确输入内容,命令错误在文件中输出错误日志。

方法1: (表示命令错误)

 

方法2   >&或2>&

 

 命令正确可输出正确的内容,命令错误时“2>&”表示报错的日志输入到1(a.txt)的文件中去

方法3   &>

  

1.4 在文件中添加序列

seq  = sequence  序列

例:seq 10       -----从1到10         

seq  3  10   -------从3到10

seq   1  3  10   --------从1到10 每数之间间隔是3

seq  -s   "   "   10         ----------横着一行打印,从1打印到10(-s是可以指定分隔符)

  

  2 查看目录、文件信息

2.1查看文件中添加的内容

cat  查看文件内容            例子 :    cat oldboy.txt       ---------查看oldboy.txt文件中的内容

 

 2.2查看目录、属性

ls  =list(列表)    列出目录        例子: ls /       --------列出(查看)根目录下的目录

 

 ls       -l(long) 长格式,带属性         例子:ls  -l/      ------列出根目录文件的详细信息文件

   -d  (directorys)    查看目录       

   tree  -d  /data    -----以树状图的形式列出data下所有的目录(类似   ls  -d的使用)

  -a    查看目录中的隐藏文件      例: ls  -a   /data    -------列出data目录下所有的目录、文件和隐藏文件(-a是包含隐藏文件一起显示)

  tree  -a  /data      是以树状图的形式列出data目录下所有的目录、文件和隐藏文件(-a是包含隐藏文件一起显示)

  

 -------上图是列出根目录下级所有目录的详细属性信息

ls  -l   /data 和ls  -ld   /data 命令的区别如下:

ls   -l   /data 是列出/data文件下所有的文件详细属性信息;

ls    -ld   /data  是列出/data这个目录的详细属性信息。

 

 2.3 查看当前所在的目录 

pwd       查看当前所在的目录详细路径;

pwd    -L     查看当前目录所在的详细目录;

pwd  -P     查看当前目录所在的详细目录。

 

*****2.4 find 查找(结合5.3中删除的笔记看)

find  查找  

-type 文件类型(f(file文件类型),d(directory目录),c(character字符串),b(block块、磁盘设备),s(socket通信),l(link链接))

-name   文件名

-mtime  时间  ----按修改时间查找,时间数字(+7代表七天前,7代表第七天,-7表示最近七天)

     除了....外、非的意思

-o    =or  是或者的意思

-a  =and   是并且的意思

例:find   /   -type   f   -name   'tte.txt'           ----------查看tte.txt文件所在的详细目录   

 

 -----xargs搭配用法(xargs是个不错的命令,有机会可以总结)

find  /data  -type   f   -name  "*.log"     -mtime   +15     |xargs   rm   -f           -------查找/data目录中以.log结尾的日期在15天以前的文件,并删除(-type f 类型是文件 ,-f是删除文件)

find    /data   -type    d   -name    "*oldboy"   -mtime   +30  |xargs    rm  -rf     -----查找/data目录中以oldboy结尾的日期在30天以前的目录,并删除(-type  d 类型是目录,-rf是删除目录)

说明:  |  (竖线),相当于从左边进右边出,把左边的信息传给右边。 |xargs 是把左边的命令的结果通过 |  这个管道,xargs汇成一条数据, 传递给右边的命令执行。

注意:| 和   |xargs的区别,如下图  (cat  /data/lls   /data/lass.txt表示查询两个文件中的内容)

 

 2.5 查看文件中的部分内容(head用法)

head 首,头        例 : head -2 text.txt  ---读取文件的前2行

                             例:head  text.txt ----不加默认是读取前10行

 

 2.6查看文件中的部分内容(tail用法与head用法向对应) 

tail 尾部,末尾     例:tail -2 test.txt   ------读取文件的最后2行

                                     例:tail test.txt    -------默认读取文件的后10行 

*****2.7过滤文件中的部分内容(grep用法-----三剑客之三)

grep  -v    --------排除(过滤掉)(-v表示排除的意思)

grep     ------过滤出内容(包含)

 

2.8 查看文件中间部分内容

 需求:查找文件ett.txt(50行)内,前20到30行的内容。(结合1.4的seq内容查看)

seq 50 >ett.txt    ------创建文件,插入50行的信息

方法1:(比较low的方法)

 head  -30  ett.txt  |tail -11               -------head 是取前30行,tail是取后11行

 *****方法2:  (sed方法----重要【三剑客之二】)

sed  =  stream editor   流编辑器,可实现对文件的增、删、改、查、替换

(1)sed当作查看的方法:

sed   '20,30'p  ett.txt       ----------该命令是输出ett.txt文本中所有的信息,不是输出20到30行的信息

sed    -n    '20,30'p   ett.txt        ---------该方法最有效率 (-n  是取消默认输出,按照规格打印出20到30行的信息; p(print)是打印的意思)

sed   -n   '$'p   ett.txt           ------$表示最后一行。   

ifconfig  |  sed    -n    '2'p       ----显示IP地址信息的第二行信息

(2)  sed当作替换、修改的方法(替换一个文件中的信息):

g         与s联合使用时,表示对当前行全局匹配。

s         常说的查找并替换,用一个字符串替换成另一个。

-e        允许多项编辑。

-i          修改文件内容。

sed   's#oldgril#zhangsan#g'  old.txt               ------------改方法是替换输出的内容(s表示替换;g表示全局替换;3个#是分隔符也可用其他符号表示,一般可以用 # 或 / 或 @等,前面是文本中的要替换的内容,后面是替换后的 内容),不加-i是命令行的内容输出时内容有更改,文件中的内容没更改

sed   -i   's#oldgril#zhangsan#g'  old.txt         -------------(加了-i 是更改old.txt文件中的内容)

 

 

 (3)   sed当作替换、修改的方法(替换多个文件中的信息):

 需求:把oldboy目录及子目录下所有以扩展名 .sh结 尾的文件中包含oldoldboy的字符串全部替换为younggril。

  

 

 

 另一种替换内容方法:

sed   -i  's#oldoldboy#younggril#g'  `find /oldboy -type f  -name '*.sh'`    --------`这个符号是键盘右上角和~一起的那个`(点号),表示先执行``(两个点号里面的内容)

  *****方法3:(awk  三剑客之首)

awk    过滤、输出内容,一门语言 

NR   代表行号

 是赋值

==  是等号 

扩展:

例:将/data/oldboy/oldboy.txt文档中的内容inet addr:192.168.198.128  Bcast:192.168.198.255  Mask:255.255.255.0通过过滤只输出如下内容:192.168.198.128   192.168.198.255  255.255.255.0

 

解析awk语句:-F是指定域的分隔符;  [  :] 括号中是空格和:(冒号)表示通过空格和冒号进行分割;[ :]+因为指定了空格和冒号两个分隔符(或者多个分隔符),所以需要+进行连接;{}中的内容,print是指定打印的内容;$加数字是把通过分隔符分割开的内容进行需要的打印出来,$3是分割的第三个内容;最后是指定的文件。

 方法4:(可结合2.7的grep来查看)

 -B      除了显示匹配的一行之外,并显示该行之前的n行

-A      除了显示匹配的一行之外,并显示改行之后的n行

-C    除了显示匹配的一行之外,并显示改行之前后各n行

 

 2.9 树状图查看创建的文件目录及yum的用法

tree    -a       显示隐藏文件

          -d       只显示目录

          -L        显示几级      例:tree   -L    1  /oldboy        -----显示oldboy目录下的一级目录和文件

         -dL      只显示目录的几级     例:  tree  -dL  1  /oldboy      -----------只显示oldboy目录下几级的目录

         -f        为每个目录显示完整的路径          例:tree  -dLf    2  /oldboy      ------只显示oldboy目录下几级目录的完整路径

         -i        去掉树状图前面的横线           例: tree    -dLfi    2  /oldboy      ------只显示oldboy目录下几级目录的完整路径(树状图没相连的短横线)

         -F     区分文件和目录       例: tree   -F   /oldboy     ------区分oldboy目录下的文件和目录

 

  例:tree  /data           --------是以树状图的形式列出data目录下所有的目录、文件>

例:tree  -a  /data      -------- 是以树状图的形式列出data目录下所有的目录、文件和隐藏文件(-a是包含隐藏文件一起显示)

例:tree  -d   /data     ---------树状图的形式展示data目录下的所有目录

--------下图左,创建多级目录可以用 tree  /data 查看创建的多级目录,如出现上述提示是系统未安装该 tree 软件,

可通过以下步骤来安装该程序:

安装tree步骤(前提是有网的条件下):

  1. ping  Baidu.com              --------拼一下该电脑是否能上网(若联网可以执行下列语句进行安装tree软件【输入该命令会一直连baidu,使用ctrl+c停止ping】)
  2. yum install tree -y              --------下载安装tree这个软件包(-y)就是直接安装不提示

安装完成tree后可查看data的层级目录:

tree /data/           ----------查询data目录,用树状图的形状展示目录和文件

LANG=en            -----------若查询的目录存在乱码,可调整字符集显示英文字符集(严格区分大小写)

3 .yum update     -----------该命令是更新系统的补丁。

4 .yum  install  lrzsz  telnet  tree  nmap  nc   -y      ----------(下载安装 lrzsz 上传下载工具包(sz是下载命令,rz上传命令); 前提是在Linux服务器联网的情况下进行安装)

  

2.10  man 查看所有命令使用方法

 man cp       -------查看cp这个方法是怎么使用的(如果忘记某个方法的使用可以使用man加方法名来查看),结束查看需要输入 :q 结束。

         cp    --help      -------该方法和man  cp 方法相同。

        help  cd         -------部分内置命令需要这样查。(cd命令的使用用man  cp或者是cd  --help无法查看,因为cd是系统内置命令)。

百度如果要搜索该cp的使用方法时,搜索Linux的cp命令,需把Linux带上。

2.11    which 查看命令路径的命令

which   cp       -----查询命令的路径

  2.12   date 查看系统时间

date     -----查看系统时间

date   -s   10:11:01        --------修改系统时间,时分秒。 

date   -s    "12/25/2023    23:13:05"     -------修改时间,年月日,时分秒

2.13  stat查看文件的属性(包括文件大小,创建时间,修改时间等详细信息)

Access:访问时间

Modify:修改时间

Change:更改时间

 

2.14  history查看历史命令

history     -----查看历史命令

!3        -------调用历史命令中的第三个命令

history   -c          ------清空历史命令

history  -d  5       --------只清除第五条的命令

ecport  TMOUT =10           -------- 连接的超时(10是10秒)(临时生效,重启后就失效)

export   HISTSIZE=5         -------显示命令行最近的5条记录(临时生效,重启后就失效)

export    HISTFILESIZE=10       ----------命令行命令对应文件的记录数~/.base_history(临时生效,重启后就失效)

改为永久生效:

echo  'export   TMOUT=300'  >>/etc/profile

echo  'export   HISTSIZE=5'   >>/etc/profile

echo  'export   HISTFILESIZE=5'   >>/etc/profile

source   /etc/profile       --------------三个命令是把命令添加到文件中,但要重启服务器才生效,不重启服务器,就需要使用该命令立刻生效

 

 

3.修改文件内容(分组)

xargs用法:

xargs 从标注你输入获取内容创建和执行命令  -n   数字(表示分组),该方法只支持空格才能进行分组换行,其他都没用。

 

 

 4.拷贝/移动 目录、文件

4.1 拷贝文件

cp =  copy   拷贝文件或目录          例:cp   oldboy.txt     /tmp/      ---------把data目录下的oldboy.txt文件拷贝到tmp目录下

 

 4.2 拷贝目录 

cp  -r 或者 cp  -a     拷贝目录

-r   递归,用于拷贝复制目录及目录下所有文件(与Windows拷贝一样目录的结果一样)

-a   相当于pdr ;

 -p  连同档案的属性一起复制过去,而非使用默认属性。

例:cp  -r   /data   /tmp/     -----------拷贝data目录及目录中所有文件到tmp目录下。

 

 4.3拷贝文件覆盖同名文件 

 

 方法1:

  \cp   /am/test.txt    /data/           -----------am目录下的test文件替换data目录下的test文件(cp前加\,该命令直接进行替换不提示是否替换)   

方法2:

/bin/cp  /am/test.txt   /data/          -----------同方法一作用相同一样的作用(/bin/cp是加的命令cp的全路径)

方法3

cp   /am/test.txt    /data/            --------该命令有是否替换的提示信息

 

 4.4移动目录、文件(移动到另一个目录下,之前的目录没有了)

mv   移动目录

 

 5.删除目录、文件

5.1 直接rm删除文件(容易误删,友情提示删除目录或者文件之前请谨慎,删除无法恢复)

rm = remove      删除的意思

rm 和 rm -f  都是删除  (rm删除有提示是否删除,rm -f 删除直接删除没有提示)

删除一个文件:

例1: rm -f /data/oldboy.txt     ---- ------删除oldboy.txt文件

 

 例2   rm  /root/data/a.txt        ----------删除root目录下data目录下的a.txt文件

 

 删除多个文件:

:rm  -f   /data/1.txt    /data/2.txt   /data/3.txt

 

 5.2 直接rm删除目录(容易误删需谨慎)

rm   -fr     删除目录的语法

  

5.3 find查找,然后删除(结合4.4笔记一起看,两者密不可分)

find  查找删除一个文件

例1:

find  /data  -type   f   -name   'oldboy.txt'   -exec   rm   {}   \;             ----------查找data目录下类型(-type)为文件(f)、姓名(-name)为oldboy.txt的文件,然后执行(exec)删除(rm),

{}表示找到的内容,\是固定搭配。

 

 find 查找多个文件,同时进行删除

 例2:

fing  /data -type  f  -name  '*.txt'  |xargs  rm -f

 

6.文件的上传和下载

上传下载的是针对文件的,不能是目录,要是要下载目录,需先压缩成zip的压缩包。

传输文件除了rz、sz进行上传下载,还可以通过ftp、sftp(SSH服务)、winscp等工具来传输文件。

yum install lrzsz  -y     --------安装上传、下载的包(rz是上传,sz是下载,-y是不提示直接安装)

6.1文件上传

 cd    /oldboy     --------文件上传到那个目录下就先进入哪个目录

 rz               ----------输入rz(上传),回车就可以选择上传文件了

 rz   -y      -------------覆盖之前同名文件。(上传的文件覆盖之前的同名文件)

 

 6.2 文件下载

 sz  文件名      ------下载文件到客户机 

sz     -y    文件名         ---------下载文件直接覆盖本地之前的同名文件

  

 7.其他

7.1 别名使用alias和unalias使用

alias 查看和设置别名           例:查看别名直接输入alias

unalias 取消别名

说明:为了防止用户误操作,所有centos linux系统在设计时,默认执行cp的操作是调用了cp的别名(相当于执行cp -i).所以提示覆盖。cp命令默认是不会提示覆盖的,但是cp带-i 参数执行时会提示,这样在linux下输入cp命令实际上运行的是cp  -i,加上一个 / 符号或者写cp全路径/bin/cp就是让此次的cp命令不使用别名(cp  -i)运行。

 

 分享别名的困惑及解决技巧

https://blog.51cto.com/oldboy/699046

 8 常用的快捷键

 命令或路径补全:输入一个命令的首字母,按 三下  ‘tab’ 键,会显示所有首字母开头的命令单词;输入命令的两个或以上,按一次  ‘tab’  键会补全命令。(如果tab 不到路径命

令,就代表没有这个路径或者命令,还有可能权限不够。

ctrl + c    终止当前任务命令或程序。

ctrl + d  退出当前用户环境。相当于exit 或  logout

ctrl + l  (字母是L)  清理当前屏幕上的所有命令。相当于 clear  命令。

 ctrl + shift  + c     linux命令中的复制。

 ctrl + shift  + v      Linux命令中的粘贴。

ctrl + a    光标到一行命令开头,相当于 home  快捷键。

ctrl   + e   光标到一行命令结尾,相当于  end 快捷键。

ctrl  + u     清除光标前所有输入的命令(前提是在一行里面) 

ctrl + k    清楚光标后所有输入的命令(前提是在一行里面)

ctrl  + r   搜索(搜索今天使用过的命令按ctrl + r后输入一下就出来了)

ctrl + s   挂起(按此快捷键后,命令行无法进行输入了)

ctrl + q  解除挂起(按此快捷键后,就解除挂起可以输入命令了)

ctrl + w  清楚当前行所有的命令

uname  -m   查看Linux系统是多少位的

cat    /etc/redhat-release    查看操作系统 的版本

uname  -r   查看内核

 

 =====================================四、Linux创建快照和克隆===========================================

 1、快照的作用 (虚拟机上的操作)

快照相当于节点备份,在一个时间段创建快照,该时间段之前对系统进行的所有操作(如增删改查等操作)操作都包含在该节点的快照中,若在创建快照这个时间段之后对系统中的文件进行了其他操作(如增删改查),想回到该节点之前时,可以通过快照的方式实现。

例: 在系统中创建了一个文件,之后增加了快照,后来误删除了创建的文件,此时需要恢复文件,就可以返回到快照的这个节点就行了。 

 2、克隆CentOS

2.1克隆步骤如下截图

 

     2.2  克隆完成需配置IP地址

 注意!!!克隆的系统和之前的一样,但是网络会有问题,查找不到IP地址。

 

 克隆机器设置IP地址的步骤:

  vi   /net/sysconfig/network-scripts/ifcfg-eth0             ----------修改IP地址的文件

 删除文件中的两行内容有两种删除方式:(1)光标移到要删除的那行,然后输入 dd  进行删除,在输入 :wq  进行保存回到命令行。

(2)输入 i   选中要删除的行删除,在点击  tab  ,最后输入 :wq  进行保存回到命令行。  

> /etc/udev/rules.d/70-persistent-net.rules               -----------清空文件的内容(记录主机中所有网卡的MAC地址)

ifup  eth0        - -------查看网口是否已好,目前没有成功,需重启

reboot             -------重启克隆服务器

ifconfig             ------重启后查看IP成功

2.3 删除克隆服务器

 

 ================================五、Linux系统的目录结构介绍==============================================

 linux 目录的特点:

1、 / (根)是所有目录的顶点;

2、 目录结构像一颗倒挂的树;

3、目录和磁盘分区是没有关联的;

4、/ (根)下不同的目录可能会对应不同的分区或磁盘;

5、所有的目录都是按照一定的类别有规律的组织和命令的。

Linux里设备不挂载是看不到入口的,如果希望设备被访问,就必须给这个设备一个入口,这个入口就叫做挂载点,挂载点的实质是一个目录

 mount           -------挂载文件命令

df    -h            ----------查看挂载分区

fdisk     -l         ----------查看磁盘分区(-l是L的小写)

 cat    /etc/fstab           ----------查看系统默认配置的挂载目录

光驱也是一种设备     /dev/cdrom  (设备的路径和(cdrom)光驱设备名)

cd    /dev/cdrom      -------进入光驱设备路径

ls     /dev/cdrom        -------查看光驱设备路径

mount    /dev/cdrom   /mnt           ----------把光驱设备路径挂载到mnt目录下

 虚拟机挂载文件详细步骤如下:

虚拟机挂载CentOS的安装包(安装包是一个IOS的镜像文件),一般在系统中安装软件,都是从安装包的IOS镜像文件中安装的,IOS的安装包一般都包含的Linux系统的绝大部分软件。所以在网上一般没有Linux系统的单独完整的安装包,只有挂载操作系统的安装包然后从系统安装包中去安装需要的软件。

 步骤1:

 

步骤2:

 下图命令,在没有挂载IOS镜像文件的操作系统的光盘时,查看不到挂载分区、查看不到磁盘分区、进入不了设备分区路径,但是只能查看光驱路径。

 步骤3:

 对光驱设备进行挂载。

 mount     /dev/cdrom     /mnt      --------把光驱设备挂载到mnt目录下

 

 ==============================================六、Linux目标结构标准========================================================

 1、Linux目录层次标准(FHS)

 Linux目录层次标准是Linux目录规范标准。 

目录层次标准文档(FHS2.2 pdf 和FHS2.3 pdf):https://www.pathname.com/fhs/

 FHS定义了两层规范:第一层  是 ‘/’  根目录下的各个目录应该放什么文件数据。例如:/etc 目录下放置系统的配置文件(如:/etc/exports;/etc/hosts),而 /bin和 /sbin 放置程序及系统命令。

第二层  是针对 /user (第二层次标准)和  /var 这两个目录的子目录来定义。例如: /var/log  下放置系统日志文件等。      提示:/var   分区单独分出来,硬盘足够大,我们都有监控,剩余20%会报警。

 2、  / 根目录结构

 2.1   /bin目录

 所有用户常用二进制命令所在的目录。例如  ls、cp、mkdir、rm、cut、cd等命令。/bin 目录和 /user/bin 类似。

 which   ls        -------查看ls命令所在的目录

 2.2  /boot目录

 Linux的内核及系统引导程序所需的文件目录。安装系统分区的时候一般要分一个boot分区。常见分区: /boot 128M swap内存的1.5倍或全给。

ls  /boot/grub     -------查看菜单目录(系统启动的时候加载菜单目录)

 

***** 2.3   /dev 目录

 设备文件的目录。比如声卡、磁盘、光驱...........。 

 *****2.4   /etc 目录

软件安装包( yum,rpm)的配置文件默认路径。 

*****服务的启动命令也在该目录下面。   如:  /etc/init.d/sshd    restart      ------重启ssh服务的命令;   /etc/init.d/iptables  stop ------关闭防火墙的命令   

/etc/fstab         ---------开机自动挂载设备(磁盘)的文件

/etc/hosts           -----------主机名的解析文件

/etc/inittab         ----------开机需要加载的文件(里面有运行级别还有相关的脚本。如:开机设置的3级别,我需要改成5级别(不能随意改动,查看就行),就是该这个文件的内容)

/etc/issue         --------登录之前的信息

/etc/motd          ---------登录之后会显示文件中的信息。(在该文件中加什么信息登录的时候会提示什么信息)

/etc/profile         ----------全局环境变量

/etc/resolv.conf        -------------要上网配置的DNS网络,需要更改此文件

/etc/passwd        -----------更改密码(查看创建的用户信息)

** 2.5  /home 目录

 普通用户的家目录默认数据存放目录。

ls   /home      -------查看创建的普通用户 

 

 2.6    /root 超级管理员的家目录

2.7  /tmp   临时文件目录

2.8  /user 用户程序及数据、帮助文档、二进制命令等的目录

2.9   /var  变化的目录。一般是日志文件,cache 的目录

2.10    /proc  显示内核及进程信息的虚拟文件系统

2.11   /sbin和  /user/sbin  超级用户命令的目录

 

 *****3 重要子目录的说明

 3.1    /etc/sysconfig/network-scripts/ifcfg-eth0   配置网络地址及GW等

/etc/sysconfig/network-scripts/ifcfg-eth0               --------------该路径是配置网络地址及GW等,使得网卡生效

route    -n                     -------查网关(上网的出口/入口)

cat   /etc/resolv.conf       ------查询DNS,该文件是DNS的文件 

   

例:cat  /etc/sysconfig/network-script/ifcfg-eth0    -------查看第一张网卡的配置

例:vim /etc/sysconfig/network-script/ifcfg-eth0    --------修改(第一张)网卡的配置信息(通过命令输入‘setup’ → ‘network   configuration’修改网卡配置也是在该这个文件)

(1)   /etc/init.d/network  restart                        -----------------重启网卡(影响所有网卡)

(2)    ifdown  eth0 && ifup  eth0             -----------------重启网卡只针对eth0网卡) 

网卡eth0配置文件说明:

DEVICE=eth0          ----------物理设备名。eth0表示第1块网卡

TYPE=Ethernet            -------以太网
ONBOOT=yes            -----------控制网卡是不是开机启动
NM_CONTROLLED=yes              -------------网络管理控制(可以不了解)
BOOTPROTO=dhcp           ---------------其中,proto取下列值之一:none 引导时不使用协议;static  静态分配地址;bootp 使用BOOTP协议,或dhcp,使用DHCP协议。(自己学习可以选择dhcp,dhcp是局域网                                                  中自动分配IP的工具和服务)

IPADDR=10.0.0.7               --------------addr是IP地址。生产环境一般是设置固定IP。    

NETMASK=255.255.255.0              -----------------子网掩码,划分网络位和主机位。

DNS2=202.106.0.20             ----------主网关。把访问的网站地址解析成对应的服务器IP。(DNA是域名和IP的解析工具)

GATEWAY=10.0.0.254              -------------网关地址,路由器的地址(通过网管出去才能上网)

DNS1=8.8.8.8                       ------------备网关

USERCTL=no
PEERDNS=yes
IPV6INIT=noHWaddr 00:0C:29:2F:C0:42       --------网卡的MAC地址,48位。

编辑网卡信息:

先备份:

 

 再编辑:

 若要让配置文件的内容显示,IPADDR、DNSGATEWAY、IPV6INIT等内容,须通过设置:setup来设置然后写入文件中。如下:

 

 3.2   /etc/resolv.conf     服务器本地DNS配置文件

/etc/resolv.conf                --------DNS配置文件路径。(DNA实现域名和IP的互相解析)

vim   /etc/resolv.conf                ------------修改DNS文件内容

 

 图形配置界面输入setup:

 说明:

(1)linux客户端DNS可以在网卡配置文件里设置(ifcfg-eth0)

(2)linux客户端DNS也可以在/etc/resolv.conf里设置;

(3)网卡里的设置DNS优先于/etc/resolv.conf,如果重启网络网卡的dns会覆盖/etc/resolv.conf的设置

 3.3    /etc/hosts       设定用户IP与名字(或域名)的对应解析表

/etc/hosts             ----------设定用户IP与名字(或域名)的对应解析表,相当于LAN局域网内的DNS

 类似于windows操作系统中的 c:\WINDOWS\system32\drivers\etc\hosts,LAN内IP域名解析文件。开发、测试时做的临时的域名解析常用,

英文hosts -The  static table lookup  for host  names.Host的解析在机房的服务器相互调用中也会常用,如门户网站的解析真实案例:

 

   hosts企业的作用:

1、开发、产品、测试等人员,用于通过正式的域名测试产品;

2、服务器之间的调用可以用域名(内部的DNS)。

 

 

 3.4   /etc/sysconfig/network         设置主机名的目录

 /etc/sysconfig/network                  -------------可修改机器名及网卡启动、网关等配置

 uname   -n                    ---------------查看主机名

hostname                  ----------------查看主机名

 

 永久更改主机名,需同时修改以下两项:

 1、     vi     /etc/sysconfig/network     或   sed   -i    's# 输入主机名#替换后的主机名#g'     /etc/sysconfig/network        ---------------更改配置文件中的主机名

2、   hostname    查主机名                 --------------更改输入命令窗口中出现的主机名(只有这个命令的话,它只是暂时更改命令窗口中的主机名,配置文件中的改命令改不了)

3.5    /etc/fstab      实现开机要挂载的文件系统的一个文件

详情讲解请看: https://www.cnblogs.com/ylnic/archive/2011/05/17/2048885.html

 fstab    一但配置错误,会导致服务器无法启动

 

 3.6    /etc/rc.local  

用于存放开机自启动程序命令的文件(chkconfig这个文件常用来管理yum/rpm来安装的程序的服务的开机自启动),自己开发的程序,习惯把启动命令放入/etc/rc.local 文件中,实现开机启动这些程序,Linux开机时会把 /etc/rc.local  里的内容执行一遍。

 3.7   /etc/inittab

 设定系统启动时 init 进程把系统设置成什么样的(只查看就行,不要更改!!!)(runlevel  运行级别及加载相关的级别对应启动文件设置,Linux开机启动流程)。

3.8    /etc/exports

 设定NFS网络文件系统用的配置文件。

3.9     /etc/init.d

这个目录是用来存放通过  yum 或rpm  工具安装的软件的默认启动程序的目录。比如:CentOS、RedHat;

 3.10   /etc/profile

 系统全局环境变量永久生效的配置文件。定义别名以及PATH变量等。

 3.11   /etc/profile.d

 系统登录程序的一个目录。

 (讲跳板机,登录的时候加载 /etc/profile.d的脚本)

====================================================七、压缩、解压缩文件或目录=====================================================================

 1、压缩目录或文件(压缩文件的后缀名是  .tar.gz):

 

1.2解压缩目录或文件:

2、压缩和解压缩文件(此方法只能压缩和解压缩文件)

==============================================八、================================================================

 

 

 ================================================= 九、第一阶段学习学习效果考察=============================================================

 1、创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写入内容“inet  addr:10.0.0.8  Bcast:10.0.0.255   Mask:255.255.255.0”(不包括引号)。

2、将题1中的oldboy.txt文件内容通过命令过滤只输出如下内容: 10.0.0.8    10.0.0.255   255.255.255.0

3、将题1中的oldboy目录移动到/tmp目录下,并将/etc/passwd文件复制到/tmp/oldboy下。

4、在题3的基础上使用awk取passwd文件的第10行到20行的第三列重定向到/tmp/oldboy/tets.txt文件里。

5、在题3的基础上要求用命令rm删除文件时提示如下禁止使用rm的提示,并使用该效果永久生效。

[root@oldboy oldboy]#rm -f passwd Do not use rm command.

6、在题3的基础上,删除/tmp/oldboy/下除passwd以外的其他的文件。

7.在题3的基础上,请打印/etc/passwd文件中的第2-5行(不低于三种方法)。

8、在题3的基础上,使用命令调换passwd文件里root位置和/bin/bash位置?即将所有的第一列和最后一列位置调换?

例:默认:root:x:0:0:root:/bin/bash 修改后   /bin/bash:x:0:0:root:/root:root

9、把/data目录及其子目录下所有以扩展名.txt结尾的文件中包含oldgril的字符串全部替换为oldboy。

10、查找/oldboy下所有7天以前以log结尾的大于1M的文件移动/tmp下

11、什么是linux的运行级别,请描述linux的运行级别不同数字的含义(附加题)

12、请描述buffer和cache的区别(附加题)

13、请说出你知道的下列字符在linux里可以代表的意义(附加题)。

例:~| >  >>  <  << !

----答案1:

mkdir -p /data/oldboy     ---创建目录

touch   /data/oldboy/oldboy.txt       ------创建文件

vi   /data/oldboy/oldboy.txt        然后输入 i 进行录入信息,然后按 esc  返回,最后输入 :wq  完成保存,退出。(如不需要保存可输 :q!   退出不保存。)

---答案2:

 awk   -F   '[  :]+'    '{print$3"  "$5"  "$7}'   /data/oldboy/oldboy.txt

---答案3: 

 mv   /data/oldboy   /tmp

cp  /etc/passwd   /tmp/oldboy

---答案4:

 awk  -F  '[:]'    'NR>9&&NR<21{print$3}'   /tmp/oldboy/passwd    >/tmp/oldboy/test.txt

---答案5:

 

 如果需要删除永久的rm命令,需要到/etc/profile和/etc/bashrc两个文件中把添加的删除即可。

----答案6:

 find   /tmp/oldboy  -type   'f'      !  -name   'passwd'   |xargs  rm  -f

----答案7:

 awk -F  'NR>1&&NR<6'    /tmp/oldboy/passwd

sed  -n '2,5'p   /tmp/oldboy/passwd

head -5  /tmp/oldboy/passwd  |tail   -4

---答案8 :

 awk   -F   '[:]'   'NR==1{print$7":"$1":"$2":"$3":"$4":"$5":"$6}'     /tmp/oldboy/passwd

----答案9:

 find  /data  -type   f  -name   '*.txt'    |xargs  sed   -i   's#oldgrid#oldboy#g' 

 -----答案10:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                 

                                    

 

 

       

 

 

posted on   雪之缘  阅读(103)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示