linux笔记

简明 VIM 练级攻略
搜索文件夹下是否包含某个字符串
systemctl
鸟哥的 Linux 私房菜学习总结(超赞!!!)
Linux入门教程(超详细)
Linux Shell的18条常用命令整理
详解Docker的网络模式
使用命令:lsof -i:被占用的端口号 查看端口是否被占用

文件系统详解

/bin :可执行文件(所有用户可以执行)
/dev :设备目录(硬件,CPU)
/home :普通用户的家目录(非root用户)
/lib :动态连接库目录(*.so)
/media :挂载目录(光盘,DVD)
/mnt :挂载目录(U盘)
/proc :内核映射目录(在系统运行的时候,把boot里面数据拿到这个目录)
/sbin :超级管理员的执行文件目录
/tmp :临时目录文件,关机,断电数据就被清空。
/var :动态变化的文件的目录(log,数据库文件)
/boot :内核目录
/etc :配置目录(默认安装的程序,配置文件都放在这里)
/lost+found :丢失的文件,可以找回的目录。系统异常断电,异常关机,就会把文件保存到这里。
/opt :第三方程序存放目录
/root :root的家目录
/usr :默认程序安装目录
linux的隐藏文件:目录或者文件名称前面有个小点(.)就是隐藏文件

image.png

什么是Shell指令

image.png

shell就是可以实现操作内核的功能的指令

ll:查看详细信息,是ls –l的简写方式
ll -h 友好显示文件大小
~:代表家目录,表示使用终端登录时所在的目录。
cd - 切换到上一个所在目录
logout:退出登录用户
exit:退出登录用户
su:切换用户的指令
shutdown -h -r -k -c
shutdown:关机指令

image.png

10分钟之后关机
-h:关机
-r:重启
时间:是分钟为单位
时间表示:0和now都是立即执行
shutdown –h 0
shutdown –h now
shutdown –r 0
shutdown –r now
-k:是通知操作,没有任何任务执行

通知其它用户10分钟之后有操作
-c:就是取消其它人操作的重启或者关机shutdown -c
ctrl + c:取消当前任务。这个组合键是可以结束,任何当前终端的正在执行的命令。
halt:立即关机
reboot:立即重启

VIM编辑器的三种模式

普通底行模式:可以实现简单的操作(删除,复制,粘贴)
命令模式:可以实现普通模式的所有操作,并且可以实现更复杂的操作
插入模式:可以写入文件内容

切换到命令行模式:按Esc键;
切换到插入模式:按 i 、o、a键;
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
切换到底行模式:按 :(冒号);
快捷键:
dd – 快速删除一行
R – 替换

image.png

复制:yy
粘贴:p
删除:dd
还原:u
方向键:左:h 右:l 上:k 下:j
再次申明 :linux严格大小写。
删除多行:
3dd:删除3行内容,从光标所在行,向下删除
复制多行:
3yy:复制3行内容,从光标所在行,向下复制
移动的指令:
移动文档首部:gg
移动文档末尾:G
补充:删除 + 粘贴可以实现移动的效果
显示行号:set nu
取消行号:set nonu
搜索:
/work :搜索work
搜索到内容之间移动
向下是:n
向上是:N
实现复制:
1,3co 7:把第1行到第3行的内容拷贝到第7行的下一行
实现删除:
8,10d:把第8行到第10行的内容删除掉
实现移动:
1,3m 13:把第1行到第3行的内容移动到第13行的下一行
显示高亮:
set hls
取消高亮:
set nohls
搜索之后,高亮特别麻烦,可以再次搜索一个没有的值,就达到了取消高亮的效果
打开文件,光标指定到末尾:
image.png

打开文件,光标指定到指定行:
image.png

打开文件,搜索搜索内容:
image.png

搜索到的内容之间移动方式:
向下移动:n
向上移动:N
打开多个文件:
image.png

多个文件之间的切换:
下一个文件:next n
上一个文件:prev
第一个文件:first
最后一个文件:last
强制保存:w!
强制退出:q!
强制保存退出:wq!

tab键:

按一次tab键,当这个值是唯一时,只能补全。
按二次tab键,不是唯一值时,显示多个候选值列表。

Linux中软件的类别

.rpm(表示软件名称)。类似于windows里面的*.exe文件
就是已经编译好的二进制文件包。

rpm安装软件查询

rpm –qa:查看系统上安装的所有rpm包程序
-q:查询
-a:所有
rpm –qa | grep vim

image.png

【|】:管道
grep:是文本内容搜索指令
grep vim:搜索文本内的vim字段,如果搜索到了就显示这一行
管道的作用:就是把左边的结果集,传送给右边的指令使用。
管道特别重要:
查看系统安装了多少rpm软件:
image.png

wc是统计
-l是统计行

rpm软件的卸载

rpm –e 软件名
卸载遇见问题:
依赖的说明:
依赖安装与卸载关系:
安装:a -> b -> c
卸载:c -> b -> a

