Linux命令小白学习记录

ctrl  shift = 放大终端窗口的字体显示

ctrl -     缩小终端窗口的字体显示

【注:dos没有空格也能执行,不区分大小写;

但是Linux必须得有空格,且严格区分大小写。】

linux里的图形界面叫做gnome

bash进程代表整个字符界面,shell   

init 6  和  reboot 重启计算机

通用选项

-v 把操作过程显示出来

-f force强制

-n 不提示

-R 是递归的意思

命令 选项 参数

上下键,快速调出历史执行过的命令,退出选择CTRL+C

tab键,自动补齐

连续按两下tab,出现可能输入的字符

、常见命令

证书:RHCA、RHCE、RHCSA红帽认证架构师、工程师、管理员

服务器:塔式、机架式(用的多)、刀片式服务器。

云计算工程师需要维护这个服务器。保障服务、业务平稳的运行。

通过一台服务器部署一个自己的系统。

/boot启动分区:内存

swap 交换分区:内存不够用的交换分区

/ 根分区:相当于C盘

/撇

\捺

bin binary二进制文件,存放命令,普通用户的

boot 启动目录,跟计算机启动有关系的文件

dev device设备驱动,硬件,摸得着的东西

etc 配置文件也叫控制台文件(工作当中用的最多的文件),etc里的文件就是控制按钮

home 装用户自己的文件,普通文件的家目录

root 除了root其他账号进不去

run 运行目录,临时的,一会就清掉了

sbin 也是放命令的,管理员能用的特权命令

tmp 临时目录

usr 放应用程序

var 放临时的日志啊,邮件啊,啥的

shutdown -h now              现在就关机

cd                           Change dictionary 切换文件夹

cd ..                        返回上级文件

cd                           什么也不加返回当前文件夹

cd /                         返回根目录      Windows用  cd \

touch 文件名                 创建一个空文件

touch b.txt                  创建了一个名为b的空文件

touch abc.sh

mkdir 目录名                 Make directory创建空目录     Windows是md

rm 文件名                    remove删除文件               Windows用dl删除文件

rm -r 目录名                 删除目录

echo 内容 > 名字.txt         echo aaaa > a.txt            快速创建一个文件

cat 文件名.txt               cat a.txt                    查看文件内容

命令名 --help                查看帮助,如:ls --help,提示怎么用ls

(简化版帮助信息)

man 命令名                   查看命令的详细帮助

f或者空格翻页,enter滚动一行, b上翻一页,q退出

(内核带的,全是英文)

pwd                print work dirctory查看当前所在目录

    

一、ansible

1、服务器巡检

ansible  all  -m  shell  -a  ‘df  -h’

all  代表所有主机,也可以指定  

-m 后面指定要调用的模块,shell是shell模块,Linux的大部分命令都在里面

-a  后面跟上动作

二、文件和目录命令

ls

ls【目录名】               list 查看当前文件夹内容    与dos的dir相似

                           ls后面没有目录名,代表显示当前目录内容

                           ls后面有目录名,代表显示指定目录内容

                           【显示当前目录内容             ls

                                                          ls ./

                             显示当前目录的子目录内容     ls abc

                                                          ls ./abc】

ls -a                      显示指定目录下所有子目录与文件,包括隐藏文件

ls -l  、 ll               以列表方式显示文件的详细信息

ls -hl                     配合 -l 以人性化的方式显示文件大小

ls -al                     显示所有文件的详细信息

ls -ahl                    人性化的方式显示所有文件的详细信息

ls -l -d 目录名 看这个目录的权限等详细信息

【ls-l返回结果说明】

正在上传…重新上传取消

说明

文件类型

d:目录,-:文件,l:链接文件

文件存取控制

参见“文件存取说明”

硬链接数

文件被硬链接的次数,快捷方式

文件属主

文件所属用户

文件所属的组

文件所属的组

文件大小

文件大小,默认单位为:字节

文件修改时间

文件修改时间

文件或目录名

./:代表当前目录,../:代表上一级目录,.文件名:代表隐藏文件

   

文件类型:   

               

正在上传…重新上传取消

“文件存取说明”

目录

拥有者权限

组权限

其他用户权限

-

r

w

-

r

w

-

r

-

-

d

r

w

x

r

w

x

r

-

x

       

               r:代表可读,w:代表可写,x:代表可执行,-:代表没有这个权限

【ls结合通配符的使用】

通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件

通配符

含义

*

代表文件夹中任意个数字符

代表文件名中任意一个字符

[acd]

匹配a、c、d中的任意一个,[]代表范围集合

[a-f]

匹配a到f范围内的任意一个字符

[a,b]*

a或b开头,任意结尾

[a,b]?

a或b开头,任意一个结尾

*[a-f]*

只要有a到f就行

??

只查看有两个字符的

chmod

chmod u+r 文件目录名    chmod 777 a.txt

change mode 的合写,修改用户或组对于文件或目录的权限   

chmod u+r a.txt     给文件所有者给予可读权

chmod u-r a.txt     给文件所有者去掉可读权

chmod a+rwx a.txt   给所有用户添加所有权限

chmod o=r a.txt     只保留r,wx去掉

命令 对象加减权限 文件或目录

如果要对文件夹里的所有内容授权,得加一个-R

用户权限

权限对象:

属主:u

属组:g

其他人:o

特殊对象:a(u+g+o)

权限的类型:

读:r=4

写:w=2

执行:x=1 文件如果要跑起来必须给执行权

【数字法修改】chmod 777 a.txt 授予所有用户所有权限

拥有者(u=user文件所属用户)

组(g=group文件所属的组)

其他(o=other其他用户)

r

w

x

r

w

x

r

w

x

4

2

1

4

2

1

4

2

1

     

a=all所有用户。

用+、-(加、减)。+赋权、-去权。=后面有的就会赋权,没有的就会去权。

常见数字权限组合

777     u+rwx,g+rwx,o+rwx

755     u+rwx,g+rx-w,o+rx-w

644     u+rw-x,g+r-wx,o+r-wx

000     全都去掉

111     全都只保留x

666     全都只保留rw

  

chown

修改文件属主和数组:chown 用户名.组名 文件或目录

只改文件属主:chown 用户名 文件或目录

只改文件属组:chown .组名 文件或目录

更改目录所属用户和用户组

chown [选项] 用户 [:用户组] file

chown -R inspuradmin:inspuradmin /data/tools/redis

chgrp

chgrp 组名 文件或目录     -R是递归的意思,该文件的属组

ACL

access  control  list

限制用户对文件的访问,是UGO的补充。加强版。

可设置不同用户、不同的基本权限,对象数量不同。

UGO设置基本权限只能一个用户一个组和其他人。

setfacl set file acl 设置文件

-m 设置

u:user01:rwx u用户,g组,o其他人:权限

文件

setfacl -m u:user01:rwx /file.txt

setfacl -m o::rwx /home/file.txt

