# Linux命令
主目录
/
-
根
-
每个文件和目录都从根目录开始。
-
只有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
-
ping www.baidu.com
-
ctrl + c
-
其他
-
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