查看到vim的软件包


image.png

使用rpm指令安装rpm软件

rpm –ivh 软件包
-i:安装的意思
-v:显示安装过程
-h:是#号来显示安装的进度条

Linux中的引导系统

1、vim /etc/grub.conf
查看内容:


image.png

10行:默认启动系统的索引号
11行:倒计时,
12行:背景图片。图片必需是专业的软件来生成的。
13行:隐藏菜单
14行:系统菜单
15-17行:centos的系统菜单
修改内容:


image.png

2、使用grub.conf设置装载口令
1)确定装载口令设置位置:
image.png

2)设置的内容:
password 密码


image.png

设置是明文密码,如果这个文件被查看到。密码就被其它知道。
3)找到给这个文件设置加密指令的参数:
image.png

4)使用这个指令,生成密码。
image.png

grub-md5-crypt:说明使用md5+散列值(crypt)
5)把密钥拷贝到文件里面去:
image.png

6)保存退出,重启系统,验证

打开文件vim /etc/inittab

image.png

18行:0级别运行级别是关机。这个时候设置它,开机就立即关机。不要设置它。
19行:1级别运行级别是单用户模式。这个也不要设置它。
20行:2级别运行级别是多用户模式。网络是没有启用。这个不要设置它。
21行:3级别运行级别是多用户模式。服务器操作模式使用它。
22行:4级别运行级别是预留模式。就是没有任何作用。
23行:5级别运行级别是图形模式。个人用户是可以使用它。
24行:6级别运行级别是重启。这个就是开机就立即重启。没有意义。不要设置它。
26行:数字处,就是设置默认启动模式。
我们一般就使用3与5就可以了。但是当我们学习到后半的时候,就使用3模式,遗忘5模式。

挂载文件系统(/etc/fstab)

根分区(/),boot,swap


image.png

1)打开文件
vim /etc/fstab


image.png

1列:UUID:是唯一标识
2列:分区名称

3列:文件系统类型:ext4支持大文件,比ext3访问速度更快,更高效。
4列:默认值(硬盘数据块的可读可取可执行等)。可以单独给硬盘数据块设置权限
5列:备份(0不备份,1备份)
6列:自检顺序(0不自检,从1开始按顺序自栓)

用户与组

组文件:
/etc/group:组文件
/etc/gshadow:组密码文件
用户文件:
/etc/passwd:用户文件
/etc/shadow:密码文件
组文件详解

image.png

以冒号分割说明:
1列:组名
2列:组密码(以x为占位符)
3列:组编号,是唯一的值
4列:附属组成员
组密码文件详解
image.png

以冒号分割说明:
1列:组名
2列:密码(空就是没有密码,!就是没有密码)
3列:组管理员
4列:附属组成员
用户文件详解
image.png

以冒号分割说明:
1列:用户名
2列:密码(以x占位)
3列:用户编号,唯一值。
4列:组编号
5列:注释
6列:家目录
7列:用户登录系统时,使用的shell类型。
重点说明:/sbin/nologin:设置成这个的,就是不能登录系统的。一般是软件使用的用户,就这样设置。
用户密码文件详解
image.png

1列:用户名
2列:密码(!!和*都是空密码的意思,空也是空密码)

组相关指令

groupadd:添加组
-g:指定编号


image.png

groupmod:修改
-n:修改名称


image.png

示例:groupmod –n 新名称 旧名称
-g:修改编号
image.png

示例:groupmod –g 新编号 名称
groupdel:删除


image.png

tail:看查内容,查看文件最后几行的内容
默认查看文件最后10行内容。

与用户相关指令

useradd:添加用户


image.png

usermod:修改用户
-c:修改注释


image.png

-l:修改名称
image.png

示例:usermod –l 新名称 旧名称
-u:修改编号


image.png

示例:usermod –u 新编号 名称
userdel:删除
image.png

-r:删除的时候,把家目录一起删除。

使用man指令查看帮助手册

man userdel
帮助方式二:
useradd --help
简要帮助信息
useradd -h 这个参数有的时候,是有的,有的时候是没有的。
重点说明:当你在使用某些可执行文件的时候,如果不知道如何使用。
请使用—help查看。很多时候,都会出现帮助信息。
• 某个命令 --h ,对这个命令进行解释
• 某个命令 --help ,解释这个命令(更详细)
man某个命令 ,文档式解释这个命令(更更详细)(执行该命令后,还可以按/+关键字进行查询结果的搜索)

设置用户口令

-S:这是查看用户密码状态


image.png

-l:锁定用户


image.png

-u:解锁用户
image.png

-d:删除密码


image.png

重点说明:删除用户的密码之后,必需锁定用户才可以。不然可以直接登录。这样是非常不安全。
shadow文件:空密码表示可以登录,!!表示禁止登录。

禁止普通用户登陆

1)禁止某个用户登陆


image.png