正在上传…重新上传取消正在上传…重新上传取消

多了个+:代表除了基本权限还有附加权限。

正在上传…重新上传取消正在上传…重新上传取消

setfacl -x u:user01 /home/file.txt 删除用户user01针对这个文件的所有acl权限

setfacl -b /home/file.txt 删除这个文件的所有acl权限

-d是把权限改为最开始默认的权限。

getfacl

查看文件有哪些ACL权限。

getfacl /homr/file.txt

watch

watch -n1 ‘ls -l’ /home/file.txt 每隔一秒去执行命令,观察结果

三个小问题:

  1. 如果一个文件很重要,万一被超管删除了怎么办,靠特殊的i权限。
  2. t权限,特别的位置。
  3. 为什么创建文件是644?目录是755,系统有默认权限设计。

suid

针对文件所设置的特殊权限,使调用文件的用户,临时具备属主的能力。

chmod u+s 文件或usr/bin/cat(命令) 给文件或命令赋suid权限,若有x权限,为小s

chattr

有很多属性。

长用于锁定某个文件,拒绝修改。

i immutable,当给文件赋予这个权限的时候,不能更改重命名或删除这个文件。

chattr +i 文件名 有了i属性,谁都无法删除这个文件。

chattr -i 文件名

lsattr

列出文件属性的命令,会将文件的特别位展示

umask

影响新创建文件的默认权限。直接使用,可查看当前用户的umask权限。

正在上传…重新上传取消正在上传…重新上传取消

umask 000 修改umask的值(临时)

cd

cd            切换目录

命令

含义

cd 目录名

进入指定目录

cd

切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。

回自己的家

cd ~

切换到当前用户的主目录(/home/用户目录)

cd ..

切换到上级目录

cd /

切换到根目录(绝对路径)cd ../..  返回上级目录的上级目录(相对路径)

cd -

回到切换前的目录

cd abc      进入当前目录下的子目录abc

cd /abc     进入根目录下的abc目录

cd          回到用户的主目录

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

相对路径与绝对路径

Linux所有的目录和文件名大小写敏感

以  .   开头的文件或目录为  隐藏文件或隐藏目录

./ 代表当前目录

../ 代表上一级目录

/代表根目录

a.txt

./a.text    当前目录下的a.txt

../a.txt     上一级目录下的a.txt

.a.txt        文件名就叫.a.txt  ,而且是个隐藏文件

绝对路径  总是从  【根目录】     开始

相对路径  总是从  【当前目录】  开始

touch

touch 路径/文件名      

文件不存在,创建空白文件;

文件已经存在,可修改文件的末次修改日期;

如果要更改一个目录的最后修改时间,touch后面的目录名一定要存在

touch 已存在路径/文件名                 创建一个空文件

touch b.txt                  创建了一个名为b的空文件

文件和目录不能同名

mkdir

mkdir                     创建目录 ,路径和目录名   

mkdir -p   快速创建层级目录

mkdir -p aaa/bbb/ccc       创建一个有嵌套关系的多级目录,aaa下有bbb,bbb下有ccc

mkdir /home/{dir111,dir222} 在home下创建多个目录,大括号可以嵌套

mkdir -v 路径/目录 把操作过程显示出来,操作过程可视化

rm

rm 文件名                 remove删除文件               Windows用dl删除文件

rm -r 目录名              删除目录,删除后不能恢复,不存在时会报错,可一下删除好几个目录

rm -f                     强制删除文件,不提示错误 删除后不能恢复

rm -r *                   删除当前文件夹下所有文件

千万不要在根目录下rm -rf*  整个系统都会被删除

rm -f a.txt b.txt    存在就删除,不存在就不报错

rm -rf aaa           存在就删除,不存在就不报错

