linux发行版有很多,这里使用的是Ubuntu

个人喜欢使用无界面版本(ubuntu-20.04-live-server-amd64)

有关于树莓派的看这个

修改为国内源

nano /etc/apt/sources.list

替换内容为

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe     multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

注:该源为清华大学开源软件镜像站的,可以修改为其他镜像站的源

163镜像源

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
# deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
# deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
# 预发布软件源,不建议启用
# deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse

sudo apt update #更新源 sudo apt upgrade #更新系统

安装app

sudo apt install App名字

例如安装ssh服务:

apt update apt install openssh-server

poweroff 立刻关机

shutdown -h now 立刻关机

shutdown -r now 立刻重启

shutdown -r 10 10分钟后重启

shutdown -r 1:00 当时间为1:00时重启

wget 下载文件链接

安装.deb文件

sudo dpkg -i 文件名

例如:

sudo dpkg -i code_1.40.2-1574694120_amd64.deb

clear 清除

ls和cd

cd命令是前往指定目录

cd ~ 前往目前使用的用户的Home目录(家目录)

cd .. 返回上一级目录

cd /etc/python3 前往指定目录

cd - 返回刚刚所在的目录

cd ../../ 向上返回两级目录

cd ./ 前往当前目录

pwd 显示当前目录路径

ls -ah 将所有目录(包括隐藏目录)显示出来

如果有很多层目录,那么需要一个绝对目录

绝对目录:指目录的绝对位置,从根目录开始的路径,完整的描述文件位置的路径就是绝对路径 相对目录:指目标相对于当前文件的路径

ls (list 的简写)

ls 返回当前所在的目录的所有子目录和子文件

ls -l 返回文件的一些信息,权限,用户,文件大小,修改时间。文件名,total后面的数字是指这个目录下的文件数,包括隐藏文件

ls -a 显示所有文件,包括已经隐藏的文件(以 . 开头的)

ls -lh 这个指令和-l一样,返回权限,用户,文件大小,修改时间。文件名,不过文件大小是使用k,m这些来表示

ls –help 查看ls的全部功能

cp,mv,touch,mkdir

touch 新建一个文件 例如: touch hallo.py

如果想同时建立多个文件,那么输入多个文件的名字,使用空格分开,例如:

touch hello.py world.py

cp 是复制文件或者文件夹的指令,使用方法:

cp hello.py world.py

注意: 如果复制的文件已经存在, 它将会直接覆盖已存在的文件,那么可以: cp -i hello.py world.py 在返回的提问中回复任何大小写形式的y或者yes,将执行覆盖操作,回复其他则取消这个执行

cp -R hello/ world/ 复制文件夹

cp go* gogo/ 复制所有的以go开头的文件到gogo文件夹中

cp *go gogo/ 复制所有的以go结尾的文件到gogo文件夹中

mv 是用来移动(剪切)文件

mv 要移动的文件 要移动到的文件夹,例如:

mv hello.py hello/

mv world.py hallo.py 重命名文件

mv –help 查看其他mv的用法

mkdir hello 新建一个文件夹

rmdir hello/world 删除hello目录下的world目录,不能删除有文件的文件夹,只能删除一个空的文件夹

rm world/ 可以删除不是空的文件夹

rm -i world/ 删除文件时提示

rm -I world/ 删除超过3个文件时才提示,少于3个时不提示

rm -r world/ 删除目录及目录下的所有文件及目录

rm -rf world/ 删除目录下及目录下的所有文件及目录,没有提示地强制递归删除文件

nano hallo.py nano是一个,^是ctrl键,例如ctal+x 是退出的指令

cat hallo.py 输出一个文件的文本内容

cat hallo.py > world.py 把一个文件复制成另一个文件

cat hallo.py hello.py > world.py 把两个文件的内容合并到另一个文件

cat world.py » gogo.py 补充到另一个文件的内容的后面

文件权限 例如 drwxr-xr-x

d是说明这是一个文件夹,如果是-那么就是说明这是一个文件

rwx r 可读,w 可写, x 可执行,如果有是-说明当前使用的用户账号不能完成某一个操作,User是当前使用的用户

