环境配置
# ubuntusudo apt install openssh-servergit \build-essential \cmake \gdb \snap \samba samba-common \sudo snap install --classic code # vscode# !建议国内避免使用snap安装软件;
网络配置
- ip命令:rh_ip_command_cheatsheet_1214_jcs_print.pdf
- 如何看懂ip命令的输出 How to understand ifconfig or ip addr show - Unix & Linux Stack Exchange
- ifconfig命令
- ip输出的东西太乱了,有没有更好地方式:使用ip -c,或者使用nmcli Why linux ip command output is so messy - Unix & Linux Stack Exchange
Ubuntu
nm-connection-manager # 可以使用图形界面
域名解析
- /etc/hosts
理解linux网络模型
veth-pair是什么
02-Linux 网络基础(Network Namespase、veth pair、bridge、Iptables) · GitBook
Linux 虚拟网络设备 veth-pair 详解,看这一篇就够了 - 猿大白 - 博客园
linux - What does “if1@if2” mean in interface name in output of “ip address” command on Ubuntu - Unix & Linux Stack Exchange
vlan
Linux 系统下实践 VLAN | 猿大白
手撕Linux网络——Linux虚拟网络设备与netfilter框架汇总 - 知乎
配置SSH
sudo apt-get install openssh-serversudo service ssh startsudo /etc/init.d/ssh startsudo systemctl start sshd.serviceps -e | grep ssh# 配置文件sudo nano /etc/ssh/sshd_config# # ssh登录root权限# PermitRootLogin yes# StrictModes yes# SSH保持长连接# 方法1.修改server端的etc/ssh/sshd_configClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应systemctl reload sshd# 方法2.修改client端的etc/ssh/ssh_config添加以下:(在没有权限改server配置的情形下)ServerAliveInterval 60 #client每隔60秒发送一次请求给server,然后server响应,从而保持连接ServerAliveCountMax 3 #client发出请求后,服务器端没有响应得次数达到3,就自动断开连接,正常情况下,server不会不响应# 方法3.在命令参数里ssh -o ServerAliveInterval=60 这样子只会在需要的连接中保持持久连接, 毕竟不是所有连接都要保持持久的
- SLES/suse的SSH配置
systemctl enable sshdsystemctl start sshdsystemctl status sshd
Samba
共享文件方法
- linux开samba服务器
- mobaxterm/filezilla FTP/SFTP
- 虚拟机可以使用virtualbox提供的共享文件夹
```bash
deb/ubuntu
sudo apt install samba samba-common sudo vim /etc/samba/smb.conf sudo systemctl restart smb nmb sudo service smbd restart
[code] path = /code available = yes browseable = yes read only = no writable = yes public = yes force create mode = 0777 force directory mode = 0777
SLES/suse
sudo zypper -n in samba sudo vim /etc/samba/smb.conf sudo systemctl enable smb nmb sudo systemctl start smb nmb
<a name="a5nGs"></a>## 用户、组和权限[linux下查看所有用户及所有用户组 - Jacky's Blog - 博客园](https://www.cnblogs.com/jackyyou/p/5498083.html)```bashgroups # 查看当前登录的用户和组whoami # 查看当前登录的用户passwd# /etc/shadow # 或 /etc/passwd# /etc/group # 或 /etc/gshadow 组# 用户管理useradd # 添加用户adduser # 添加用户passwd # 为用户设置密码passwd $username # 为指定用户设置密码usermod # 修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;# 将用户添加到组,可以一次添加到多个组,用逗号分割;usermod -a -G sudo,root,adm,dialout,cdrom,audio,video,plugdev,games,users,input,netdev,bluetooth,docker,spi,i2c,gpio $usernameusermod -L $username # Lock,禁用某用户;-U Unlock,解除禁用;pwcov # 同步用户从/etc/passwd 到/etc/shadowpwck # pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;pwunconv # 是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;finger # 查看用户信息工具 id 注:查看用户的UID、GID及所归属的用户组 chfn 注:更改用户信息工具su # 用户切换工具sudo # sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令;# 比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;visudo # 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;sudoedit # 和sudo 功能差不多;# 查看 sudo 组包含的用户getent group sudo# 组管理groupadd # 添加用户组;groupdel # 删除用户组;groupmod # 修改用户组信息groups $username # 显示用户所属的用户组grpck grpconv # 通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;grpunconv # 通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;
Linux-Bash
查看当前linux发行版
cat /etc/*release*cat /proc/version- 查看linux发行版名称和版本信息的几种方法_星空的专栏-CSDN博客
- 用于 SUSE Linux 包管理的 Zypper 命令大全_Linux教程_Linux公社-Linux系统门户网站
Shell脚本
- set命令-修改shell环境的运行参数;Bash 脚本 set 命令教程 - 阮一峰的网络日志
- set # 显示当前shell的环境变量
- set -e # 如果遇到错误就停止执行
- set -v on # 命令回显
文件操作
- mkdir -p $dirName # 如果存在也不报错
- cp
- Linux CentOS 复制文件、替换文件 cp 复制文件、cp 覆盖文件 cp替换文件_HaHa_Sir的博客-CSDN博客_centos 复制文件
- linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹 - 大自然的流风 - 博客园
- 移动一个文件夹和它的所有内容到一个新的位置:cp -r ../../project_8755/cmc_platform ../cmc_platform # 移动哪个文件夹,第一个路径就落到哪个名字上;新位置”../“地方不存在cmc_platform文件夹,就要把新建的文件夹名写出来
- Windows与Linux之间互传文件的方法_网络资源是无限的-CSDN博客_linux与windows文件传输工具
- scp
- scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
- scp -r local_folder dst_username@dst_ip:dst_folder
- scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
- find查找
find . -name "xxx.cpp"find ./ -type f # find all files (recursively)find ./ -type d
打包和解压
- ref
- Linux tar.gz、tar、bz2、zip 等解压缩、压缩命令详解 | 菜鸟教程
- Linux压缩和解压命令:tar,gzip,zip(unzip),rar - 简书 ```bash tar -czvf output.tgz /…/dirToBeCompressed # create tgz verbose file tar -xzvf fileName.tgz # extract tgz verbose file xz -z xxx # 创建压缩 xz -d xxx.xz # 解压
RAR
rar a $outputFile.rar $sourceFileOrDir unrar e $outputFile.rar $destPath # 解压到当前目录中(不建议使用) unrar x $outputFile.rar $destPath # 解压到压缩包名的目录中
- 链接- 软链接:ln -s调用另一个脚本'.(空格)script.sh'<br />source<br />[在Shell脚本中调用另一个脚本的三种方式讲解_linux shell_脚本之家](https://www.jb51.net/article/159101.htm)属性- [Linux下用ls和du命令查看文件以及文件夹大小 - 雪球球 - 博客园](https://www.cnblogs.com/xueqiuqiu/p/7635722.html)- du -sh xxx- du -sh --max-depth=1 /usr1/ # 查看目录下的子目录和文件大小- df -lh # 查看磁盘使用情况<a name="MuSAB"></a># FAQ<a name="KuMjA"></a>## 端口占用- [linux : Address already in use 解决方案 - bebug - 博客园](https://www.cnblogs.com/Harmony-OS/p/14570346.html)```bashnetstat -apn | grep 2181 # 端口占用情况和状态kill -9 $procIdps -ef | grep 4438 # 进程是哪个用户启动的,命令行参数