2)禁止所有普通用户登录
创建这个文件:/etc/nologin
vim /etc/nologin:打开的时候,直接保存退出

显示用户信息

id bigc:指定用户的信息查看


image.png

groups:查看组信息


image.png

groups bigc :查看指定用户的组信息
image.png

查看用户的资料信息

chfn:设置信息


image.png

finger:查看信息


image.png

报错:这个错误是说这个指令,没有!!!
安装finger:光盘加载过程,参考昨天的VIM安装
image.png

使用finger root


image.png

用户相关的指令

su:切换用户
-:切换用户的时候,使用切换用户的环境变量
whoami:知道我是谁?

批量添加用户实践

1)用户文件
创建一个文本:user.txt
vim user.txt


image.png

2)密码文件
vim pass.txt


image.png

3)newusers:把user.txt的内容移动到/etc/passwd里面去
image.png

4)pwunconv:把/etc/shadow里面的密码移动到/etc/passwd里面去
image.png

5)chpasswd:把pass.txt的密码移动到/etc/passwd里面去


image.png

6)pwconv :把/etc/passwd里面的密码移动到/etc/shadow里面去
image.png

配置sudo权限

开始配置:需要进入到root账户:
1)打开文件:
vim /etc/sudoers
root的示例:

image.png

用户名 ALL(主机)=[(ALL)]指运行指定用户的权限 ALL(指令)
bigc ALL=(root)/sbin/shutdown
说明这个示例:
bigc:是开通权限的用户
ALL:主机
(root):是可有可无。没有就默认是root用户。可以指定其它用户
/sbin/shutdown:命令
image.png

使用bigc操作:
image.png

说明,执行成功:
使用sudo的时候,需要输入一次密码。
密码就是当前使用sudo这个指令的用户的密码
sudoers配置的时候,可以限制到参数级别:
image.png

总结:bigc以root的权限来运行/sbin/shutdown –r 10命令。
重点说明:写的指令必需是绝对路径
-l:查看我们有哪些特殊权限:
image.png

whereis:我在哪里的
image.png

总结:whereis可以找到指令命令所在的绝对路径。

查看文件属性

ls –l:查看文件属性


image.png

1列:文件类型:
-:文本内容
d:目录
l:软链接文件(类似于windows上的快捷方式)
2列:权限位
前面3个字符:属主权限
中间3个字符:属组权限
后面3个字符:其它权限
3列:硬链接
4列:属主
5列:属组
6列:文件大小
7列:日期
8列:文件或者目录名
权限可以使用数字表示
r = 4 , w = 2 , x = 1 , - = 0
使用数字表示的时候:
属主(可以用1位数字代表rwx)
属组(可以用1位数字代表rwx)
其它(可以用1位数字代表rwx)
rwxrwxrwx = 777

更改文件权限(非常重要)

chmod:权限修改


image.png

使用字符修改:
u:属主;g:属组;o:其它;a:全部
减去权限:[-]
增加权限:[+]


image.png

-R:多级目录修改(递归)
image.png

chown:修改属主


image.png

-R:多级目录修改(递归)
image.png

chgrp:属组
image.png

-R:多级目录修改(递归)
image.png

chown:太强大了。不仅能修改属主而且能修改属组
chown [属主]:[属组] 文件名
单独修改属组:
image.png

一起来:


image.png

这里:只要记住chown与chmod这个命令。
出镜率太高,一定要搞定它。

目录操作(创建目录与删除目录)

mkdir:创建目录
-p:多级目录修改(递归)


image.png

-m:创建目录的时候,指定权限


image.png

rmdir:删除目录
-p:多级目录修改(递归)
删除目录的时候,必需写到最内层的目录。向外删除时,如果不是空目录,就不会删除。

mkdir –p

文件操作(创建文件与删除文件)

touch:创建文件
rm:删除
-f:强制删除
-r:删除多级目录:
这个-r就回答了,我们为什么rmdir基本不使用了。
rm –rf 目录
注意:
rm –rf 是很强大的指令。不要随便使用。
比如:你在root下面执行:rm –rf /
说明:不要任意删除文件。在服务器上删除文件,都使用假删除。就是把名称修改了。一般都加个后缀(.bak)
工作中的数据是非常重要的,请保存半年以上,才看看可不可以删除。

复制与剪切(重命名)操作

cp:复制
复制的时候,可以更改名称


image.png

-R:复制目录


image.png

-p:复制内容时,不修改属性。
image.png

这个参数特别有用。因为服务器,很多时候,都是多人开发多人操作的。所有在移动别人的文件,请使用些参数

mv:移动文件:
mv:重命名


image.png

wc文件统计

wc:统计
-l:行
-c:字符
-w:单词
因为英文分割,以空格来计算


image.png

grep搜索匹配行

grep:文本内容搜索
grep lang anaconda-ks.cfg 在文件中查找lang
grep lang anaconda-ks.cfg --color 高亮显示

image.png

-n:显示行号
image.png

-c:统计搜索到的次数
image.png

