一、Linux操作系统
1)Kernel 内核
2)Shell 用户与内核之间的接口,充当解释器或者转换器
常见shell:sh、csh、bash(默认)
记忆功能
补全功能tab (文件和命令的补全功能)
3)File System 文件系统
目录:存放文件以及目录的场所
子目录:位于其他目录中
路径:
绝对路径:以 / 开头,/home/admin/hello.txt 与根目录相关
相对路径:./ 相对于当前文件夹的当前目录
../ 相对于当前文件夹的上一级目录
二、常用命令
cd | 切换到指定目录中 |
pwd | 打印当前文件所在的目录 |
ls | 列出当前目录下所有的文件和文件夹 |
clear | 清空屏幕 |
history | 列出历史命令 (最多1000个) |
man | 查看指定命令的手册 man ls q退出手册 |
touch | 新建文件 |
mkdir | 新建目录 |
三、账号管理
/etc/passwd 存放账户信息
/etc/shadow 存放密码
/etc/group 存放组信息
1)登录过程
先找寻 /etc/passwd 里面是否有用户输入的账号?如果没有则跳出,如果有的话则将该账号对应的 UID 与 GID (在 /etc/group 中) 读出来,此外,该账号的家目录与 shell 配置也一并读出;
紧接着核对口令表!这时 Linux 会进入 /etc/shadow 里面找出对应的账号与 UID,然后核对一下用户刚刚输入的口令与里头的口令是否相符?
如果一切都 OK 的话,就进入 Shell 控管的阶段!
ssh root@ip地址
root@iZuf6j83unak4hnd4u0xc6Z:/# cat etc/passwd
2)添加用户 (/etc/passwd)
useradd(adduser) 用户名
#创建一个新用户wandong
root@iZuf6j83unak4hnd4u0xc6Z:/# adduser wandong
#查看
root@iZuf6j83unak4hnd4u0xc6Z:/# cat etc/passwd
#在最后一行出现 创建成功
wandong:x:1002:1002:,,,:/home/wandong:/bin/bash
usermod 使用usermod修改已经新建用户的信息。
3)修改账号密码
passwd [账号]
4)删除账户
userdel 账号 userdel –r 用户名
root@iZuf6j83unak4hnd4u0xc6Z:/# userdel wandong
5)添加组 (/etc/group)
groupadd 组名
6)删除组
groupdel 组名
7)修改组信息
groupmod
8)身份切换
su 用户名 普通用户切换root用户的时候需要密码,root切换普通用户的时候不需要输入密码
#切换普通用户 wan 不需要密码
root@iZuf6j83unak4hnd4u0xc6Z:/# su wan
wan@iZuf6j83unak4hnd4u0xc6Z:/$
#切换回root用户 需要密码
wan@iZuf6j83unak4hnd4u0xc6Z:/$ su
Password:
root@iZuf6j83unak4hnd4u0xc6Z:/#
四、目录及文件管理
1)touch 创建一个空的文件或者更新文件最近修改时间。 touch 文件名 xxx.后缀名
root@iZuf6j83unak4hnd4u0xc6Z:/home# touch index.html
root@iZuf6j83unak4hnd4u0xc6Z:/home# ls
admin index.html
2)mkdir 创建目录。创建目录时要保证当前用户具有创建目录的权限。 mkdir 目录名 xxx
root@iZuf6j83unak4hnd4u0xc6Z:/home# mkdir test
root@iZuf6j83unak4hnd4u0xc6Z:/home# ls
admin index.html test
3)cp 将一个文件或者目录拷贝到另一个目录中 cp 文件名 目标路径
#将home目录中的index.html文件拷贝到test目录中
root@iZuf6j83unak4hnd4u0xc6Z:/home# cp index.html ./test/
root@iZuf6j83unak4hnd4u0xc6Z:/home# cd test/
root@iZuf6j83unak4hnd4u0xc6Z:/home/test# ls
index.html
4)mv 移动文件到指定目录 mv 文件名 目的地路径
重命名文件 mv 文件名 新文件名
移动+重命名 mv 文件名 目的路径/新文件名
# 将home目录中的index.html文件移动到test目录中,并将文件名改为home.html
root@iZuf6j83unak4hnd4u0xc6Z:/home# mv index.html ./test/home.html
# 查看home中的文件 index.html 不见了
root@iZuf6j83unak4hnd4u0xc6Z:/home# ls
admin test
#查看test目录 新增home.html
root@iZuf6j83unak4hnd4u0xc6Z:/home# cd test/
root@iZuf6j83unak4hnd4u0xc6Z:/home/test# ls
home.html
5)rm 删除文件或者删除非空目录
rm 删除文件
root@iZuf6j83unak4hnd4u0xc6Z:/home/test# rm home.html
rm -r 删除文件夹/目录
root@iZuf6j83unak4hnd4u0xc6Z:/home# rm -r test
rm * 删除所有文件
6)压缩 zip(安装) xxx.zip 文件1 文件2 ... => xxx.zip
gzip 文件 => .gz
bzip2 文件 => .bz2
解压 unzip 压缩文件的名字 (zip解压之后还在)
gunzip 压缩文件的名字 (gz解压之后不在)
bunzip2 压缩文件的名字 (bz2解压之后不在)
7)归档 tar cvf all.tar file1 file2 file3 ... => all.tar
tar cvfz all.tar.gz file1 file2 file3 ... => all.tar.gz
tar cvfj all.tar.bz2 file1 file2 file3 ... => all.tar.bz2
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# tar cvf web.tar css/ html/ javascript/
8)拆档 tar xvf all.tar =>file1 file2 file3 ...
tar xvfz all.tar.gz =>file1 file2 file3 ...
tar xvfj all.tar.bz2 =>file1 file2 file3 ...
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# tar xvf web.tar
9)链接ln 创建链接(硬链接和软连接)
ln [-s] source_file(源文件) destination_file(目标文件)
ln /home/admin/link.txt /home/admin/html/link.txt (硬链接)
ln -s /home/admin/link.txt /home/admin/html/link.txt (软连接)
五.使用者与群组
权限:(读r,写w,执行x)
文件拥有者 user
群组 gdroup
其他人 other
1)第一位是文件的类型,以d开头代表文件夹,文件夹必须要有x权限
-rw-r--r-- 1 root root 426 Aug 19 09:20 all.tar.gz
drwxr-xr-x 2 root root 4096 Aug 18 11:21 css
-rw-r--r-- 1 root root 58 Aug 19 09:58 date.txt
drwxr-xr-x 3 root root 4096 Aug 19 09:32 html
drwxr-xr-x 2 root root 4096 Aug 18 11:28 javascript
-rw-r--r-- 2 root root 13 Aug 19 09:32 link.txt
-rw-r--r-- 1 root root 10240 Aug 19 09:14 web.tar
2)添加权限( + )
chmod u+rwx date.txt 给文件的拥有者添加读写执行的权限
移除权限( - )
chmod u-w date.txt 给文件的拥有者移除了写文件的权限
chmod a=rwx file 和 chmod 777 file 效果相同 (a=rwx)
3)注意:
对文件来讲:最高权限是 x
对目录来讲:最高权限是 w
4)权限的数字表示(用二进制转的数)
rwxr-xr-x,则对应7 5 5
rwxrwxrwx 对应 7 7 7
5)文件权限:
-rwxr-xr-x. 共分为五个部分:
-:表示文件类型
rwx:用户属主的权限
r-x:用户属组的权限
r-x:其他用户的权限
.:是否启用facl
权限:
r:readable,读
w:wirteable,写
x:excuteable,执行
权限对文件的作用:
r:可获取文件的数据;
W:可修改文件的数据;
x:可将此文件运行为进程;
权限对目录的作用:
r:可使用ls命令获取其下的所有文件列表;
w:可修改此目录下的文件列表;即创建或删除文件,包括子目录。
x:可cd至此目录中;且可使用ls -l来获取所有文件的详细属性信息;
查看文件内容
1)cat 查看文件
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# cat link.txt
hello
你好
2)tac 反向展示,由最后一行到第一行反向在荧幕上显示出来
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# tac link.txt
你好
hello
3)nl 添加行号展示
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# nl link.txt
1 hello
2 你好
4)more(concatenate) 翻页显示文件内容,最后一行会显示出目前显示的百分比,而且 还可以在最后一行输入一些有用的命令
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# more /etc/passwd
5)less less 的用法比起 more 又更加的有弹性,可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件
空白键 :向下翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# less /etc/passwd
6)head 显示出一个文件的前几行,默认显示10行
-n :后面接数字,代表显示几行的意思。
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
7)tail 显示出一个文件的后几行,默认显示10行
-n:后面接数字,代表显示后几行的意思/字串
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# tail -2 /etc/passwd
重定向
> 将>前命令的输出作为输入导入到>后文件或命令中(会覆盖原来内容)。
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# date > date.txt
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# cat date.txt
Thu Aug 19 09:58:19 CST 2021
>> 将>> 前命令的输出作为输入导入到>后文件或命令中(追加到原来内容后)。
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# date >> date.txt
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# cat date.txt
Thu Aug 19 09:58:19 CST 2021
Thu Aug 19 09:58:46 CST 2021
元字符
* 代表0到多个字符
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# ls l*
link.txt
? 代表任意单个字符
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# ls l?nk*
link.txt lonk.html
[] 匹配指定范围内的单个字符
root@iZuf6j83unak4hnd4u0xc6Z:/home/admin# ls l[b-z]nk*
link.txt lonk.html
; 在一行中输入多个命令
cd;ls
date;cal;pwd
| 将“|”前一个命令的的输出作为“|”后一个命令的输入
root@iZuf6j83unak4hnd4u0xc6Z:/home# ls | more
admin
wan
六、Vi编辑器
vi 文件名 (如果该文件存在则打开该文件,如果该文件不存在,新建并打开编辑)
vi中光标位置变换
向上 k
向下 j
向左 h
向右 l
vi编辑器的三种模式:
编辑模式
进入编辑模式:i I a A o O
退出编辑模式: <Esc> 退出插入状态
命令行模式:
进入命令行模式:
底行模式:
进入底行模式: :
插入模式
i 在光标所在字符前插入
I 在光标所在行行首插入
a 在光标所在位置后插入
A 在光标所在行行末插入
o 在光标所在行下插入一空行
O 在光标所在行上插入一空行
<Esc> 退出插入状态
删除文本
x 删除一个字符
dw 删除当前词
3dw 删除三个词
dd 删除当前行,剪切删除,可直接使用p复制
5dd 删除五行
:5,10d 删除5到10行内容,底行模式
替换文本
r 替换一个字符
cw 替换一个单词
cc 替换一行
C 替换从光标至行尾
复制粘贴文本
yw 拷贝词
yy 拷贝行(或Y)
p 当前行下粘贴
:1,2co3 拷贝行1,行2在行3之后
:4,5m6 移动行4,行5在行6之后
保存文件退出vi
:w 存盘
:w newfile 存成新文件
:wq 存盘退出Vi(或ZZ,或:x)
:q! 强行退出不存盘
高级编辑操作
~ 改变大小写
J 把当前行和下一行连起来
u 废除刚才的编辑操作(undo)
:set nu 显示行代码 (:set nonu)
:21 光标停在指定行
21G 光标停在指定行 (G 到文件尾,1G 到文件头)
/串 从当前行往下查找
?串 从当前行往上查找
n 查找下一个 N查找上一个
:r file2 在光标所在位置插入另一个文件
:1,$s/旧串/新串/g 从第一行到结束,替换全文
:%s/旧串/新串/g 替换全文
分屏操作
:split 横向分屏
:vsplit 纵向分屏
:open 目录 在当前分屏中打开指定文件或者目录
Ctrl + ww 在不同的分屏中切换光标
:close 关闭当前分屏 :only 仅显示当前分屏
网络进程:
查看某应用程序的进程 ps -ef | grep java =>查看java的进程
结束进程 kill -9 进程号
七、上传文件
scp 文件名(zip) root@ip地址:/home/admin(选择传输的文件夹)
ssh root@ip地址(登录)
cd / 回到根目录
cd home/admin/ => ls 查看是否添加成功
apt-get update
apt-get install unzip 下载zip
unzip + 文件名 解锁文件
apt-get install apache2 下载apache
cd / 回到根目录
cd var/
ls 目录中出现了www文件
cd www/
ls 目录中出现了html文件
cd html
ls 目录中出现了index.html
打开浏览器输入ip地址进入apache官网
cd / 到根目录
cd home/admin/ 进入将文件导入的目录
mv +文件名 /var/www/html/ 将目标文件移入后面的目录中
cd var/www/html/ 进入该目录
ls 查看文件是否移入成功
unzip +要解压的目标文件 解压目标文件
ls 查看文件是否解压成功
在apache的地址栏中,输入ip地址+/+文件名