linux知识点整理
第一单元《Linux系统简介及安装》
- linux的理解:linux是一个计算机操作系统
- Vmware的理解:
vmware
是一个虚拟主机软件
- Linux的版本:
centos
只是
linux
发行版本的一种,
linux
的版本有很多
- Linux的发展:
linux
是由
unix
发展过来的
- Linux下查看
ip
的命令:
ifconfig
此命令必须是超级管理员才能使用
- Linux下切换用户的命令是:
su
- Linux和
windows
的异同:都是操作系统,
linux
安全性能以及运行效率都比
windows
要高,
windows
操作系统安全性能较低
- Linux的
ip
理解:
Linux
的
ip
也可以作修改,可以在安装完成后使用命令
setup
来修改
ip
- Linux安装的模式的理解:
linux
的安装可以选择图形界面安装也可以选择文本模式安装
- Linux运行级别的文件地址:
/etc/inittab
- Linux常用的关机命令:
halt
、
poweroff
、
shutdown -h now
(立刻关机)、
shutdown -h 10
(
10
分钟后关机)
- Linux常用的重启命令:
reboot
、
shutdown -r now
(立刻重启)、
shutdown -r 10
(
10
分钟后重启)
- Linux下修改
ip
的文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
第二单元《Linux
文件常用命令》
- Linux命令格式:命令 选项 参数
- Linux的文件属性:
r:可读 权限码为
4
W:可写 权限码为
2
X:可执行 权限码为
1
3、有一个文件属性为:
-rw-r--r--
分析:
第一个字符为-
代表文件,为
d
代表目录,剩下的
3
个字符为一组
第一组为:owner
简称
u
文件或者目录的所有者
第二组为:group
简称
g
文件或者目录的用户组
第三组为:others
简称
o
文件或者目录的非用户组的操作者
- 改变文件的属性与权限命令:chmod
- 数字码修改文件权限:例如:chmod 777 a.txt //
将
a.txt
的权限无论是用户、还是用户组、还是非此用户组的操作者的权限都设置为可读、可写、可执行
6、字符修改文件权限:例如:
chmod u=rw
,
g=r
,
o=r a.txt //
将
a.txt
的用户权限设置为可读、可写,用户组的权限设置为可读,非此用户组的操作者的权限设置为可读(注:也可以对其中的一个组做出修改,例如:
chomd u=rwx
就是将用户的权限设置为可读、可写、可执行)
7、扩展:
可以使用+ -
来修改文件或者目录的权限
例如:chmod u+r a.txt //
将
a.txt
的用户添加了一个可读权限
Chmod g-w a.txt //将
a.txt
的用户组减去了一个可以写的权限
注:如果三个组的操作权限相同可以是直接使用a
来赋权限
例如:chmod a=rwx a.txt //
将
a.txt
的权限无论是用户、还是用户组、还是非此用户组的操作者的权限都设置为可读、可写、可执行
8、新建文件:
touch
路径
/
文件名
例如:touch /tmp/test.txt //
在
tmp
目录下建立一个
test.txt
的文本文件
9、复制文件:
cp
文件名 路径
/
文件名
例如:cp a.txt bbb/b.txt //
将
a.txt
文档拷贝到
bbb
目录下重命名为
b.txt
10、移动文件:
mv
文件名 路径
/
文件名
例如:mv a.txt bbb/b.txt //
将
tmp
下的
res.txt
文档移动到
aaa
目录下重命名为
des.txt
11、删除文件:
rm
路径
/
文件名
例如:rm -f /tmp/test.txt
(
-f
没有提示信息)
//
删除
tmp
目录下的
test.txt
文档没有提示
12、查看文件内容:
cat
路径
/
文件名
例如:cat /etc/services //
查看
etc
目录下的
service
文件全屏显示
head -n /etc/services(查看文件前
n
行的内容)
tail -n /etc/services(查看文件后
n
行内容)
more /etc/services
(文件内容会一屏一屏的显示出来,你只需用空格键就可以下翻了)
13、重定向:
>
是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;
>>这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
Cat /etc/services > a.txt(输出重定向只需要加上
>
这位一个符号就可以了
)
14、管道符的使用:
cat /etc/services | more
(
cat
显示出来的内容重新输出给
more
命令就可以达到想要效果)
15、文件查找:
find -name
文件名
例如:find aaa -name a.txt //
查找
aaa
目录下的名称为
a.txt
的文件
Find aaa -name
‘
*.php
’
//
查找
aaa
目录下后缀名为
.php
的文件
16、
压缩、解压文件:
gzip
例如:gzip aaa/a.php //将aaa目录下的a.php文件进行压缩
例如:gzip -d aaa/a.php.gz //将aaa目录下的a.php.gz文件进行解压
17、压缩、解压文件:bzip2
例如:
bzip2
aaa/a.php //将aaa目录下的a.php文件进行压缩
例如:
bzip2
-d aaa/a.php.bz2 //将aaa目录下的a.php.bz2文件进行解压
- 帮助命令:--help man
- table功能补全键
第三单元 LINUX目录常用命令
1、相对路径:路径的写法不是由
/
写起,例如:由
/usr/share/doc
要到
/usr/share/man
下面时,可以写成’
cd ../man
’,写对路径的意义指相对于目前工作目录的路径
绝对路径:路径的写法一定由根目录/
写起,例如
/usr/share/doc
这个目录
2、切换目录:
cd
目录名
例如:cd .. //
回到上级目录
例如:cd /etc/aaa //
进入到
etc
目录下的目录里
3、查看文件与目录:
ll ls
例如:cd aaa
目录下 使用
ll
将所有的文件和目录以列表的形式展示出来
ls
一样
Ls -a:列出全部的文件,连同隐藏文件也一起列出来
Ls -d:仅列出目录本身,而不是列出目录内的文件数据
Ls -l:列出长数据串,包含文件的属性与权限等数据
4、创建目录:
mkdir
路径
/
目录名称
-p:创建多级目录
例如:mkdir -p /aaa/bbb/ccc
创建
aaa
目录,并在
aaa
里面创建
bbb
,并在
bbb
目录里创建
ccc
5、复制目录:
cp
参数 源目录名 目标目录
-i:若目标文件已经存在了,在覆盖时会先询问操作的进行 输入
n
为不覆盖,
y
为覆盖
-r:递归持续复制,用于目录的复制行为
-a:复制目录
-a
防止在复制目录的过程中改变目录的权限和属性
例如:cp -a aaa bbb //
拷贝
aaa
目录到
bbb
目录下
6、删除目录:
rm
或者
rmdir
例如:rmdir aaa //
将
aaa
目录删除
例如:rm -r aaa //
将
aaa
目录删除,给出提示,输入
y
代表可以删除,输入
n
代表取消
7、移动目录:
mv
例如:mv aaa bbb //
将
aaa
目录移动到
bbb
目录下
例如:mv /www/aaa /www/bbb //www
目录下已经有了
aaa
目录,但是没有
bbb
目录此时执行的
mv
是修改目录名为
bbb
:
8、取得路径的文件名:
basename
例如:basenmae /aaa/bbb/a.txt //
返回输出
a.txt
9、取得目录的名称:
dirname
例如:dirname /aaa/bbb/a.txt //
返回输出
/aaa/bbb
第四单元 Vim/Vi
文本编辑器应用
- Vi的三种模式:一般模式、编辑模式、命令行模式
- 命令行模式:以vi
打开一个文件就直接进入了命令行模式 例如:
vi a.txt
,在这个模式中可以使用上下左右键来移动光标,你可以删除字符或者整行,也可以复制、粘贴你的数据
3、编辑模式:在一般模式里按下
i
,
I
,
o
,
O
,
a
,
A
,
r
,
R
等任何一个字符进入编辑模式,如果要回到命令行模式需要按下
esc
键退出编辑模式
- 末行模式:在命令行模式中,输入:、/
、?这
3
个中的任何一个按钮就可以将光标移动到最下面那一行,在这个模式中,可以提供你查找数据的操作,而读取、保存、大量替换字符、离开
vi
、显示行号等操作也是在此模式中进行的。
4、模式切换指令(
i a o : esc
)
I、
i
、
A
、
a
、
O
、
o
按下这些键后进入编辑模式
:按下后进入末行模式
Esc:按下后从编辑模式退回到命令行模式
5、光标操作指令(
nG ngg H M L
):
nG:进入一般模式后按下此键,光标将指向第
n
行,
n
为数字,如果只按下
G
光标将指向最后一行
Ngg:进入一般模式后按下
gg
,光标将指向第
n
行,
n
为数字,如果只按下
gg
光标将指向第一行
H:进入一般模式后按下
H
,光标移动到屏幕最上方的第一行的第一个字符
M:进入一般模式后按下
M
,光标移动到屏幕中央的那一行的第一个字符
L:进入一般模式后按下
L
,光标移动到屏幕最后一行的第一个字符
6、内容操作指令(
yy nyy ndd p
)
yy:复制光标所在的那一行字符
p:粘贴刚才
yy
复制的字符
nyy:
n
为数字,复制光标所在的向下数
n
行
ndd:删除光标所在的向下数
n
行,从本行开始往下数
7、末行指令(
/ ? :set nu w q x !
)
:wq
保存并退出
? 向上查找字符 例如:?Hello
向上查找
hello
/
向下查找字符 例如:
/Hello
向下查找
hello
:W
将编辑的数据写入硬盘中
:q
离开
vi
,在没有进行修改文件内容的情况下使用
:q!
强制离开文件,修改后不保存
X:向前删除一个字符
x:向后删除一个字符
Linux网络
管理&
软件安装
- linux运行级别的系统文件:
/etc/inittab
2、
Linux
系统有
7
个运行级别
(runlevel)
运行级别0
:系统停机状态,系统默认运行级别不能设为
0
,否则不能正常启动
运行级别1
:单用户工作状态,
root
权限,用于系统维护,禁止远程登陆
运行级别2
:多用户状态
(
没有
NFS)
运行级别3
:完全的多用户状态
(
有
NFS)
,登陆后进入控制台命令行模式
运行级别4
:系统未使用,保留
运行级别5
:
X11
控制台,登陆后进入图形
GUI
模式
运行级别6
:系统正常关闭并重启,默认运行级别不能设为
6
,否则不能正常启动
- 查看服务是否开机启动命令chkconfig
--list
- RPM 默认安装的路径
:
/var/lib/rpm
- RPM安装软件包命令:rpm -ivh 软件包名称(可以显示安装的进度)
- RPM查询安装软件包命令:rpm -q 软件名称 (查询已安装的软件)
- RPM升级软件包命令: rpm -Uvh 软件名称 (后面的软件名称如果没有安装过则进行安装,如果版本过低,则系统会直接进行升级)
- RPM卸载软件包命令:rpm -e 软件名称
- Ta
r打包命令:tar -cvf 打包后的包名(名字.tar) 要打包的文件夹
- Tar打包并压缩命令:tar -zcvf 打包后的包名(名字.tar) 要打包的文件夹
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar
-cvf
/tmp/etc.tar /etc <==仅打包,不压缩!
[root@linux ~]# tar
-zcvf
/tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar
-jcvf
/tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
- Tar解包命令:tar -xvf 包名.tar
- 解包以
gzip压缩的包:
tar -zxvf /tmp/etc.tar.gz
- 解包以
bzip2压缩的包:
tar -
j
xvf /tmp/etc.tar.
bz2
- .configure 配置
文件
- 编译源文件的命令:
M
ake
- 编译后安装的命令:
Make install
- 安装RPM包的步骤:
创建文件夹:mkdir /media/cdrom
挂载光驱到指定的文件夹里:mount /dev/cdrom /media/cdrom
切换目录:cd /media/cdrom/CentOS
安装gcc包:rpm -ivh 包名
注意gcc包需要安装依赖包
4
第六单元 Linux用户及用户组管理
1、Linux用来存放系
统用户的信
息的文件是:/etc/passwd
2、Linux用来存放系统
用户密码
的文件是:/etc/shadow
3、Linux用来存放系统
用户组
的文件是:/etc/group
4、添加用户:useradd 参数 用户名
其中各选项含义如下:
代码:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 指定新账号的登录名。
此时后面不加任何参数的时候,一切由系统默认生成
- 生成一个uid
- 创建一个用户组,组名与用户名一样
- 创建一个用户的主文件夹 /home/用户名
5、想查看zhangsan是否为系统用户,只需到这个文件找zhangsan即可
grep zhangsan /etc/passwd
- 修改用户信息:usermod 参数 用户名
参 数:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s 修改用户登入后所使用的shell。
-u 修改用户ID。
-U 解除密码锁定。
- 删除用户信息:userdel 用户名
强制删除用户家目录:userdel -r
8、设置用户密码:passwd 用户名
9、创建用户组:groupadd 组名
10、修改用户组:groupmod 参数 组名 参数说明:-g 修改组的id -n修改组的名称
11、删除用户组:groupdel 组名
12、向已有的用户组里添加用户进去:gpasswd -a 用户名 组名
13、向已有的用户组里删除用户的方法:gpasswd -d 用户名 组名
14、批量向用户组添加用户的方法:gpasswd -M 用户名1,用户名2... 组名
第七单元 Linux 进程管理
1、查看linux下的所有进程:ps aux
2、查看linux下的某个服务的进程:ps aux | grep apache
3、杀死linux下的某个进程:kill 进程id
4、杀死linux下的某个服务的多个进程:killall 进程名称
6、暂停linux下的某个工作到后台:ctrl+z
7、查看linux下的所有工作:jobs
8、把暂停的工作放到前台继续执行:fg 工作号
9、把暂停的工作放到后台继续执行:bg 工作号
10、linux下工作调度的种类:at、crontab
11、at:用来执行计划任务,只执行一次
12、at计划任务的启动:/etc/init.d/atd start
13、设置at开机自动启动:chkconfig atd on
14、at的运行方式:使用at这个命令来生成所要运行的工作,并将这个工作以文本文件的形式写入/var/spool/at目录内,该工作便能等待atd这个服务的取用和执行
15、at执行计划任务: at 时:分 年-月-日 要执行的命令.....一个at可以写多行命令,加上ctrl+d会出现结束的字样
16、查看单个at的计划任务:at -c 第几个任务号
17、查询目前linux上有多少个at计划任务:atq
18、crontab编辑计划任务:crontab -e
此时会进入到一个编辑界面,注意,每个工作是一行:
0 12 * * * halt
分 时 日 月 周 要执行的命令
此例子的计划任务是:在每天的12点进行关机
- crontab查看linux下的所有计划任务:crontab -l
- 删除所有的计划任务:crontab -r
- 备份数据库命令:mysqldump -u用户名 -p密码 库名 > 备份地址
- 备份数据表命令:mysqldump -u用户名 -p密码 库名 表名 > 备份地址
第八单元Shell编程
- shell脚本的特点:自上而下、从左到右的分析执行、“#”作为批注、空白行将忽略掉
- Shell脚本的后缀名:.sh
- Shell脚本的第一行声明:
#!/bin/bash
4、
Shell变量定义
:
变量名=值
5、
掌握变量的使用
:
$变量名
6、shell脚本可以让用户输入的方法是:read -p
7、shell脚本的判断:if....then
8、shell脚本自定义函数:function 函数名(){ 函数体 }
9、shell脚本的
F
or
…
do..done的数值处理
格式:
For(( 初始值;限制值;步长 ))
Do
循环体
Done
For(( i=1; i<=9; i++ ))
Do
Echo $i
done
- 追踪和调试shell脚本:
Sh -[nvx] 脚本名称
参数:
-n :不要执行shell脚本,仅查询语法问题
-v :在执行shell之前,先将shell的文件内容全部输出到屏幕上
-x :将使用到的shell内容显示到屏幕上
- 加减乘除:
a=10
b=20
Echo $(($a+$b))
据设置的数字大小来进行判断,然后输出结果
-lt 小于号
-gt 大于号
-eq 等于号
num=8
echo "the number is: " $num
if [ $num -gt 10 ];then
echo "the unmber is larger than 10"
elif [ $num -eq 10 ];then
echo "the number is equal with 10"
else
echo "the number is smaller than 10"
F
i
//三个数求最大值
#!bin/bash
read -p "请输入第一个数
" a
read -p "请输入第二个数
" b
read -p "请输入第三个数
"
c
max=$a
;
if [ $max -lt $b ];then
max=$b;
fi
if [ $max -lt $c ];then
max=$c;
fi
echo "三个数的最大值是:
"$max;
//九九乘法表
#!bin/bash
for(( i=1;i<=9;i++ ))
do
for(( j=1;j<=i;j++ ))
do
echo $j*$i=$(( $i*$j ));
done
done
第九单元Linux网络管理
1、查看linux下ip的命令是:
ifconfig
2、临时修改linux下的ip:
ifconfig eth0 ip
3、工具修改linux的ip:
S
etup
4、修改ip后重启网络服务的命令:service network restart
5、测试网络是否通畅的命令:ping ip号
6、ftp安装见文档