-i:不区分大小写
image.png

显示文件内容

cat:内容打印打屏幕
tac:内容以行反着打印在屏幕

image.png

cat、more、less、tail
more
一般用于要显示的内容会超过一个画面长度的情况
空格显示下一页数据 回车显示下一行的数据 按 q 键退出查看。
less
用法和more类似,不同的是less可以通过PgUp、PgDn键来控制。
tail -F catalina.log 动态查看日志

创建链接

ln:创建硬链接
-s:软链接

文件查找

find:示例: find [目录参数] [选项参数] value
-name:文件名


image.png

使用通配符[*]:


image.png

通配可以在很多指令中使用。cp,mv都可以。
-group:通过属组查
image.png

-user:通过属主查


image.png

重点:说明一下,属主和属组是不能使用通配符!
xargs:使用:
image.png

image.png

显示磁盘信息

df :
-h:以1024进制显示硬盘信息
-H:以1000进制显示硬盘信息
-T: 显示文件系统类型

image.png

-t:加文件系统类型:就是显示指定文件系统类型
image.png

-x:加文件系统类型:就是不显示指定文件系统类型
image.png

挂载磁盘(应用U盘、移动设备)

mount:挂载数据


image.png

umount:卸载数据


image.png

重点:正在使用光盘数据的时候,是不能卸载的。
eject:弹出
image.png

配置Linux网络

网络配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0)


image.png

说明:
DEVICE:设备名称,不要修改
BOOTPROTO:网络获取方式,dhcp是自动获取网络方式。none是手工设置IP地址。
HWADDR:物理地址(MAC地址):不能修改
ONBOOT:yes是开机就自启动。必需设置成yes。no是开机不启动,不要设置
IPADDR:IP地址
NETMASK:子网掩码
GATEWAY:默认网关
NM_CONTROLLED:网络管理软件是否开机,最好是关闭。因为设计的初衷是想更方便的管理网络,但是实际使用的时候,让网络管理更麻烦。NO,关闭些服务,建议!
手动设置ip地址
1)修改配置文件eth0
查找一个ping不通的ip地址:
重点说明:ip地址分成4段。前3段必需保持一致,后1段的值是1-254之间。


image.png

2)重启网络服务
image.png

3)ping,验证网络是否启动

网卡操作指令

ifconfig:查看启动网络
ifdown:关闭指定的网卡
ifup:开启指定的网卡

image.png

service:服务启动
service network start
重启:
service network restart
关闭:
service network stop
查看状态:
service network status
service network与ifconfig的区别:
service network是整个网络服务的操作
ifconfig是指定具体的某个网卡的操作
ping -c:指定发送的次数
image.png

重点说明:配置好网卡,请使用service 来关闭网卡,再开启网卡。
启动FTP服务
service vsftpd [start|restart|stop|status]

SSH服务

1、启动sshd服务
service sshd status
这个软件是默认安装,并且开机自启动。
2、使用SSH实现文件上传与下载
ftp是明文输送内容,可被查看的,不安全的。
ssh是加密输送内容的,是特别安全。
3、SCP指令
scp 本地文件 远程文件 :上传文件
使用sshd服务的连接,再第一次的时候,都需要输入yes。
scp 远程文件 本地文件 :下载文件
scp –r 文件夹 文件夹 :传输文件夹


image.png

卸载Apache软件(httpd)

image.png

找到之后,开始卸载:


image.png

发现问题,不能卸载。
强制卸载:
rpm –e 软件名 --nodeps


image.png

卸载MySQL软件

查找-强制卸载:


image.png

卸载PHP软件

image.png

image.png

软件的安装顺序

1、AMP
首先安装Apache软件
再次安装MySQL软件
最后安装PHP软件
因为这样安装会让apache自动生成PHP模式的。和windows安装方式一样。
源码包
1)与rpm包安装的区别
rpm安装是和windows一样*.exe一样的安装方式。是一个默认安装。默认安装很多东西都是设定好的。不能自己修改。
源码安装:是可以实现最大自由的自定义安装。比如PHP有很多扩展,可以在安装的时候,选择安装指定的扩展。
2)源码包安装步骤
./configure:是检查软件包与系统是不是可以正常工作。可以安装就会生成makefile文件。
make:使用makefile文件里面的内容,生成二进制文件。
make install:使用二进制文件,安装好我们想要的软件。
tar –zxf 压缩包
-v:显示解压过程。参数[f]一定是在选项参数的最后面。

ps –ef :查看系统的所有进程
查看httpd的进程
ps –ef | grep httpd
ps –ef | grep mysql
3)修改我们的root用户密码:
/usr/local/mysql/bin/mysqladmin –u root password

配置快捷启动

apache的快捷启动:
ln -s /working/httpd/bin/apachectl /bin/httpd


image.png

mysql的客户端快捷方式:
ln -s /usr/local/mysql/bin/mysql /bin/


image.png

配置自启动服务