rm -rf 强制删除 删除/*时不包含隐藏文件

四、文件内容命令

cat

cat [选项] 路径/文件        查看文件内容    一次显示所有

                       可以结合重定向合并文件

cat -n                 对输出的  所有行  编号

cat -b                 对输出的  非空行  编号   与nl效果等价

cat a.txt              查看a.txt内容

cd /proc                proc目录下面放了一些和系统信息相关文件

cat version             查看linux版本

cat cpuinfo             查看cpu信息(Linux下很多文件都没有扩展名)

cat meminfo            查看内存信息,全部显示

head

head -3 a.txt 只看文件的头三行

tail

tail -200f a.txt 看后200行

more

more 文件名            一屏显示不全时,分屏查看文件内容  

enter向下滚一行

按f、空格向下翻一页

b回看一页

q退出

在/proc目录下显示meminfo

more meminfo

三、拷贝和移动命令

tree

tree [目录名]   以树状图列出文件目录结构

tree -d [目录名]        只显示目录               需要安装

cp

cp [选项] 源文件路径/源文件 目标文件路径/目标文件     复制给出的文件或目录

相当于DOS下的copy命令

cp    只能拷贝文件

cp -r      拷贝目录文件夹

cp -i      当目标文件已经存在,给出用户是否覆盖的提示,覆盖文件内的内容

可用.作为复制到的指定目录

touch a.txt

mkdir abc

cp a.txt abc/a.txt     将当前目录下的a.txt拷贝到abc目录下,名字还叫a.txt

rm a.txt               删除当前目录下的a.txt

cp abc/a.txt a.txt     将abc目录下的a.txt拷贝到当前目录下,名字还叫a.txt

mkdir aaa

cd aaa

cp ../abc/a.txt a.txt  将abc目录下的a.txt拷贝到当前目录aaa下,名字还叫a.txt

  

mv

mv [选项] 源文件 目标文件     移动    

使用mv命令来移动文件或目录,也可以给文件或目录重命名  

mv -i      若目标文件存在,在覆盖目标文件之前将给出提示,要求用户确认              

mv b.txt aaa/b.txt     将b.txt文件移动到目录aaa中

mv aaa/b.txt b.txt     移动回来

mv b.txt c.txt         将b.txt改名为c.txt【同级目录下就是改名】

mv和cp参数基本一致

mv和cp的区别是,cp之后,原文件还存在;mv之后,原文件不存在了

  

grep  找内容

grep [选项]“字符串”文件名     在指定文件中查找指定的内容

grep 关键字 文档名       查看该文档中包含该关键字的行

grep “s” meminfo       在meminfo文件中查找是否有字符s的行

                         没有显示代表找不到

、两个单词间有空格,需要用引号

-n        显示行号

-v        查找不包含指定内容的行

-i        忽略大小写

grep -n “s” meminfo

grep -ni “s” meminfo

grep “^d”   查找以d开头的行,查找目录

grep “^-”   查找以-开头的行,查找文件

模式查找

^ab    找行首为ab的

ab$    找行尾为ab的

grep -n ^ab 123.txt

echo

echo 字符串     回显   把echo后的内容回显到屏幕

echo aaa               显示aaa

clear

clear                  清屏    类似于dos下的cls

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消

正在上传…重新上传取消正在上传…重新上传取消

标准输入、标准输出,错误输出

相当于软连接,进程通过序号(文件描述符)来打开文件,0-255

012代表输入输出,4代表文件

> >>

重定向符号             输出重定向

命令 参数 > 文件名

在Linux中允许把命令执行结果(输出在终端上的内容),重定向输出到一个文件中

命令 > 文件名          文件存在直接覆盖文件,不存在就新建

命令结果不在屏幕上显示,而是重定向到指定文件里

把左边的东西漏斗到右边

  1. 正确输出重定向 >等价于1>
  2. 错误输出重定向

&> 标准混合输出  

加一个&可以把正确输出和错误输出都重定向到文件中

ls /home /aaaaaa &> /dev/null 标准混合输出,输出丢进垃圾桶里

yum install httpd &> /dev/null

<<EOF

内容

EOF 段落标记,取消其间的回车的作用

cat 看内容

> /file.txt 输出重定向

<<EOF  内容  EOF 输入重定向,cat看这里的内容,再把它写进file里

命令 >> 文件名         文件存在就追加新内容,不存在就新建;不会覆盖

echo aaa > a.txt       把echo命令的执行结果放到a.txt里

ls -l > a.txt          把ls -l执行结果放到a.txt里

grep “a” a.txt > b.txt     把查询结果放到b.txt中

echo aaa > a.txt

echo bbb >> a.txt      a.txt文件内容最终为aaa

                                           bbb  

|

管道符号                   把一个命令的输出作为另一个命令的输入

命令1 | 命令2 组合多条命令

ls -al > a.txt             把结果放到文件里

grep “ab” a.txt          在文件里查找

【ls -al | grep “ab”】   不需要a.txt,结果里查找ab

ls -al > a.txt             结果放到文件中

more a.txt                 分屏查看结果

【ls -al | more】           分屏查看输出结果

【ls -al | grep “a” | more】

【ls -al | grep “^d”】     只显示以d开头的行,即只显示目录

【ls -al | grep “^-”】     只显示以-开头的行,即只显示文件

【ls -al | grep “^d.*s$”】 只显示以s结尾的目录

|tee管道

正在上传…重新上传取消正在上传…重新上传取消

cat /home/file.txt |tee file2.txt | tail -1 会把前面的处理结果存到文件里,文件里有很多行

|Xargs

cp和rm这两条命令只能手打,不服其他程序

ls /homg > file.txt

cat file.txt |Xargs rm -rvf 能成功删除home下的文件,file.txt里的内容还有

gedit

gedit 1.txt 图形编辑器,Linux里的记事本编辑

  • 关机、重启

shutdown

shutdown 选项 时间

shutdown -r now           立刻重新启动操作系统,不加now就是重新启动

shutdown                  一分钟之后关闭电脑

shutdown 20:25           八点25关机

shutdown +10              十分钟之后关机

shutdown -c               取消之前的关机计划

sudo shutdown -r now       用高级用户的权限,远程控制其他用户的系统,立刻重启

所以务必要记得更改自己电脑的密码

不要关机,记得重启,加-r

cat结合重定向实现合并文件内容

cat 文件1 文件2 文件3 > 文件4

echo aaaa > a.txt

echo bbb > b.txt

cat a.txt b.txt            显示两个文件内容aaaa

                                            bbb

cat a.txt b.txt > c.txt    将a.txt和b.txt内容合并到c.txt里面

find找文件

find [路径] -name 文件名   查找当前目录的所有子目录,查找指定文件

find /etc  -name  77777.txt    引号不打也可以,怕内容带系统关键字

单引是强引,双引号是弱引,有些东西引不掉

命令  路径    选项     描述    动作

find   .     -perm    777     -ls

-iname        忽略大小写

-size     按文件大小找 +5M找大于5M的,-5M找小于5M的

-maxdepth 数字  最大深度

-a              并且

-user 属主

-group 属组

-type 按文件类型,linux中不以后缀做区分

以文件类型f文件,d目录,l链接,b块设备

-perm 644 按权限。

动作:

-delete 删除

-ls

-ok  cp  -rvf  {}  /temp  \;

注:如果省略路径,默认为当前目录

find命令可以与通配符结合使用

find ./ -name a.txt           从当前目录开始查找所有子目录,是否存在a.txt文件

find / -name a.txt            从根目录开始查找所有子目录,是否存在a.txt文件

which=whereis:查找命令

which cat 找cat命令在哪,绝对路径

whereis cat 找cat命令在哪,绝对路径

locate:文件查找,依赖数据库

updatedb        刷新数据库

locate 文件名 就可以找到了

alias 重命名命令

alias  xulei=’ls --color=auto’

alias  shuijiao=’init 0’

ln

ln -s         被链接的源文件 链接文件,ls代表创建一个软连接,symbo link 软链接

文件和目录都可以做软链接

记录的只是源文件的绝对路径

失去源文件不可用

指向另外一个文件类似windows的快捷方式

ln            创建硬链接文件硬链接只能在一个分区做,只能对文件做,不能对目录做。

ln -s a.txt a      新建一个a,并且内容和a.txt一样

ls >> a.txt        更改a.txt内容

cat a              显示a的内容,a的内容也会发生变化

ls  -l    可以看到a前面不是d也不是-,而是l,link的意思,代表这是一个软链接文件

ln a.txt b         硬链接,b和a.txt的内容一样,更改其一就都会发生变化

a.txt的硬连接数在原来为1的基础上+1

b的开头为-

硬链接文件大小和原来文件一样,而软链接不占磁盘空间,大小不变;

rm a.txt           删掉源文件,,,,软链接也没了,硬连接文件还可以使用

RAID(了解)

Redundant Array of Independent Disks 廉价磁盘冗余阵列

分为数据盘,校验盘,热备盘(啥也不写就搁那)

做到数据安全,备份策略,也能加速读取。容错,提高读写速率。

RAID02块盘以上,读写速度快,100%*N,但不容错。一般镜像卷做RAID0。

RAID1镜像卷、镜像集;两块磁盘;容量50%,只能用一半;

RAID5带奇偶校验条带集;至少三块硬盘;N为磁盘数量,会将数据分为N-1份,存校验;   利用率(n-1)/n

硬RAID和软RAID

软RAID示例:

创建RAID:

yum -y install madadm

mdadm  -C     /dev/md0         -l5    -n3           -x1      /dev/sd(d,e,g)

-C创建RAID   第一个RAID设备  RAID5  RAID成员数量  热备磁盘的数量    

mkfs.ext4  /dev/md0

mkdir  /mnt/raid5

mount /dev/md0  /mnt/raid5

cp  -rf  /etc  /mnt/raid5/etc1

mdadm  -D  /dev/md0                 查看详细信息

mdadm  /dev/md0  -f  /dev/sdb  -r  /dev/adb     模拟整坏sdb,热盘会马上顶上

一个目录去掉执行(X)的权限,就是啥都不能干了

r

  1. 对于文件来说,没有r权限,文件就是不可读的
  2. 对于目录来讲,没有r权限,就不能用ls查看目录内容了

w

  1. 对于文件,没有w,文件内容只读
  2. 对于目录,没有w,不可以在这个目录下创建新的文件

x

  1. 对于文件,如果这个文件是个可执行的程序,没有x,就不能执行了
  2. 对于目录,没有x,不能用cd进入这个目录

Linux下的所有的普通用户,主目录在/home

用户a

/home/a

gzip

gzip 文件名         压缩文件  压缩文件的文件名后缀为gz,源文件自动删除

gzip -d 文件名       解压文件  解压完,压缩文件自动删除,比较常用

zip

zip 压缩文件.zip 源文件        压缩文件

zip [-r] 压缩文件.zip 原目录     压缩目录

unzip 压缩文件.zip             解压文件

注:用zip压缩文件,必须明确指定压缩后目标文件名

压缩后源文件依然存在,解压后压缩文件也存在

gzip a.txt

gzip -d a.txt.zp

zip a.zip z.txt

unzip a.zip

tar

tar                                  将多个文件或目录打包成一个文件

tar -cvf 包名.tar 文件或目录            打包

tar -tvf 包名.tar                       查看打包文件内容

tar -xvf 包名.tar                       解包

tar常用选项

c                    生成档案文件,创建打包文件create

x                    解开档案文件

v                    列出归档解档的详细过程version

f                    指定档案文件名称file,f后面一定是.tar文件,所以必须放选项最后

t                    查看包中的内容

z  压缩工具,名字-gzip.tar.gz,名字不一样,大小更小了

j 压缩工具,名字.tar.bz 比他们都小

J 压缩工具,名字.tar.xz     比他们都小,时间越来越长

-xf 解压什么都能搞定

tar  -xvf  mingzi.tar.bz  -C  /temp       -C 路径,解压到别的地方

tar -cvf abc.tar abc      打包目录,源目录依然存在

rm -r abc              删除原目录

tar -tvf abc.tar         查看打包文件的内容,不解

tar -xvf abc.tar         还原打包的目录

abc.tar.gz     打包后的压缩文件,先解压缩在解包

tar结合z参数实现打包同时压缩,或解包同时解压缩

tar -zcvf 压缩包名.tar.gz 文件目录       打包同时用gzip压缩

tar -zxvf 压缩包名.tar.gz                用gzip解压后同时解包

df

df         查看磁盘剩余空间disk free

df -h       以人性化的方式显示剩余磁盘大小

存储管理

DISK 磁盘:存储文件和目录

在Linux中,管理存储设备和资源。

IDE并口:/dev/hda 很少见了,很老了

SATA串口:/dev/sda dev设备文件目录,s代表sata,d代表disk磁盘,a代表第一块

  /dev/sdb b代表第二块

分区方式:

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消

管理磁盘的三部曲:分区、格式化、挂载mount

毛坯房:隔间、放家具、加个门(目录)

基本磁盘管理办法

LVM管理磁盘

1、分区(建房子)

1、物理卷、卷组、逻辑卷

2、格式化(分屋子)

2、格式化

3、挂载(开门)

3、挂载

1、查看磁盘

ll /dev/sd* 查看磁盘,文件类型为b(block)(块)

lsblk 列出块状设备,查看分区结果

2、创建分区

扩展分区不存放数据,如果想存放数据必须划分逻辑分区。

使用MBR划分分区,只能有以下情况:

4个主分区

3主+1个扩展(N个逻辑分区),扩展分区不能挂载,逻辑分区可以

fdisk  /dev/sdb 启动分区工具,能分区的是新的未分区的盘,进入会话模式

n 开始分区

p 先划主分区,扩展分区按e

  1. 选择分区号

+1G 分给1分区大小

w 保存更改,自动退出分区工具

partprob /dev/sdb partation prob刷新分区表,分区准备

fdisk - l /dev/sdb 查看分区结果,或者ll /dev/sd*,或者lsblk

  1. 创建文件系统

mkfs.ext4  /dev/sdb1 make,file,system,extend4创建文件系统扩展

第二块串口硬盘的的第一个分区准备格式化了

  1. 挂载mount

mkdir /mnt/disk1 创建挂载点,一个分区一个挂载点

mount -t ext4 /dev/sdb1 /mnt/disk1 挂载,-t文件系统类型,咋存东西的

把谁挂载到哪里去

df -hT 查看挂载信息,文件挂的哪个磁盘

交换分区管理Swap

就是一个平台分区,“提升”内存容量,防止OOM(Out Of Memory)

存放热点数据,不能人为干预。windows里叫虚拟内存。

推荐16G以下的设置为内存的两倍。以上的就一般大就行。

正在上传…重新上传取消正在上传…重新上传取消

free -m 查看当前交换分区

+2G

之后按t

  1. 将其置为Linux swap分区

swapoff /dev/sde1 可以取消为交换分区

umount /dev/sde 可以取消挂载

取消挂载后在挂载,里面东西也会恢复,就相当于U盘拔掉又插上了。

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消

正在上传…重新上传取消正在上传…重新上传取消

抄写文件

dd  if=/dev/zero  of=/mnt/disk4/1.txt  bs=1M  count=1000

抄文件  从    抄到     大小            抄多少次

逻辑卷LVM

管理磁盘的一种方式,性质与基本磁盘没有区别,可随意扩张大小

PV 物理卷(Physical volume)

VG 卷组(Volume group)

LV 逻辑卷(Logical volume)

  1. 准备物理磁盘
  2. 将物理磁盘转换为物理卷

pvcreate  /dev/sdc

  1. 创建卷组

vgcreate  vg1  /dev/sdc vg1自己起

  1. 创建逻辑卷,-L大小,-n卷名,vg1组名(磁盘里拿空间,自己取名字,必须从卷组里)

lvcreate  -L  200M  -n  lv2  vg1

  1. 创建文件系统并挂载

mkfs.ext4  /dev/vg1/lv1

  1. 创建挂载点

mkdir  /mnt/lv1

  1. 挂载

mount  /dev/vga/lv1  /mnt/lv1

扩容

  1. 扩大卷组

创建PV pvcreate  /dev/sdd1

扩展VG vgextend  vg1  /dev/sdd1

  1. LV扩容

vgs                                         查看卷组空间

lvextend  -L  +200M  /dev/vg1/lv2 增加200M空间给lv2

df   -hT 查看文件系统当前容量

resize2fs  /dev/vg1/lv2 创建文件系统df -hT可看见空间变大了

文件系统

正在上传…重新上传取消正在上传…重新上传取消

文件系统ext4

block块,一块默认4k,存储文件的实际数据(超市储物柜)

文件较大会占用多个block,不一定连续,会有碎片

inode,记录文件的属性,大小,权限,属主,块的数量和编号。128bytes(小票)

superblock超级块

ll  -i    查看文件的inode信息,分区越大号越大,位数越长

df  -i 查看inode数量

ls  -l |wc -l 查看有多少个文件减一,还有一行total

ps

ps         查看进程     windows中用任务管理器

ps -a       显示终端上的所有进程,包括其他用户的进程

ps -u       显示进程的详细状态

ps -x       显示没有控制终端的进程,(后台进程)

ps -aux     显示系统中所有的进程,并且显示所有进程的详细信息,是刹那的信息

可以直接写ps aux   

ps -aux | head -3 就可以看到字段名

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消

ps -aux --sort %cpu 按照cpu降序排序

ps -ef 可查看父亲进程的PID,杀不死这个程序可以杀他的父亲

pps -axo 要显示的字段 自定义显示字段-o选项opretion

ps -ef | grep 进程关键字

free

free  -m 查看内存情况,单位是可以是m,g,k,查看当前交换分区

     

top

top   动态显示进程的运行状态

按q退出

重点关注字段

PID

进程id号

USER

运行进程的用户

%CPU

进程CPU占有率

%MEM

进程内存占有率

%COMMAND

启动进程的命令名

PR

系统给的优先级

NI

手工设置的优先级

上半部分:

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消正在上传…重新上传取消系统自身一个空闲进程

正在上传…重新上传取消

第五行是假内存,交换分区(硬盘的一部分空间,存放常用数据)。

正在上传…重新上传取消正在上传…重新上传取消

top -t 1 1秒刷新一次数据

top -p 进程号 查看指定进程的动态信息

信号控制进程:

kill -1 PID 重新加载配置文件,并不是重启

kill -9 PID 杀死一个程序,15号正常关闭。

正在上传…重新上传取消正在上传…重新上传取消

kill

kill           杀死进程

kill [选项] PID

kill -9 PID      当用PID杀不掉,用-9参数强制杀死进程,-9参数会显示“已杀死”

图形界面下,启动了gedit程序,用kill杀掉

ps aux | grep ‘gedit’

kill gedit的PID

nice

进程优先级

系统中两种优先级:NI和PR,nice值(-20~19)需要再加20才能进入系统的优先级队列。

ps axo pid,command,nice --sort=-nice

启动程序时设置优先级,

会默认继承他父亲的nice值,默认为0

sleep 7000 控制台睡眠7000秒,倒计时程序

会占领前台,加&把他丢入后台

nice -n -5 sleep 7000 & 设置程序的优先级为-5

设置已存在程序的优先级:

renice -20 进程ID 将旧的进程设置新的优先级

前后台

正在上传…重新上传取消正在上传…重新上传取消

sleep 3000 会占领前台,ctrl+C结束,ctrl+Z暂停

sleep 3000 & 丢进后台

ps aux |grep sleep 可以看见

jobs

专门看后台的工作,哪个是最新的会带上+,哪个稍老会带上-

【序号】 使用kill  %序号来杀死

fg

fg 序号 调后台程序到前台

bg

bg 序号 放回后台运行

proc 虚拟文件目录

虚拟文件系统:采集服务器自身内核、进程运行的状态信息,数字随进程的出现而出现

cpu :/proc/cpuinfo 使用cat 查看

内存:/proc/maminfo

内核:/proc/cmdline 内核程序,一个应用软件,Linux的内核

六、查看或配置网卡信息

ping           检查网络是否连通

ping IP/域名     检查与目标主机网络是否连通,Linux需Ctrl+c终止,不然不停下来

IP地址也就是域名,IP地址是数字,域名是www.itcast.com

ping返回数据说明:

64 bytes from 220.181.38.150: icmp_seq=1 ttl=128 time=20.1ms

64 bytes from 220.181.38.150: icmp_seq=2 ttl=128 time=10.2ms

64 bytes from 220.181.38.150: icmp_seq=3 ttl=128 time=16.7ms

接收到来自220.181.38.150的64Bytes数据,用时xxms(毫秒)

通过IP地址找到计算机,在通过端口号找到计算机中运行的应用程序,才可以看到访问结果

常见的服务端口号,默认的端口号可以省略

序号

服务

默认端口号

01

SSH服务器

22

02

Web服务器

80

03

HTTPS

443

04

FTP服务器

21

可以把电脑比作电话,网卡相当于SIM卡,IP地址相当于电话号码

ifconfig | grep inet       找到当前计算机的ip地址

127.0.0.1   本地回环地址  

ping 127.0.0.1           查看本地网卡是否工作正常

查看windows的ip地址,cmd命令中端,输入ipconfig /all

ifconfig        显示Linux系统的网络设备信息,查看网卡信息,苹果本也是

正在上传…重新上传取消正在上传…重新上传取消

七、远程管理命令

ssh [-p port] user@remote

user是在远程机器上的用户名,如果不指定的话默认为当前用户

remote 是远程计算机的地址,可以是IP/域名,或者是后面会提到的别名

port 是SSH Server 监听的端口,如果不指定,就为默认值22,-p可以省略

ssh 用户名@ip                                         关机/重新启动

scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径      远程复制文件

使用exit退出当前用户的登录

ssh -p 22 python@172.16.140.138

然后敲yes

就可以远程控制Linux系统的python用户

ssh这个终端命令只能在Linux或者UNIX系统下使用

如果在Windows系统中,可以安装PuTTY或者XShell客户端软件即可

PuTTY 下载 http://www.chairk.greenend.org.uk/~sgtatham/.putty/latest.html

XShell 下载http://xshellcn.com

SSH非常常用的一个软件工具,SSH客户端远程登陆SSH服务器

数据传输是加密的,可以防止信息泄露

数据传输是压缩的,可以提高传输速度

使用Secure Shell 协议

SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议

scp      secure copy 是一个在Linux下用来进行远程拷贝文件的命令

他的地址格式与ssh基本相同,需要注意的是,在指定端口时用的时大写的-P而不是小写的

scp -P port 01.py user@remote:Desktop/01.py

把当前目录下的01.py文件复制到远程家目录下的Desktop/01.py

scp -P port user@remote:Desktop/01.py 01.py

把远程家目录下的Desktop/01.py文件复制到当前目录下的01.py

scp -P 22 python@172.16.140.138:Desktop/01.py .

加上-r选项可以复制文件夹

scp -r demo user@remote:Desktop

scp -r user@remote:Desktop demo

第55集

root用户--------神一般的存在

通常用于系统的维护和管理,对操作系统的所有0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.

8+资777源具有所有访问权限,在大多数Linux都不推荐直接使用root账号登录系统,一般我们使用的是运维人员配置好的普通用户操作

/root   root用户的主目录

su - 用户名                切换用户

su - root  等同于su -        切换到root用示让输入密码,输入时不会回显,回车

错误提示密码错误,不错就成功了,exit回车,退回su之前的用户

su root   等同于su         切换到root用户下,不改变当前所在的目录

有-更改当前目录,没有-不更改当前目录

root用户切换到其他用户不需要输入密码

正在上传…重新上传取消正在上传…重新上传取消

上面的root用户不在了,下面的root用户还在

root用户su完之后一定要用exit退出

useradd [选项] 用户名            添加新用户,root才有权限

useradd -d 目录名            指定新用户的主目录

useradd -m                   如果-d参数中指定的主目录不存在,就自动创建这个目录

新建一个用户名字交abc,主目录是在/home/abc目录

习惯------用户的主目录在/home下,用户的主目录和用户名一致

find /bin abc          从根目录的bin目录下,找一个文件abc

useradd -d /home/abc abc -m         新增用户abc,主目录为/home/abc

注:可以在新增用户的同时指定用户默认的shell

如:useradd -d /home/abc -m -s /bin/bash

新增abc用户同时指定shell为bash

passwd [用户名]             修改用户密码

一般来说管理员才会进行用户密码的配置,root用户可以改其他用户的密码

普通用户直接使用passwd就可以修改自己的密码

passwd     更改root用户自己的密码

userdel [用户名]       删除用户,主目录还在,一般root账户才有权限

userdel -f            此选项强制删除用户账号,甚至用户仍然在登录状态。它也强制删除

userdel -r            用户主目录中的文件将随用户主目录一起删除

whoami           我是谁,查看当前用户登录名

八、文本编辑

vim是vi的升级版,会加亮

Vi是一个基于字符界面文本编辑程序

Vi没有菜单,只有命令,虽然很多,只需了解常用的即可

Vi有三种基本工作模式:命令模式,输入模式,末行模式

#后面的都是注释

用Vi新建一个文件abc.txt,在文件里写hello world,保存退出

第一步:用vi新建一个名为abc.txt的文件

        Vi abc.txt    (命令模式)

第二步:进入vi界面后,按i键  (输入模式

        Hello world

第三步:按ESC键   (命令模式)

第四步:按:    (末行模式)

第五步:wq回车  (存盘退出)

完成

Vi三种模式的切换

正在上传…重新上传取消

首次进入vi进入命令模式

命令模式下输入i,进入输入模式

输入模式下ESC回到命令模式

命令模式下:进入末行模式

在末行模式下按ESC返回命令模式

不论在什么模式下按ESC总是回到命令模式

Vi 文件名      启动vi

               如果文件名不存在,那么创建一个新文件

               如果文件名存在,打开已有文件

Vi             开启一个没有文件名的

               输入内容后,wq没有文件名,没办法保存

               输入内容后,输入命令,w a.txt  回车,就写好了

VI的三重启动方式

Vi 新文件       创建一个新文件

Vi 已有文件     打开一个已经存在的文件

VI              退出VI的时候w后面要加一个文件名,代表保存文件

VI的退出方法

必须先回到末行模式下,命令行模式按:

wq              保存退出

q!              不保存退出

q                啥也不干,直接退出

修改文件后强行退关掉,vi打开后(它变成了隐藏文件)

一串提示。

用vi编辑一个文件,让这个文件可执行

vi a             里面输入 cat /proc/cpuinfo保存

chmod a+x a     所有用户都能执行它

./a             执行当前目录下的a

(直接执行a找不到,Linux不会在当前目录下查找可执行文件)

cd             回到用户主目录

ls -a .profile      修改Linux的配置文件,使其可以在当前目录下查找可执行文件

vi .profile        修改里面内容

                末尾输入:后,打入export PATH=$PATH:.  

                后ESC:wq  保存退出

                告诉Linux系统,在当前目录下也能执行这个命令

                可以重启操作系统,或者退出shell,在进来一次

a                执行a不生效

source .profile     让我的修改立刻生效

a                直接执行a可生效

在shell环境(提示符为$)下输入启动vi命令,进入编辑器时,就处于命令模式下

任何时候,不管用户处于何种模式,只要按下ESC键,即可使vi进入命令模式

命令模式

命令

说明

从命令模式进入文本输入模式

i

光标位置插入

a

光标位置追加

I

从光标所在行的行首插入

A

从行尾追加

o

从光标下面行开新行插入

O

从光标上面行开新行插入

从命令模式进入末行模式

从命令模式进入末行模式

删除命令

x

删除光标前一个字符(光标所在字符)

dd有的版本一个d

删除光标所在行

ndd

nd

删除指定的行数(删除光标下面的n行)

撤销命令

u

undo撤销

Ctrl+r

反撤销

复制粘贴命令

yy有的版本一个y

复制当前行

nyy

ny

复制n行

P

在光标所在位置向下新开辟一行,粘贴

查找命令

/要查找的字符串

查找指定字符串

n

查找下一个

N

查找上一个

定位

nG

跳转到第n行

光标定位

hjkl

上下左右

0 $

行首行尾

gg G

页首页尾

/ string(n N可以循环的)

查找字符,按n键下一个

用vi合并a.txt与b.txt为c.txt

ls -l > a.txt

cat /proc/cpuinfo > b.txt

vi a.txt                    打开a.txt

18 yy                     复制a.txt共有的18行

:q                      退出a.txt

vi c.txt                    新建并打开c.txt

p                        粘贴

:wq                    保存并退出

vi b.txt                   打开b.txt

19 yy                    复制b.txt共有的19行

vi c.txt                   打开c.txt

G                       跳转到最后一行

p                       粘贴

:wq                    保存退出

末行命令

在命令模式下,用户按:即可进入末行模式下

末行模式时窗口的最后一行(通常也是屏幕的最后一行)显示一个:作为末行模式的提示符,等待用户输入命令

末行命令执行完后,vi自动回到命令模式

末行模式

命令

说明

保存

w [文件名]

w即可(vim版)

启动vi时未指定文件名,那么此处可以指定文件名,也可以为另存为文件

退出

q

如果文件未保存,回退出vi失败,同时提示错误

保存退出

wq

保存文件,同时退出vi

不保存退出

q!

放弃修改,退出vi

保存不退出

w

保存文件,不退出

显示行号

:set nu

set number显示文件中内容每行的行号

显示控制字符

:set list

显示回车啥的

取消设置行号

:set nonu

查找替换

:开始行,结束行 s/原内容/新内容/全局

1,5 s/root/qianfeng/g

s是switch

不加g只换每行的第一个

正在上传…重新上传取消正在上传…重新上传取消

可视化模式

从命令行模式按v进入可视化模式

v 一个字一个字选

V 一行一行选

  • 临时文件

1、vim为正常关闭,产生的临时文件,解决办法。

当没有保存编写的文档时关闭终端。系统会自动产生一个备份文件。

vim 1.txt 没有保存 会产生.1.txt.swap隐藏文件

在打开的时候不让写,只需要把产生的swap文件给清理掉就好了

  • 用户和组
  1. 用户和组的基本概念

用户组信息存储的文件:

用户基本信息文件:/etc/passwd(冒号分隔为7列字段,一行一个用户信息)

root:x:0:0:root:/root:bin/bash

用户名:x:uid:gid:描述:HOME:shell

用户名:登陆系统的名字

x:密码占位符,具体的内容不在这里

uid:用户的身份证号。

系统约定:RHEL7:

0是特权用户,1~499系统用户,1000开始是普通用户

IDC:Internet database center互联网数据中心,管理员给用户赋予权限从一千开始

gid:组号

描述:比如经理manager,描述一般我们不动

/root:家目录:登陆系统时,所在的目录

/bin/shell:登录shell命令解释器。

定义命令,接受命令,执行命令

bin/nologin不能登录

用户密码信息文件:etc/shadow

8列,密码是加密的,

  1. 用户名:
  2. 加密值:
  3. 最后一次修改时间:是距离Linux诞生的时间(1970.1.1),
  4. 最小间隔0:最小间隔是修改密码的修小间隔天数
  5. 最大时间间隔99999无限:
  6. 警告时间:改密码的软规则,快到期提前提示
  7. 不活动时间:用户不登陆不试用账号的有效时间
  8. 失效时间:时间到账号不能用了
  9. 保留

正在上传…重新上传取消正在上传…重新上传取消

加密的:私密性,完整性,不可否认性

对称性密码可以破解,非对称性密码不可以破解

正在上传…重新上传取消正在上传…重新上传取消

组信息文件:etc/group

组名:组密码:组ID:组成员

  1. 用户/组管理

用户:

只有root才可以使用下面三个命令

useradd 用户名   创建用户,可以grep etc/passwd文件,可以看home,

-u设置 UID

-d指明家目录

id 已创建的用户名 查询用户命令,显示ID和组ID

passwd 用户名 设置该用户名的密码,不跟用户名的时候谁敲改谁的

userdel 用户名 删除用户

-r 一块删除用户的目录

usermod -s /sbin/nologin 用户名 修改用户属性,不让他登录

s代表shell

-u代表uid

-g代表用户基本组,组 用户名

-G代表用户附加组,组 用户名

gpasswd -d 用户 组名 把用户从组里面移除

组:

基本组:随用户创建的组,组名同用户,显示在etc/passwd中。

附加组:一个用户可以同时属于多个组,除了自己的组,其他的就是附加组。

groupadd 组名 创建组etc/group能看到

groupadd 组名 -g 组ID 创建组并设置组ID

grep 组名 /etc/group 查看该组名的信息

groupdel 组名 删除组信息

  1. 提权(了解)

永久提权:Switching users with su

su - root 切换到root用户

exit 退出当前帐号

临时提权:Running commands as root with sudo

使用普通登录服务器时:完成部分特权命令

以root身份授权普通账户xulei

vim etc/sudoers

%wheel ALL=(ALL) NOPASSWD:ALL

允许wheel用户组中的用户再不输入该用户密码的情况下使用所有命令

useradd xulei -G wheel

sudo 命令 普通用户就可以使用特权命令了

十一、常用命令合集01-组内分享持续更新:

jar包启动命令

nohup java -jar *****.jar &

nginx启动

sbin目录下 ./nginx -s reload

war包linux解压两种方式

jar -xvf project.war

unzip -oq common.war -d common

zip打包及压缩命令

zip -r -q -o pack.zip mark/

unzip filename.zip

tar.gz打包及解压命令

tar zcvf FileName.tar.gz DirName

tar -zxvf filename.tar.gz

文件/文件夹移动

mv /opt/a /home/

文件/文件夹复制命令

cp /opt/a /home/

cp -r /opt/a/ /home/

端口找进程

netstat -anp|grep port

查看路径下存储

du -lh --max-depth=1

显示所有运行中的进程(按内存使用多少排序)

ps aux --sort -rss

linux服务器操作mysql数据库

登录mysql: ./bin/mysql -u root -p 回车输入密码

查看当前存在数据库 show databases;

进入数据库 use dsp_bsp;

查看数据表 show tables;

新建数据库 create database dsp_bsp;

删除数据库 drop database dsp_bsp;

查看数据表数据 select * from flyway_schema_history;

修改某个字段的值:update catalog_group set site_code="231000000000" where site_code="3701"; (第一个site_code字段后面值是更新后,第二个site_code字段后面值是原值)

通过在linux执行sql语句:

通过use 数据库; //进入数据库

source /opt/uc_menu.sql; //执行opt下放置的sql文件

1、Linux查看并杀死被占用的端口

安装lsof : sudo apt-get install lsof(sudo: apt-get:找不到命令)

查找对应的进程号 : sudo lsof -i:端口号

查找对应的进程号 : sudo kill -9 进程号

netstat -tlnp|grep 端口号

kill -9 进程号

3、root用户添加用户

useradd 新用户名字

4、连接本机redis服务

./redis-cli

5、部署elasticsearch,curl -X GET "127.0.0.1:9200",拒绝连接

检查防火墙状态:systemctl status firewalld,发现是开启的,需要关闭:systemctl stop firewalld,还是拒绝

检查httpd的配置文件:/etc/httpd/conf/httpd.conf  的80端口,是处于监听状态。。。还没解决。。

6、解压缩文件到指定路径

tar -zxvf 文件名.gz -C ../             到上级目录,这里应该放的是相对路径吧

7、grep和find命令的区别

find是根据文件的属性进行查找,如文件名、文件大小、所有者、所属组、是否为空、访问时间、修改时间等。

一.find命令

    基本格式:find  path expression

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的文件

3.使用混合查找方式查找文件

    参数有: !,-and(-a),-or(-o)。

(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件

       (2)find / -user fred -or -user george #在/目录下查找用户是fred或者george的文件文件

       (3)find /tmp ! -user panda #在/tmp目录中查找所有不属于panda用户的文件

二、grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式进行查找匹配。

基本格式:grep expression

  1.主要参数

[options]主要参数:

—R:R的意思是递归的对目录下的所有文件(包括子目录)进行 grep

    -c:只输出匹配行的计数。

    -i:不区分大小写

    -h:查询多文件时不显示文件名。

    -l:查询多文件时只输出包含匹配字符的文件名。

    -n:显示匹配行及行号。

    -s:不显示不存在或无匹配文本的错误信息。

    -v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:

\:忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$: 匹配正则表达式的结束行。

\<:从匹配正则表达式的行开始。

\>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求 。

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。

.:所有的单个字符。

* :有字符,长度可以为0。

2.实例 

(1)grep 'test' d* #显示所有以d开头的文件中包含 test的行

(2)grep ‘test’ aa bb cc #显示在aa,bb,cc文件中包含test的行

(3)grep ‘[a-z]\{5\}’ aa #显示所有包含每行字符串至少有5个连续小写字符的字符串的行

(4)grep magic /usr/src #显示/usr/src目录下的文件(不含子目录)包含magic的行

(5)grep -r magic /usr/src #显示/usr/src目录下的文件(包含子目录)包含magic的行

(6)grep -w pattern files : 只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

8、wc命令:统计指定文件中的行数、字数、字节数,并将统计结果显示输出。

wc  [option]  文件名

-c      统计字节数

-l      统计行数

-m      统计字符数(不能与-c一起使用)

-w     统计字数(一个字被定义为被空白、跳格或换行字符分隔的字符串)

-L      显示最长行的长度

--help   显示帮助信息

--version   显示版本信息

ls  -l |wc  -l 查看有多少个文件

9、403:服务器拒绝请求状态码

10、java float 保留两位小数

float f = 1.2;

DecimalFormat decimalFormat = new DecimalFormat("#.00");//构造方法的字符格式这里如果小数不足两位,会以0补足

String p = decimalFormat.format(price);//format返回的是字符串

十二、软件管理

1、rpm包管理

RPM Package Manager(原Red Hat Package Manager),红帽子的包管理器

也称二进制,无需编译,可以直接使用

无法设定个人设置,开关功能,啥都不能自己设置

软件包示例:正在上传…重新上传取消正在上传…重新上传取消

名字---版本号---发布版本---系统平台---文件后缀

enterprice linux7

YUM工具

Yellow dog Updater,Modified

是一个在Fedoral和RedHat以及CentOS中的shell前端软件包管理器

基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装

可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无需频繁的一次次下载。

目的:通知Linux服务器,通过本机的系统光盘获得软件包,并安装软件

YUM的核心配置目录:/etc/yum.repos.d/ repository仓库,里面有*.repo

1删除官方YUM库

2编写本地YUM库配置文件

vim /etc/yum.repos.d/dvd.repo是YUM的下载地址库目录,里面写以下

[dvd] 某一个库的名称,中括号是必须的

name=dvd库的说明,name是必须的

baseurl=file:///mnt/cdrom 下载库的具体地址,在本机找

gpgcheck=0 gpg:groupPackage关闭包校验

enabled=1 库的开关,1开0关

3挂载安装光盘,光盘放到服务器上还要通电。

ls  /mnt/cdrom 没有这个文件

mkdir  /mnt/cdrom

ls  /dev/cdrom

先去通电

mount /dev/cdrom  /mnt/cdrom 临时挂载,重启就没了

vim /root/.bashrc 命令写进这里面,开机的时候就会执行

4使用YUM安装和卸载软件

yum install -y httpd 安装软件,-yes自动答复

systemctl start httpd 启动软件

systemctl stop firewalld 关闭防火墙

systemctl disable firewalld 禁用防火墙开机自启

5YUM管理RPM包

安装 全新安装yum -y install httpd vsftpd 软件包3  软件包N

重新安装,当软件缺失文件,可尝试重新安装

yum -y reinstall httpd

升级安装yum -y update httpd

yum --help

查询 yum list httpd 带@的是已安装的

卸载 yum -y remove httpd 卸载程序

RPM工具

红帽和CentOS自带的管理RPM包的基本工具,rpm 无法处理依赖。安装无依赖包的时候很方便,不需要配置。

安装 先找到安装包

cd  /mnt/cdrom/Packages

rpm  -ivh  wget-1.14-15.el7.x86_64.rpm i是安装h是百分比v是可视

帮忙下载东西的包,字符的迅雷

rpm  -q  wget 查询有没有装好

rpm  -evh

2、源码包管理

source code 需要经过GCC,C++编译环境编译才能运行

可以设定个人设置,开关功能,但是配置复杂

正在上传…重新上传取消正在上传…重新上传取消

1去官网获取源码包

Tengine:tengine.taobao.org

  或者使用wget命令,加下载地址

wget  -o  存储路径  下载地址 -o指定下载到哪

2部署Tengine

准备编译环境如编译器,下面的是一些常见的编译工具

yum  -y  install  gcc  make  zlib-devel  pcre  pcre-devel  openssl-devel

解压

useradd  www

tar  xvf  tengine-2.2.0.tar.gz

cd tengine-2.2.0

配置          prefix前缀的意思,安装路径

./configure  --user=www  --group==www  --prefix=/usr/local/nginx

编译

make

安装

make  install

启动测试

systemctl  stop  httpd   httpd和nginx有冲突

/usr/local/nginx/sbin/nginx

systemctl  stop  firewalld

访问http://127.0.0.1能看到nginx,说明部署成功

RPM包:已经编译,直接安装,无法修改,简单快捷。

源码包:需要编译,可以修改,操作繁琐。

yum  repolist 查看下载的包

3、一次性调度执行at

Schedule one-time tasks with at

at <TIMESPEC>

<TIMESPEC>示例:

now +5min

teatime tomorrow(teatime is 16:00,下午茶)

noon +4 days 中午

5pm august 3 2029

4:00 2019-11-27

例:

at now +2min 回车

useradd uuuu

ctrl+D输入完毕,提交任务

atq 查询任务

  1. 循环调度执行cron

Schedule recurring jobs with cron

crontab 用于设置周期被执行的指令,从标准输入设备读取命令,存放于crontab文件中,供之后读取和执行。

查看进程状态:

systemctl status crond.service

ps aux | grep crond crond程序运行是计划任务执行的根本

crond执行演示:

ls  /var/spool/cron/ 计划任务存储位置

crontab -e Edit jobs for the current user创建计划

crontab -l List the jobs for the current user查询计划

管理员可以用-u usename去管理其他用户的计划任务

crontab -r Remove all jobs for the current users

删除计划

crontab -e

分时日月周 命令或脚本 六个部分用空格隔开

5 1 15 3 *  命令或者脚本     3月的15号1点05分,每年的这个时候执行,24小时制

*/5 * * * *  命令或脚本 每隔五分钟执行一次

0 2 1,4,6 * *  命令或脚本 每月1、4、6号

0 2 5-9 * *  命令或脚本 每月5-9号2点0分执行一次

* * * * *  命令或脚本 每分钟执行命令

0 * * * *  命令或脚本 每小时0分执行,整点执行

0 2 * * 5  命令或脚本 每个星期五2点整执行一次,月和周都写了取并集

执行完会把结果以邮件的方式发送给我,使用mail命令即可查看,按邮件的序号2即可看

十三、日志管理

1、日志进程

rsyslog系统日志进程,开机他就存在了

关心问题:哪类程序,产生的什么日志,放到什么地方

(各类应用程序,会以自己的方式记录日志)

ps aux | grep rsyslog 名字带个d是该程序的守护进程

常见的日志文件(系统、进程、应用程序)/var下面

tail -10 /var/log/messages 系统主日志文件

tail -f /var/log/messages 动态查看日志文件的尾部

tail /var/log/secure 认证、安全

tail /var/log/yum/log yum

tail /var/log/maillog 跟邮件postfix相关

tail /var/log/cron crond、at进程产生的日志

tail /var/log/dmesg 和系统启动相关

2、日志轮转logrotate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值