linux基础
Ssh的工作原理:
服务器启动的时候自己产生一个密钥(768bit公钥),本地的ssh客户端发送连接请求到ssh服务器,服务器检查连接点客户端发送的数据和IP地址,确认合法后发送密钥(768bits)给客户端,此时客户端将本地私钥(256bit)和服务器的公钥(768bit)结合成密钥对key(1024bit),发回给服务器端,建立连接通过key-pair数据传输。
Ssh:
- SSH是安全的加密协议,用于远程连接Linux服务器
- SSH的默认端口是22,安全协议版本是SSH2
- SSH服务器端主要包含2个服务功能SSH连接和SFTP服务器
- SSH客户端包含ssh连接命令和远程拷贝scp命令等
linux
apt 命令:
apt-get install 安装包的名字 (下载+安装)
apt-get remove 安装包的名字
apt-get purge 安装包的名字 移除安装包和配置文件
apt-get upgrade 安装包的名字 检查安装包是否有升级文件有则升级软件包
apt-get autoremove 自动删除不需要的包
查询已经安装了的软件
sudo snap list
#搜索要安装的Snap软件包 sudo snap find xxxx
#查看Snap软件的更多信息
sudo snap info xxxx
#安装Snap软件包 sudo snap install xxxx
#更换软件安装通道 sudo snap switch –channel=xxxx xxxx
#更新Snap软件包 sudo snap refresh xxxx
#还原到之前版本 sudo snap revert xxxx
#卸载Snap软件 sudo snap remove xxxx
如何安装ssh?
Sudo apt-get install openssh-server
查看服务是否启动:
ps -aux | grep ssh
服务启动 重启 关闭
sudo service ssh start
sudo service ssh stop
sudo service ssh restart
远程连接:
命令: port 端口
ssh -p 22 用户名@ip地址
ssh -p 22 running@10.0.102.67
password: running密码
软件连接:
xshell , finalshell , putty …
主机地址 22
密码
linux的目录结构:
root@ubuntu16 /# tree -L 1
. #系统根目录,有且只有一个根目录
├── bin #存放常见的命令
├── boot #系统启动文件和核心文件都在这个目录
├── cdrom #光驱
├── dev #存放设备文件,包括硬盘、光驱、键盘、鼠标等
├── etc #系统配置文件都在这个目录下
├── home #普通用户的家目录
├── lib #系统链接库
├── lib64 #64位的链接库
├── lost+found #系统自动生成的,如果文件系统出错,会在目录下产生文件,记录错误
├── media #系统自动挂载的光驱、usb等
├── mnt #mount简写 挂载其他文件系统
├── opt #可在此安装第三方软件
├── proc #系统进程的信息、系统状态信息
├── root #超管的目录
├── run #进程运行数据
├── sbin #管理员的命令,普通用户无法使用
├── srv #服务信息
├── sys #系统相关
├── tmp #临时目录,所有用户都具有读写权限
├── usr #unix software resource 用户的软件安装到这个目录
| ├── bin #应用程序的可执行文件
| ├── sbin #用户或超管的标准命令
| ├── local #管理员安装的应用程序目录
| └── share #共享文件目录
└── var #存放不断扩充的文件。比如数据库文件、日志文件
├── log #日志目录,各种应用的日志
└── run # /run的软连接
home 普通用户的家
cd home 进入home目录
home:
running xiaoming xiaohua
cd 用户名
~ : 当前用户的家
/ : 根目录
pwd : 查看当前所在位置
root: 超级管理员目录
bin:常用命令
boot : 启动文件和操作系统的核心文件
cdrom : 光驱
dev : 存放设备的目录
etc: 系统的配置文件
常用的命令:
-
pwd 查看当前所在的目录位置
-
ls 查看当前目录的文件或者文件夹
.开头的文件 —》隐藏文件
-a all 列出所有文件包含隐藏文件
-l list 以列表的形式列出文件的所有信息ls ch* 列出ch开头的文件或者文件夹
-
ls -al 简写 ll
-
man 说明书
man 命令
列出此命令的详细信息
-
history 历史
可以把history当成是一个’日志’,记录的是曾经使用的命令
目录相关命令:
绝对路径: /home/running/Music
cd /etc/init.d
cd /home/running/Music/
cd /home/running/Downloads/
相对路径:
cd … 返回上级目录 同 cd …/
cd …/Music/
~/Music$ cd …/…/…/bin
cd /bin
cd 命令:
cd ~ 回到家目录
cd / 根目录
cd - 回到来源目录
cd … 返回上级目录
cd 路径 进行路径的跳转
创建目录:
用户的”家”中直接可以使用: mkdir 目录名
但是如果不在‘家’中: sudo mkdir 目录名
mkdir -p a/a1/a2 创建多层的目录
删除:
rmdir 目录名称 删除的是空目录
rmdir home/running/code 删除的是空目录
rmdir -p code/a1/a2 递归的删除目录
即使是递归删除,目录中也不能存在文件
文件创建
touch 文件名 新建文件
补充:
cat > 文件名
将键盘上的内容输出到文件中
打开文件或编辑文件:
gedit a.txt
vi a.txt :q 退出
cat a.txt 查看文件
tac a.txt 查看文件 (倒序)
cat -n a.txt 查看文件 并且现实行号
more 分页查看 空格健翻页 q表示退出
less 查看 搜索“/ 要搜索内容 ” q表示退出
head 默认获取前10行
head – n number数字 文件名 表示获取前number 行
tail 默认获取的是后10行
tail -n number 文件名 表示获取后number行
删除文件
rm 文件名
rm 绝对路径/文件名
rm -i 文件名 删除之前确认
rm -f 文件名
rm -rf 文件夹 递归的删除文件夹和里面的内容
sudo rm -f 文件名
复制文件
复制文件: copy cp
cp 源文件 目标目录(文件夹)
cp -r 源文件夹 目标目录(文件夹)
sudo cp 源文件 目标目录(文件夹)
移动文件
移动文件 剪切
move
mv 源文件 目标目录(文件夹)
案例: mv code/b.txt code1/code
mv
-f, --force 覆盖前不询问
-i, --interactive 覆盖前询问
-n, --no-clobber 不覆盖已存在文件
如果您指定了-i、-f、-n 中的多个,仅最后一个生效
mv -t 目录 文件1,[文件2],。。。
mv -t code/code1 code/code2/*.txt
mv 目录 目录
mv code3 code
mv 文件1 文件2
mv a.txt a3.txt --→ 将a.txt 重命名 成a3.txt
文件的查找:
find 路径 参数 文件
find -name a.txt ~ find . -name a.txt 当前目录进行查找
find / -name a.txt
find / -size + 1000k
find / -size [+-][大小k,M,G] ----》 + 大于 -小于
find / -mtime -3 查询修改文件在3天以内
find / -mtime +3 查询修改文件在3天以前
-mtime 修改文件的时间
-atime 访问文件的时间
-ctime 修改状态时间
grep:
-i 不区分大小写
-c 只显示匹配行的数量
-r 递归查找子目录
-l 列出文件内容符合指定的范本样式的文件名称。
-n 显示行号
-w 只匹配单词,不是匹配单词一部分
-E 按正则表达式搜索
grep 'hello' * --color 在当前目录下进行搜索,所有文件中包含hello文件
grep -n -c ‘time’ a.txt
grep 名称 往往可以结合管道符使用。
ll | grep system
ps -aux | grep 名称
匹配字符:
. :任意一个字符。
[abc] :表示匹配一个字符,这个字符必须是abc中的一个。
[a-zA-Z] :表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。
[^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符。
对于一些常用的字符集,系统做了定义:
[A-Za-z] 等价于 [[:alpha:]]
[0-9] 等价于 [[:digit:]]
[A-Za-z0-9] 等价于 [[:alnum:]]
tab,space 等空白字符 [[:space:]]
[A-Z] 等价于 [[:upper:]]
[a-z] 等价于 [[:lower:]]
标点符号 [[:punct:]]
匹配次数:
{m,n} :匹配其前面出现的字符至少m次,至多n次。
? :匹配其前面出现的内容0次或1次,等价于{0,1}。
- :匹配其前面出现的内容任意次,等价于{0,},所以 “.*” 表述任意字符任意次,即无论什么内容全部匹配。
位置锚定:
^ :锚定行首
$ :锚定行尾。技巧:"^$“用于匹配空白行。
\b或<:锚定单词的词首。如”\blike"不会匹配alike,但是会匹配liker
\b或>:锚定单词的词尾。如"\blike\b"不会匹配alike和liker,只会匹配like
\B :与\b作用相反。
Whereis 命令
which 命令
目录: cd mkdir rmdir
文件: 创建 touch 删除rm 复制cp 移动mv 查看 cat more gedit vi
查找: find grep whereis | which
链接:
种类: 软链接 soft
硬链接 hard
link
ln [-s] 源文件 目标文件