开机自启动的配置文件:
/etc/rc.d/rc.local:文件路径
如果配置?
就是把程序写在里面就可以了。
告诉大家新的写入文件方式:
但是必需备份:

image.png

apache的开机自启动服务配置:
echo '/working/httpd/bin/apachectl start' >> /etc/rc.d/rc.local
mysql的服务端写入:
echo "/usr/local/mysql/support-files/mysql.server start" >> /etc/rc.d/rc.local
[>>] :是追加写入的意思
[>] :是覆盖写入的意思
cat /etc/passwd > a.txt 将输出定向到a.txt中
cat /etc/passwd >> a.txt 输出并且追加

yum install 软件名
yum安装的优势:自动解决依赖关系。
先安装mysql的服务端,客户端会默认安装好。
如果先安装mysql的客户端,服务端并不会安装好。
客户端:mysql
yum install mysql -y
服务端:mysql-server
yum install mysql-server -y
mysql服务端的启动:
service mysqld [start|restart|stop]
修改默认的root密码:
/usr/bin/mysqladmin -u root password '123456'
PHP的安装:
yum install php -y

【tar】(打包或解压)

tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
打包:
tar –cvf xxx.tar ./*
打包并且压缩:
tar –zcvf xxx.tar.gz ./*
解压
tar –xvf xxx.tar (解压到当前目录)
tar -xvf xxx.tar.gz -C /usr/aaa (解压到指定目录)

管道和命令执行控制

管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
示例
ls --help | more 分页查询帮助信息
ps –ef | grep java 查询名称中包含java的进程
ifconfig | more
cat index.html | more
命令之间使用 && 连接,实现逻辑与的功能。
只有在 && 左边的命令返回真(命令返回值 ? == 0),&& 右边的命令才会被执行。 只要有一个命令返回假(命令返回值? == 1),后面的命令就不会被执行。
mkdir test && cd test
补充:
netstat -nltp | grep 3306 查找端口占用的程序

主机名配置

hostname 查看主机名
hostname xxx 修改主机名 重启后无效
如果想要永久生效,可以修改/etc/sysconfig/network文件

IP地址配置

Setup设置ip地址
ifconfig 查看(修改)ip地址(重启后无效)
ifconfig eth0 192.168.12.22 修改ip地址
如果想要永久生效
修改 /etc/sysconfig/network-scripts/ifcfg-eth0文件

域名映射

/etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用

网络服务管理

service network status 查看指定服务的状态
service network stop 停止指定服务
service network start 启动指定服务
service network restart 重启指定服务
service ---status–all 查看系统中所有后台服务
netstat –nltp 查看系统中网络进程的端口监听情况

防火墙设置

防火墙根据配置文件/etc/sysconfig/iptables来控制本机的”出”、”入”网络访问行为。
service iptables status 查看防火墙状态
service iptables stop 关闭防火墙
service iptables start 启动防火墙
chkconfig iptables off 禁止防火墙自启
放行端口
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
保存修改
/etc/rc.d/init.d/iptables save
查询状态
/etc/init.d/iptables status
关闭端口
iptables -I INPUT -p tcp --dport 端口 -j DROP
打开关闭防火墙
(即时生效,重启后失效)
service iptables start
重启后生效
chkconfig iptables on
chkconfig iptables off

其他网络通讯的命令

ifconfig 显示或设置网络设备。
ifconfig 显示网络设备
ifconfig eth0 up 启用eth0网卡
ifconfig eth0 down 停用eth0网卡
ping 探测网络是否通畅。
ping 192.168.0.1
netstat 查看网络端口。
netstat -nltp | grep 3306
查询3306端口占用情况

系统管理的命令

date 显示或设置系统时间
date 显示当前系统时间
date -s “2014-01-01 10:10:10“ 设置系统时间
df 显示磁盘信息
df –h 友好显示大小
free 显示内存状态
free –m 以mb单位显示内存组昂头
top 显示,管理执行中的程序
clear 清屏幕
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
kill 杀掉某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
du 显示目录或文件的大小。
du –h 显示当前目录的大小
who 显示目前登入系统的用户信息。
hostname 查看当前主机名
修改:vi /etc/sysconfig/network
uname 显示系统信息
uname -a 显示本机详细信息。
依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称

设置开机自动启动mysql

加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on
查询列表:
chkconfig

mysql开启远程服务

先登录mysql:(注意:先使用mysql -u root -p登录)
grant all privileges on *.* to 'root' @'%' identified by ‘123456’ ;
flush privileges;

Bash 常用命令

• TAB键 ,自动补全命令(按一次自动补全,连续按两次,提示所有以输入开头字母的所有命令)
• history ,查看所有的历史命令
• Ctrl + r ,进入历史命令的搜索功能模式
• hostname ,查看当前登陆用户全名
• firefox& ,最后后面的 & 符号,表示使用后台方式打开 firefox,然后显示该进程的 PID 值
• jobs ,查看后台运行的程序列表
• ifconfig ,查看IP等信息(常用)
• locate 搜索关键字 ,快速搜索系统文件/文件夹(类似 Windows 上的 everything 索引式搜索)(常用)
• updatedb ,配合上面的locate,给locate的索引更新(locate默认是一天更新一次索引)(常用)
• su :切换到 root 用户,终端目录还是原来的地方(常用)
• su - :切换到 root 用户,其中 - 号另起一个终端并切换账号
• su 用户名 ,切换指定用户帐号登陆,终端目录还是原来地方。
• su - 用户名 ,切换到指定用户帐号登陆,其中 - 号另起一个终端并切换账号
• exit ,注销当前用户(常用)
• sudo 某个命令 ,使用管理员权限使用命令(常用)
• passwd ,修改当前用户密码(常用)
• date ,查看系统时间(常用)
• date -s20080103 ,设置日期(常用)
• date -s18:24 ,设置时间,如果要同时更改 BIOS 时间,再执行 hwclock --systohc (常用)
• cal ,在终端中查看日历,肯定没有农历显示的
• uptime ,查看系统已经运行了多久,当前有几个用户等信息(常用)
• echo "字符串内容" ,输出"字符串内容"
• cat 文件路名 ,显示文件内容(属于打印语句)
• cat -n 文件名 ,显示文件,并每一行内容都编号
• more 文件名 ,用分页的方式查看文件内容(按 space 翻下一页,按 Ctrl + B 返回上页)
• less 文件名,用分页的方式查看文件内容(带上下翻页)
• 按 j 向下移动,按 k 向上移动
• 按 / 后,输入要查找的字符串内容,可以对文件进行向下查询,如果存在多个结果可以按 n 调到下一个结果出
• 按 ? 后,输入要查找的字符串内容,可以对文件进行向上查询,如果存在多个结果可以按 n 调到下一个结果
• tail -200f 文件名 ,查看文件被更新的新内容尾200行,如果文件还有在新增可以动态查看到(一般用于查看日记文件)
• shutdown
• shutdown -hnow ,立即关机
• shutdown -h+10 ,10分钟后关机
• shutdown -h23:30 ,23:30关机
• shutdown -rnew ,立即重启
• poweroff ,立即关机(常用)
• reboot ,立即重启(常用)
• zip mytest.zip /opt/test/ ,把 /opt 目录下的 test/ 目录进行压缩,压缩成一个名叫 mytest 的 zip 文件
• unzip mytest.zip ,对 mytest.zip 这个文件进行解压,解压到当前所在目录
• unzip mytest.zip -d /opt/setups/ ,对 mytest.zip 这个文件进行解压,解压到 /opt/setups/ 目录下
• tar -cvf mytest.tar mytest/ ,对 mytest/ 目录进行归档处理(归档和压缩不一样)
• tar -xvf mytest.tar ,释放 mytest.tar 这个归档文件,释放到当前目录
• tar -xvf mytest.tar -C /opt/setups/ ,释放 mytest.tar 这个归档文件,释放到 /opt/setups/ 目录下
• last ,显示最近登录的帐户及时间
• lastlog ,显示系统所有用户各自在最近登录的记录,如果没有登录过的用户会显示 从未登陆过
• du -sh /opt/setups/ ,显示 /opt/setups/ 目录所占硬盘空间大小(s 表示 –summarize 仅显示总计,即当前目录的大小。h 表示 –human-readable 以 KB,MB,GB 为单位,提高信息的可读性)
• chmod 777 文件名 ,给指定文件增加最高权限。linux 的权限分为 rwx,这三个权限都可以转换成数值表示,r = 4,w = 2,x = 1,- = 0,所以总和是 7,也就是最大权限。第一个 7 是所属主(user)的权限,第二个 7 是所属组(group)的权限,最后一位 7 是非本群组用户(others)的权限。
• ls -R ,显示出目录下以及其所有子目录的文件 / 文件夹(递归地方式,不显示隐藏的文件)
• ls -a -R ,显示出目录下以及其所有子目录的文件 / 文件夹(递归地方式,显示隐藏的文件)
• -rwxr-xr-x. 1 root root 4096 3月 26 10:57,最前面的 - 表示这是一个普通文件
• lrwxrwxrwx. 1 root root 4096 3月 26 10:57,最前面的 l 表示这是一个链接文件,类似 Windows 的快捷方式
• drwxr-xr-x. 5 root root 4096 3月 26 10:57,最前面的 d 表示这是一个目录
• ls -ld 目录名 ,显示该目录的基本信息
• ls -t ,依照文件最后修改时间的顺序列出文件名。
• ls -F ,列出当前目录下的文件名及其类型。以 / 结尾表示为目录名,以 * 结尾表示为可执行文件,以 @ 结尾表示为符号连接
• ls -lg ,同上,并显示出文件的所有者工作组名。
• ls -lh ,查看文件夹类文件详细信息,文件大小,文件修改时间
• ls /opt | head -5 ,显示 opt 目录下前5条记录
• ls -l /opt |grep "^-"|wc -l ,统计 opt 目录下文件的个数,不会递归统计
• ls -lR /opt |grep "^-"|wc -l ,统计 opt 目录下文件的个数,会递归统计
• ls -l /opt |grep "^d"|wc -l ,统计 opt 目录下目录的个数,不会递归统计
• ls -lR /opt |grep "^d"|wc -l ,统计 opt 目录下目录的个数,会递归统计
• ls -lR /opt |grep "js"|wc -l ,统计 opt 目录下 js 文件的个数,会递归统计
• cd - ,上一个工作目录
• cd ~user ,改变目录位置至用户的工作目录。
• cd ../user ,改变目录位置至相对路径user的目录下。
• cp 源文件 目标文件 ,复制文件
• cp -r 源文件夹 目标文件夹 ,复制文件夹
• cp -r -v 源文件夹 目标文件夹 ,复制文件夹(显示详细信息,一般用于文件夹很大,需要查看复制进度的时候)
• tar cpf - . | tar xpf - -C /opt ,复制当前所有文件到 /opt 目录下,一般如果文件夹文件多的情况下用这个更好,用 cp 比较容易出问题
• mv 文件 目标文件夹 ,移动文件到目标文件夹
• mv 文件 ,不指定目录重命名后的名字,用来重命名文件
• touch 文件名 ,创建一个空白文件/更新已有文件的时间(后者少用)
• mkdir -p /opt/setups/nginx/conf/ ,创建一个名为 conf 文件夹,如果它的上级目录 nginx 没有也会跟着一起生成,如果有则跳过
• rmdir 文件夹名 ,删除文件夹(只能删除文件夹里面是没有东西的文件夹)
• rm 文件 ,删除文件
• rm -r 文件夹 ,删除文件夹
• rm -r -i 文件夹 ,在删除文件夹里的文件会提示(要的话,在提示后面输入yes)
• rm -r -f 文件夹 ,强制删除
• rm -r -f 文件夹1/ 文件夹2/ 文件夹3/ 删除多个
• find . -name lin ,其中 . 代表在当前目录找,-name 表示匹配文件名 / 文件夹名,lin 用通配符搜索含有lin的文件或是文件夹
• find . -iname lin ,其中 . 代表在当前目录找,-iname 表示匹配文件名 / 文件夹名(忽略大小写差异),lin 用通配符搜索含有lin的文件或是文件夹
• find / -name .conf ,其中 / 代表根目录查找,.conf代表搜索后缀会.conf的文件
• find /opt -name .oh-my-zsh ,其中 /opt 代表目录名,.oh-my-zsh 代表搜索的是隐藏文件 / 文件夹名字为 oh-my-zsh 的
• find /opt -type f -iname .oh-my-zsh ,其中 /opt 代表目录名,-type f 代表只找文件,.oh-my-zsh代表搜索的是隐藏文件名字为 oh-my-zsh 的
• find /opt -type d -iname .oh-my-zsh ,其中 /opt 代表目录名,-type d 代表只找目录,.oh-my-zsh代表搜索的是隐藏文件夹名字为 oh-my-zsh 的
• find . -name "lin" -execls -l{}; ,当前目录搜索lin开头的文件,然后用其搜索后的结果集,再执行ls -l的命令(这个命令可变,其他命令也可以),其中 -exec 和 {}; 都是固定格式
• df -h ,查看磁盘大小和使用空间
• du -sh /opt ,查看 opt 这个文件夹大小 (h 的意思 human-readable 用人类可读性较好方式显示,系统会自动调节单位,显示合适大小的单位)
• du -sh ./
,查看当前目录下所有文件夹大小 (h 的意思 human-readable 用人类可读性较好方式显示,系统会自动调节单位,显示合适大小的单位)
• cat /etc/resolv.conf ,查看 DNS 设置

常用压缩包解压命令整理

• Linux 后缀为 .tar.gz 格式的文件-解压
• 命令: tar zxvf XXXXXX.tar.gz
• Linux 后缀为 .bz2 格式的文件-解压
• 命令: bzip2 -d XXXXXX.bz2
• Linux 后缀为 .tar.bz2 格式的文件-解压
• 命令: tar jxvf XXXXXX.tar.bz2
• Linux 后缀为 .tar 格式的文件-解压
• 命令: tar zxvf XXXXXX.tar
• Linux 后缀为 .gz 格式的文件-解压
• 命令: gunzip XXXXXX.gz
• Linux 后缀为 .zip 格式的文件-解压
• 命令: unzip XXXXXX.zip
• 命令: unzip XXXXXX.zip -d /opt/ ,解压到指定目录
• Linux 后缀为 .7z 格式的文件-解压
• 命令: 7za x XXXXXX.7z
• Linux 后缀为 .tar.xz 格式的文件-解压,解压出来是tar,再对tar进行解压
• 命令: tar xf XXXXXX.tar.xz

常用文件进行压缩命令整理

• Linux 压缩文件为后缀 .tar 格式的文件
• 命令: tar -zcvf test11.tar test11
• Linux 压缩文件为后缀 .tar.gz 格式的文件
• 命令: tar -zcvf test11.tar.gz test11
• Linux 压缩文件为后缀 .bz2 格式的文件
• 命令: bzip2 -v test.txt
• Linux 压缩文件为后缀 .tar.bz2 格式的文件
• 命令: tar -jcvf test11.tar.gz test11
• Linux 压缩文件为后缀 .zip 格式的文件
• 命令: zip -r test1.zip /opt/test1/
• Linux 压缩文件为后缀 .7z 格式的文件
• 命令: 7za a test1.7z /opt/test1/

特殊格式

• 7z
• 7z 的安装:
• 访问官网下载解压包:http://sourceforge.net/projects/p7zip/files/p7zip/
• 解压压缩包: tar jxvf p7zip_15.14_src_all.tar.bz2
• 进入目录: cd p7zip_15.14
• 执行安装: sh install.sh
• rar
• rar 的安装:
• 下载: wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz
• 解压下载下来的压缩包: tar zxvf rarlinux-3.8.0.tar.gz
• 进入解压后目录: cd rar
• 编译: make
• 安装: make installrar 解压: rar x 文件名.rar

• 查看是否已安装:
• CentOS: rpm -qa | grep openssh

image.png

执行记录日志: cd /var/log/cron
shell 脚本面试题

名称:expr
命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。
–格式为:
expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)
用空格隔开每个项;
用 \ (反斜杠) 放在 shell 特定的字符前面;
对包含空格和其他特殊字符的字符串要用引号括起来
–expr用法实例讲解:
(1)、计算字串长度
expr length “this is a test”
14
(2)、抓取字串
expr substr “this is a test” 3 5
is is
(3)、抓取第一个字符数字串出现的位置
expr index “sarasara” a
2
(4)、字串真实重现
expr quote sara
sara
(5)、整数运算
expr 14 % 9
5
expr 30 / 3 / 2
5
expr 30 * 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
90
expr: Syntax error
(6)、增量计数
说明:expr在循环中用于增量计算。先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。
LOOP=0
LOOP=expr $LOOP + 1
(7)、数值测试
说明:用expr测试一个数。如果试图计算非整数,则会返回错误。
> rr=3.4
> expr $rr + 1
expr: non-numeric argument
> rr=5
> expr $rr + 1
6
(8)、模式匹配
说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
> VALUE=account.doc
> expr $VALUE : &[ls](http://www.linuxso.com/command/ls.html)quo;.*’
8
在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。
$expr $VALUE : ‘.∗.doc’
accounts

1.crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过/etc/cron.deny 和 /etc/cron.allow 这两个文件来禁止或允许
用户拥有自己的crontab文件。
2、检查是否安装了crontab,如果提示未安装请自行安装,crontab安装包在系统光盘里面的pacekage文件夹crontabs安装包。
设置crond开机自动启动
crontab服务启动与关闭
12、实例:
每月每天凌晨3点30分和中午12点20分执行test.sh脚本
30 3,12 * * * /home/test.sh
每月每天早上8点到下午18点每隔2小时的每30分钟执行test.sh脚本
30 8-18/2 * * * /etc/init.d/network restart
每月每天晚上21点30分执行test.sh脚本
30 21 * * * /etc/init.d/network restart
每月1号、10号、22号凌晨4点45分执行test.sh脚本
45 4 1,10,22 * * /etc/init.d/network restart
8月份周一、周日凌晨1点10分执行test.sh脚本
10 1 * 8 6,0 /etc/init.d/network restart
月每天每小时整点执行test.sh脚本
00 */1 * * * /etc/init.d/network restart
注意:
写法不规范,分钟应该写成 00
* 23,00-07/1 * * * /etc/init.d/network restart
强调,周和日尽量不要同时使用,否则达不到想要的效果
00 11 * 4 1-3 /etc/init.d/network restart

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容

  • 1 [wang@localhost etc]$ 那个 ~ 符号代表的是『用户的家目录』的意思,他是个『变量!』 。...
    求闲居士阅读 282评论 0 0
  • Linux习惯问题: 在vim编辑时,按了ctrl + s后,再按ctrl + q就可以继续执行了。ctrl + ...
    光着脚的鞋阅读 4,486评论 0 16
  • Linux笔记 基于 CentOS7.4 1.分区 2.基础 3.文件权限 4.常用命令 5.shell快捷键 分...
    佛系跳伞运动员阅读 255评论 0 1
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,720评论 0 10
  • 各位家人们好,我是今天刚加入的新成员,感谢各位领导给予我学习《六项精进》的机会。昨天晚上是周部长带我们回来,在这里...
    啵啵啵啵啵啵_562c阅读 261评论 0 0