r-x r 可读,w 不可写, x 可执行,说明Others这个组的用户不能完成写入的能力,没有写入的权限,Others是指当前用户所在的组

r-x r 可读,w 不可写, x 可执行,说明User 和 Group 以外的人不能完成写入的能力,没有写入的权限,Others是除当前用户和组之外的人

修改文件权限

chmod u+r hallo.py

chmod ug+rw hello.py 给当前用户添加可读权限

+ 为加上某一个权限 - 为去掉某一个权限 = 为等于某个权限

u: 对于 User 修改, g: 对于 Group 修改 o: 对于 Others 修改 a: 对于所有人修改

chmod 755 hello.py 修改文件权限 u为rwx,可读可写可执行,g为r-x可读不可写可执行,o为r-x可读不可写可执行

r=4,w=2,x=1

ifconfig 这个命令是用来查看当前linux设备的ip

ip addr 这个命令也是用来查看当前linux设备的ip的

apt-get install net-tools 安装网络工具,用于解决ip没有分配之类的网络管理工具

exit 退出ssh控制

top 查看cpu占用的一些信息


linux-ssh安全配置

ssh安全

last -f /var/log/wtmp 查看IP登陆日志

修改ssh端口

nano /etc/ssh/sshd_config

找到Port,修改端口,如果修改为2222,那么默认ssh连接端口为2222,原来的22端口报废(不能使用22端口登录了,计算机有65535个端口,扫描端口都要扫半天)

禁止root用户ssh登录

找到PermitRootLogin,把yes修改为no

其他ssh安全配置

LoginGraceTime 登录一次花费多少时间,当超过这个时间,则要求重新登录

MaxAuthTries 限制尝试登录错误的次数,当超过这个次数之后拒绝登录尝试 MaxSessions 限制每个连接可以并行开启多少个会话

StrictModes,修改为no,为禁用密码登录

重启sshd服务 service ssh restart

SSH密钥登录

ssh-keygen -t rsa -b 4096 生成私钥和公钥

在.ssh的目录下有两个文件,id_rsa 为私钥,id_rsa.pub 为公钥

cat ~/.ssh/id_rsa.pub » authorized_keys

然后上传authorized_keys到服务器上

上传文件可以用ftp或者scp

例如 scp -P 2222 .\authorized_keys pi@192.168.1.106:~/.ssh

给.ssh目录和authorized_keys文件设置权限

chmod -R 0700 ~/.ssh

chmod -R 0644 ~/.ssh/authorized_keys

ssh pi@192.168.1.106 -p 2222

就可以不用密码进行登录了


linux下Operation not permitted

先看看文件权限ll,能使用root用户或者sudo最好,然后尝试chmod

如果在root用户或者sudo下也不能对文件或者文件夹进行操作,那么

chattr +i hello.py // 使用i属性来锁定文件,避免修改文件

lsattr hello.py // 查看加锁

chattr -i hello.py // 去除i属性,便可以修改该文件

a:可以修改文件,但是不能删除

i: 不能删除,不能修改,不能移动


ifconfig // 查看网络配置,或者ip addr ls

网卡配置文件在/etc/sysconfig/network-scripts下

网卡配置文件名称一般为ifcfg-xxx

默认为关闭的,需要使用DHCP获取ip,需要修改ONBOOT=no,修改为yes

配置静态ip,需要修改BOOTPROTO为static

添加下面内容

IPADDR=192.168.186.128 // 设置IP地址 NETMASK=255.255.255.0 // 设置子网掩码 GATEWAY=192.168.186.1 // 设置网关 DNS1=114.114.114.114 // 设置dns

nmcli c reload // 重启网络服务

ip addr // 查看本地IP地址以及其他网卡信息

ip link set dev eth0 up // 启用网卡 或者ifup eth0

ifconfig eth0 192.168.186.128 // 修改指定网卡的ip

ifconfig eth0 192.168.186.128 netmask 255.255.255.0 // 修改子网掩码

route -n // 显示和操作IP路由表

route add default gw 192.168.186.1 // 增加指定网关,其中的default是指0.0.0.0的,可自己选择想要的,例如route add -host 192.168.186.2 gw 192.168.186.1

route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.186.1 // 设置网段的网关

route del default gw 192.168.186.1 // 删除指定网关