主目录
/
根
每个文件和目录都从根目录开始。
只有root用户拥有这个目录下的写权限。
请注意/ root是root用户的主目录,与/不一样。
/bin
用户二进制文件
包含二进制可执行文件。
您需要在单用户模式下使用的常用linux命令位于此目录下。
系统的所有用户使用的命令位于此处。
例如:ps,ls,ping,grep,cp。
/sbin
系统二进制文件
就像/ bin一样,/ sbin也包含二进制可执行文件。
但是,位于此目录下的linux命令通常由系统aministrator使用,用于系统维护目的。
例如:iptables,reboot,fdisk,ifconfig,swapon
/etc
配置文件
包含所有程序所需的配置文件。
这还包含用于启动/停止单个程序的启动和关闭shell脚本。
例如:/etc/resolv.conf,/etc/logrotate.conf
/dev
设备文件
包含设备文件。
这些包括终端设备,USB或连接到系统的任何设备。
例如:/ dev / tty1,/ dev / usbmon0
/proc
进程信息
包含有关系统进程的信息。
这是一个包含运行进程信息的伪文件系统。例如:/ proc / {pid}目录包含有关该特定pid进程的信息。
这是一个具有关于系统资源的文本信息的虚拟文件系统。例如:/ proc / uptime
/var
变量文件
ar代表可变文件。
预期会增长的文件内容可以在这个目录下找到。
这包括 - 系统日志文件(/ var / log); 包和数据库文件(/ var / lib); 电子邮件(/ var / mail); 打印队列(/ var / spool); 锁定文件(/ var / lock); 重新启动时需要临时文件(/ var / tmp)
/tmp
临时文件
包含由系统和用户创建的临时文件的目录。
系统重新启动时,此目录下的文件将被删除。
/usr
用户程序
包含二进制文件,库,文档和二级程序的源代码。
/ usr / bin包含用户程序的二进制文件。如果在/ bin下找不到用户二进制文件,请查看/ usr / bin。例如:at,awk,cc,less,scp
/ usr / sbin包含系统管理员的二进制文件。如果在/ sbin下找不到系统二进制文件,请查看/ usr / sbin。例如:atd,cron,sshd,useradd,userdel
/ usr / lib包含/ usr / bin和/ usr / sbin的库
/ usr / local包含您从源代码安装的用户程序。例如,当您从源代码安装apache时,它将在/ usr / local / apache2下
/home
主页目录
所有用户的主目录存储他们的个人文件。
例如:/ home /zhangwei,/ home /guest
/boot
引导加载程序文件
包含启动加载器相关的文件。
内核initrd,vmlinux,grub文件位于/ boot下
例如:initrd.img-2.6.32-24-generic,vmlinuz-2.6.32-24-generic
/lib
系统库
包含支持位于/ bin和/ sbin下的二进制文件的库文件
库文件名是ld 或lib * .so。
例如:ld-2.11.1.so,libncurses.so.5.7
/opt
可选的附加应用程序
opt代表可选。
包含来自各个供应商的附加应用程序。
附加应用程序应安装在/ opt /或/ opt /子目录下。
/mnt
挂载目录
系统管理员可以挂载文件系统的临时挂载目录
/media
可移动媒体设备
临时安装目录的可移动设备。
例如,用于CD-ROM的/ media / cdrom; /媒体/软盘软驱; / media / cdrecorder for CD writer
/srv
服务数据
包含服务器特定的服务相关数据。
例如,/ srv / cvs包含CVS相关数据。
第二天
Linux主要的目录
Linux不像windows系统一样,是没有盘符的,只有目录 所有的文件都在/目录下面,用户的话在home文件夹下面
根目录
/
查看根目录可以使用 ls/
/bin
主要存放一些系统命令
/boot
主要存放系统常用的开机之类的文件
/dev
存放设备文件
/etc
系统,软件的配置文件一般都存放在这个文件下面,用户的账号密码,启动服务器都放在这个文件夹下
/home
用户目录 cd ~
/lib
系统或者软件所以来的库
/media
存放媒体的东西 光盘 dvd挂载之后都在这个目录下
/mnt
opt
一般存放的是第三方软件
/usr/local
/root
系统管理员目录
/temp
存放程序的临时文件
命令
首先要想执行linux命令就要先打开cmd命令窗口
右键打开终端窗口 ctrl+alt+t
命令格式
commad [选项] [参数]
commad ---命令
cd
cp
ls
[]
可有可无的意思
例如
ls
没有参数,没有选项
cd /home
有参数 没选项
rmdir -f db
有选项(-f),也有参数(db)
对文件和文件夹的操作
进入目录
路劲
相对路径
绝对路径
pwd
查看当前所有在的目录
cd 相对路径或者绝对路径
cd /home/zhangwei
使用绝对路径
cd 下载
使用相对路径
cd ..
进入上一级目录
cd -
回到上一次操作的目录
cd ~
进入用户下面的根目录
查看目录
语法格式
ls [选项]
选项
-a
显示隐藏文件
-l
显示文件或者文件夹的详细信息
-R 递归显示,包括子文件或者子目录
-t 按时间排序
例如
ls
ls -a -l -R -t
ls -l
drwxr-xr-x(第一段) 2 (第二段) zhangwei(第三段) zhangwei(第四段) 4096(第五段) 7月 24 15:56(第六段) configuration(第七段)
第一段
d (rwx) (r-x)(r-x)
d
表示是一个目录
r
可以读
w
可写
x
可执行
d (rwx) (r-x)(r-x)
d(rwx)
表示当前用户的权限
r-x
表示用户组的权限
r-x
表示其他用户
第二段
数字
目录下的文件或者子目录的个数
第三段
文件或者目录所有者
第四段
文件或者目录的所有者所属的用户组
第五段
文件或者目录的大小
第六段
文件或者目录最后修改的或者创建的时间
第七段
文件或者目录的名称
创建目录
mkdir [选项] 参数(目录的名称)
选项
-m
-p
例如
mkdir test
mkdir -p demo1/demo2/demo3
删除目录
语法格式
rmdir [选项] 参数(空目录)
选项
-p
递归删除所有空目录
例如
rmdir demo3
demo2 touch test.txt demo2 ls demo2 cd .. demo1 rmdir demo2 rmdir: 删除 'demo2' 失败: 目录非空
rmdir -p demo1/demo2
创建文件
语法格式
touch [选项] 参数(文件名.后缀名)
选项
-t
指定时间
-r
参考文件的时间作为当前创建文件的日期
例如
touch test.py
touch test1.py test2.py 一次性创建多个
touch -r test2.py test3.py
参考test1.py的时间作为test2创建的日期
touch -t 201809111141 hehe.py
指定日期
删除文件/目录
语法格式
rm [选项] 参数(目录或者文件名)
选项
-r
递归删除
-f
强制删除
-i
互动
例如
rm test
rm -r demo
test rm -i demo rm:是否删除普通空文件 'demo'? yes
rm -rf demo
复制
语法格式
cp [选项] 复制的目录或者文件 目标目录
选项
-r
递归复制
-f
覆盖复制
-i
提示是否覆盖
-p
保留文件夹的权限
举个栗子
cp -r ./demo1/haha ./demo
cp -ri ./demo1/haha ./demo 如何存在相同的文件,提示是否覆盖
cp -rf ./demo1/haha ./demo 如何存在相同的文件,强制覆盖
cp --rfp cp -rf ./demo1/haha ./demo
查看文件
cat [选项] 文件名
选项
-n
显示行号
-b
对空行不编号
-s
连续两行以上的空白行就合并成一行空白
举个栗子
合并两行以上的空行为一行,进行编号
cat -ns ./demo1/haha/t1.txt
对空行不编号
cat -b ./demo1/haha/t1.txt
cat -bs ./demo1/haha/t1.txt
cat -n ./demo1/haha/t1.txt
编辑文件
概要
首先下载vim
sudo apt install vim
如果有图形界面可以直接通过 gedit内置的软件打开文件
如果没有图形话界面只能通过vim去编辑
vim命令
模式切换
i
表示当前光标下编辑文本
a
从文件的末尾开始编辑
esc
进入命令行模式
光标移动(不要在编辑状态)
$
移动到光标所在行的行尾
^
移动到光标所在行的行尾
g
移动到末尾
gg
移动到位的头部
删除 复制 粘贴
dd
删除光标所在行
yy
复制光标所在行
p
粘贴
x
复制当前的字符
撤销
u
ctrl+r
保存退出
先要进入命令模式 (esc)
:w
保存文件
:w 文件名
另存
:q
退出
:q!
强制退出
:wq!
保存并且强制退出
移动文件跟目录
mv [选项] 要移动的文件或者目录 目标目录
选项
-b
如果文件或者文件夹存在,备份以存在的文件
-f
如果文件存在,在强制覆盖
-i
提示
举个栗子
mv ./demo/hello.py demo1
mv demo1 demo
查找
授权(用户)
前期知识点
三种身份
用户
用户组
其他用户
权限
r(read)
w(write)
x(execute)
授权可以是数字也是字母
r 4
w 2
x 1
作用
改变文件或者文件夹的操作权限
chmod
注意
使用该命令要么使用root用户,要么使用sudo
语法格式
sudo chmod [选项] 文件
选项
-R
递归修改目录或者子文件
sudo chmod u=rwx,go=rw text1.py
u(user)
g group
o(other)
举个栗子
数字模式
sudo chmod 777
第一个7
表示文件所有者用户拥有读写执行的权限
第二个7
表示用户组拥有读写执行的权限
第三个7
表示其他用户拥有读写执行的权限
4 + 2 + 1
chown
修改文件的所有者(只能在root用户下修改)
chown [选项] user[:group] 文件或者文件夹
选项
user
新用户的id
group
使用组
-f
忽略错误的信息
-R
递归处理所有的子目录和子文件
举个栗子
递归修改文件的所有者 用户名是root 用户组是root
chown -R root:root demo1
关机重启
关机
sudo halt 立即关机
sudo poweroff 立即关机
shutdown -h now(root用户)
shutdown -h 60 表示60分钟后自动关机
重启
sudo reboot
shutdonw -r now(用户)
shutdown -r 60 (root) 表示60分钟之后重启
语法
shutdown [选项] 时间
选项
-c:取消已经执行的 shutdown 命令;
-h:关机;
-r:重启;
栗子
重启与定时重启
shutdown -r +10 10分钟之后重启
shutdown -r 05:30 & 重启命令放入后台,&是后台的意思
shutdown -c 取消定时重启
shutdown -r now 重启, now是现在重启的意思
关机和定时关机
shutdown -h now 现在关机
shutdown -h 05:30 指定时间关机
用户
用户
用户分类
管理员用户
root
0
普通用户
1-65535(id的范围)
系统用户
1-999(id)
登录用户
1000-65535
权限不一样
添加用户
useradd
语法格式
系统用户
useradd -r -u 用户的id 用户名 -p 密码
普通用户
useradd -u 用户的id 用户名 -p 密码
adduser
语法格式
adduser py
会在home目录创建根目录
修改用户
语法格式
usermod -l 新用户名 旧用户名
删除用户
语法格式
userdel 用户名
查看用户
cat /etc/shadow
退出用户
ctrl + d
sudo passwd 用户名
用户组
用户组是只拥有多个权限,一般配合用户使用
语法格式
groupadd
groupdel
gorupmod
添加用户组
groupadd -g 组ID 组的名称
usermod -a -G zhangwei py1
-a
追加
-G
用户组
其他终端版本
查看支持的终端版本
cat /etc/shells
/bin/sh /bin/bash /bin/rbash /bin/dash /bin/zsh /usr/bin/zsh
useradd 或者usermod -s 终端路径
压缩/解压缩
常用的命令
tar zip unzip gzip gunzip
tar
作用
讲文件打包,一般配合zip使用
语法格式
tar [选项] [文件,目录]
选项
-c
创建压缩文档
-x
解压文档
-u
更新压缩文档
-t
查看文档的内容
-r
向压缩文档追加文件
辅助选项
-z
gzip压缩打包
-j
bz2
-v
显示压缩或者解压的过程
-f
压缩文档的名字 ,f必须放在后面
-C
解压到指定目录
举个栗子
tar -cf hello.tar hello
-f 后面第一个参数要打包的名称,要打包的文件或者目录
tar -xf hello.tar -C /home/zhangwei/opt
解压文件到指定目录
-C
指定目录
tar -zcf hello.tar.zip
zip压缩病打包
tar -zxf hello.tar.zip -C /home/zhangwei/opt
解压缩到指定目录 如果不加-C默认解压到当前目录
远程上传
winscp
说明
scp
远程拷贝 source copy
语法格式
scp [选项] 上传的文件或者目录 目标目录
选项
-r
递归上传
-v
显示过程
从服务器复制到本地
scp 远程登录的用户名@ip地址:/远程文件的地址 本地路径
scp -r zhangwei@47.106.89.6:/home/zhangwei/hh /home/zhangwei/test
scp zhangwei@47.106.89.6:/home/zhangwei/hello.py /home/zhangwei/test
从本地上传到服务器
scp -r /home/zhangwei/test zhangwei@47.106.89.6:/home/zhangwei/
网络
辅助命令
查看ip地址
ip addr
ifconfig(已过时)
查看网络链接状态
ip link list
开启网络
sudo ip addr set etho up
关闭网络
sudo ip addr set etho down
配置网络的IP地址
iface eth1 inet static #static 静态ip dhcp动态ip
address 192.168.50.222 #静态ip地址
netmask 255.2555.255.0 # 子网掩码
gateway 192.168..50.1 #默认网关 - iface eth2 inet static #static 静态ip dhcp动态ip
address 192.168.50.223 #静态ip地址
netmask 255.2555.255.0 # 子网掩码
gateway 192.168..50.1 #默认网关
ping
其他
sudo passwd 用户名
修改密码
su
切换用户
默认切换到root用户
su 用户名
查看端口占用
lsof -i :端口号
防火墙
UFW 防火墙
安装防火墙
sudo apt install ufw
开启防火墙
sudo ufw enable
关闭防火墙
sudo ufw disable
随系统启动
sudo ufw default deny
查看防火墙的状态
开启或者关闭某些端口
sudo ufw allow from 192.168.50.18 port 22 允许通过ip地址和22都款访问服务器
sudo ufw allow 22 允许通过22端口访问服务器
sudo ufw allow from 192.168.50.18 允许通过ip地址和22都款访问服务器
进程/线程
ps
Process Status
ps [选项]
选项
-A 列出当前所有的进程 -e
辅助现象
-l 显示详细信息
-f 显示更纤细的信息
了解
进程的5中状态
运行状态(R)
中断(S)
可不中断(D)
僵死(Z)
停止(T)
举个栗子
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 1 0 0 80 0 - 56416 - ? 00:00:01 systemd 1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd
说明
uid 进程所属用户的id
pid(重要)
进程ID
ppid
父进程的ID
C
进程占用cpu的百分比
time
进程启动到现在的运行时间
cmd
指令的名称
F
程序的flag
4 超级用户
S
R
进程正在运行
S
进程在睡觉
T
进程停止
Z
终止
TTY
表示进程在那个终端上运行,如果该进程与运行的终端无关,就显示???
杀死进程
kill -9 pid pid
杀死多个进程, 可以是多个
查找
find
grep
搜索过滤特定的字符串
global search regular expression
语法格式
grep [选项] '模式' [文件]
选项
-i
忽略大小写
模式
直接输入字符串
正则表达式
.
[]
字符集合
()
组
{}
[0-9] \d
[a-z] [A-Z]
\w [A-Z0-9a-z_]
^
$
|
{0,}
{1}
? {0.1}
举个栗子
grep -i '^f[a-z]{0,4}' /home/zhangwei/test/hello.py
配合ps使用 ps -el | grep nginx
配合kill 杀死进程
sudo kill -9 pid
XMind - Trial Version
周计划.png