实现 SSH 无密码登录 、 ssh 常用命令


OpenSSH互联网技术用户所依赖的SSH连接工具免费版本。

telnet,rlogin 和 ftp 用户可能没有意识到他们的密码是通过互联网传输的,并且是未加密的。

但是 OpenSSH 加密所有流量(包括密码)以有效消除窃听,连接劫持和其他攻击。

OpenSSH 还提供了安全隧道功能和多种身份验证方法,并且支持所有SSH协议版本。


ssh-keygen  产生公钥与私钥对.
ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, ~./ssh , 和 ~/.ssh/authorized_keys的权利

第一步:在本地机器上使用ssh-keygen产生公钥私钥对
  1. zhz@zhz:~/$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/zhz/.ssh/id_rsa):
  2. Enter passphrase (empty for no passphrase): [Press enter key
  3. same passphrase again: [Pess enter key]
  4. Your identification has been saved in /home/zhz/.ssh/id_rsa.
  5. Your public key has been saved in /home/zhz/.ssh/id_rsa.pub.
  6. The key fingerprint is:
  7. 用cat命令查看是否生成产生公钥私钥对
  8. zhz@zhz:~$ cat .ssh/id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCl9N5+xboqSIagBx02rdZ2fkROCPW8iW7hl6Gu+2hkBYYy/b1qcOm8RF/AMyas3i0QEK7Hcu9H51l2lulVbS5n9M9FaWIyYzssaS012x2mg9iA6MxPMlaXFsZ5jnVrGicndzf3VUu9kCErp5q0OzzMjsG3PKQevzWZJSBaFgc8NF5ZJ+VT54BN8ktMTHVwOo15I2Uai+bs4eP0NsuwIJmGyYIUOuvTuUtJxGV3hZ+tcjhupupqVCwYOE+cDz8VkFBGtnKsdE69hWoY2VUfEOAfHZptra7Ce9dXfDgx9jxuuNiJYtGo/bZDfe+UJ5HUv8wrL+hFeRIihdmP2CKJD8j5 zhz@zhz


第二步:用ssh-copy-id将公钥复制到远程机器中
  1. zhz@zhz:~$  ssh-copy-id -i .ssh/id_rsa.pub  用户名字@192.168.x.xxx

注意: ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key.文件中

第三步:  登录到 远程机器不用输入密码
  1. zhz@zhz:~$  ssh 用户名字@192.168.x.xxx

  2. Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2

常见问题:

  1. ssh-copy-id -u eucalyptus -i ~eucalyptus/.ssh/id_rsa.pub ssh 用户名字@192.168.x.xxx
  2. 第一次需要密码登录

上述是给eucalyptus用户赋予无密码登陆的权利

  1. /usr/bin/ssh-copy-id: ERROR: No identities found

使用选项 -i ,当没有值传递的时候或者 如果 ~/.ssh/identity.pub 文件不可访问(不存在), ssh-copy-id 将显示上述的错误信息  ( -i选项会优先使用将ssh-add -L的内容)


以上转自:https://blog.csdn.net/alifrank/article/details/48241699

以下转自:http://blog.urfix.com/25-ssh-commands-tricks/


1)将ssh密钥复制到user @ host以启用无密码ssh登录。

ssh-copy-id user @ host

要生成密钥,请使用命令ssh-keygen

2)从某个机器的端口80启动一条隧道到您当地的邮局2001

ssh -N -L2001:localhost:80 somemachine

现在你可以访问http:// localhost:2001 /

3)将麦克风输出到远程电脑的扬声器

dd if = / dev / dsp | ssh -c arcfour -C username @ host dd of = / dev / dsp

这会将麦克风端口的声音输出到ssh目标电脑的扬声器端口。音质很差,所以你会听到很多嘶嘶声。

4)比较远程文件和本地文件

ssh user @ host cat / path / to / remotefile | diff / path / to / localfile -

用于检查本地文件和远程文件是否存在差异。

5)通过SSH安装文件夹/文件系统

sshfs name @ server:/ path / to / folder / path / to / mount / point

从http://fuse.sourceforge.net/sshfs.html安装SSHFS 
将允许您通过网络安装文件夹安全性。

6)通过中间的主机进行SSH连接

ssh -t reachable_host ssh unreachable_host

Unreachable_host从本地网络不可用,但可从reachable_host的网络获得。此命令通过与hidden_​​host的“隐藏”连接创建与unreachable_host的连接。

7)通过主机从host1复制到host2

ssh root @ host1“cd / somedir / tocopy / && tar -cf - 。”| ssh root @ host2“cd / samedir / tocopyto / && tar -xf - ”

好,如果只有你有权访问host1和host2,但他们没有访问你的主机(所以ncat不会工作),他们没有直接访问对方。

 

8)远程运行任何GUI程序

 

ssh -fX <user> @ <host> <program>

SSH服务器配置需要:

X11Forwarding yes#这是Debian中的默认设置

而且它也很方便:

压缩延迟

9)创建一个持久连接到一台机器

ssh -MNf <user> @ <host>

在后台创建与主机的永久SSH连接。将此与〜/ .ssh / config中的设置相结合:
主机主机
ControlPath ~/.ssh/master-%r@%h:%p 
ControlMaster否
与计算机的所有SSH连接都将通过Persisten SSH套接字。如果您使用SSH定期同步文件(使用rsync / sftp / cvs / svn),这非常有用,因为每次打开ssh连接时都不会创建新套接字。

10)通过ssh连接屏幕

ssh -t remote_host屏幕-r

直接附加远程屏幕会话(保存无用的父级bash进程)

11)端口敲击!

knock <host> 3000 4000 5000 && ssh -p <port> user @ host && knock <host> 5000 4000 3000

敲开端口以打开服务端口(例如ssh),再敲一下关闭端口。你必须安装knockd。
见下面的示例配置文件。
[options] 
logfile = /var/log/knockd.log 
[openSSH] 
sequence = 3000,4000,5000 
seq_timeout = 5 
command = / sbin / iptables -A INPUT -i eth0 -s%IP%-p tcp -dport 22 - j ACCEPT 
tcpflags = syn 
[closeSSH] 
sequence = 5000,4000,3000 
seq_timeout = 5 
command = / sbin / iptables -D INPUT -i eth0 -s%IP%-p tcp -dport 22 -j ACCEPT 
tcpflags = syn

12)删除文本文件中的一行。有用的修复

ssh-keygen -R <the_offending_host>

在这种情况下,最好使用专用工具

13)通过ssh运行复杂的远程shell cmds,不用转义引号

ssh主机-l用户$(<cmd.txt)

更简单的方法。更便携的版本:ssh主机-l用户“`cat cmd.txt”“

14)通过一个命令通过SSH将MySQL数据库复制到新服务器

mysqldump -add-drop-table -extended-insert -force -log-error = error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user @ newhost“mysql -uUSER -pPASS NEW_DB_NAME”

通过压缩的SSH隧道转储MySQL数据库并将其用作mysql的输入 - 我认为这是将数据库迁移到新服务器的最快和最好的方式!

15)删除文本文件中的一行。用于修复“ssh主机密钥更改”警告

sed -i 8d〜/ .ssh / known_hosts

16)将你的ssh公钥从一台没有ssh-copy-id的机器复制到一台服务器上

cat〜/ .ssh / id_rsa.pub | ssh user @ machine“mkdir〜/ .ssh; 猫>>〜/ .ssh / authorized_keys“

如果您使用Mac OS X或其他不带有ssh-copy-id的* nix变体,则这一行代码将允许您将公钥添加到远程机器,以便随后可以在没有密码。

17)实时ssh网络吞吐量测试

是| pv | ssh $ host“cat> / dev / null”

通过ssh连接主机并显示实时传输速度,将所有传输的数据导向/ dev / null 
需要安装pv 
Debian:'apt-get install pv'Fedora 
:'yum install pv'(可能需要启用'extras'存储库)

18)如何建立一个你可以重新连接的远程Gnu屏幕会话

ssh -t user@some.domain.com / usr / bin / screen -xRR

在存在标签式终端之前,人们一直在使用Gnu屏幕在单个文本终端中打开许多外壳。与ssh结合使用,您可以使用上述选项通过单个远程连接拥有多个打开的shell。如果使用“Ctrl-a d”进行分离,或者ssh会话意外终止,则远程shell中运行的所有进程将保持不受干扰,随时可供您重新连接。其他有用的屏幕命令是“Ctrl-a c”(打开新shell)和“Ctrl-a a”(在shell之间交替)。阅读此快速参考以获取更多屏幕命令:http://aperiodic.net/screen/quick_reference

19)恢复大文件的scp

rsync -partial -progress -rsh = ssh $ file_source $ user @ $ host:$ destination_file

它可以使用rsync恢复失败的安全副本(在通过vpn传输像db转储这样的大文件时有用)。
它需要在两台主机上安装rsync。
rsync -partial -progress -rsh = ssh $ file_source $ user @ $ host:$ destination_file local - > remote 

rsync -partial -progress -rsh = ssh $ user @ $ host:$ remote_file $ destination_file remote - > local

20)通过ssh w / wireshark远程分析流量

ssh root@server.com'tshark -f“port!22”-w - '| wireshark -k -i -

这使用tshark捕获远程计算机上的流量,通过ssh链接发送原始pcap数据,并将其显示在wireshark中。按ctrl + C将停止捕获,不幸的是关闭您的wireshark窗口。这可以通过将-c#传递给tshark来处理,只捕获一定数量的数据包,或通过命名管道重定向数据,而不是直接从ssh传输到wireshark。我建议尽可能在tshark命令中进行过滤以节省带宽。tshark可以用tcpdump替换:
ssh root@example.com tcpdump -w - 'port!22'| wireshark -k -i - 

21)有一个ssh会话永远打开

autossh -M50000 -t server.example.com'screen -raAd mysession'

打开一个永久开放的ssh会话,在切换WIFI节点时丢失互联网连接的笔记本电脑非常棒。

22)更强大,更快,更强大的SSH客户端

ssh -4 -C -c blowfish-cbc

我们强制IPv4,压缩流,指定密码流为Blowfish。我想你可以使用aes256-ctr以及cypher spec。当然,我忽略了诸如主控制会话之类的东西,并且可能无法在您的shell中使用这些会话,尽管这也会加快速度。

23)用cstream调节带宽

tar -cj / backup | cstream -t 777k | ssh主机'tar -xj -C / backup'

这bzips一个文件夹,并通过网络传输到“主机”在777k位/秒。
cstream可以做得更多,看看http://www.cons.org/cracauer/cstream.html#usage 
例如:
echo w00t,我733+ | cstream -b1 -t2

24)一步将SSH公钥转移到另一台机器上

SSH-凯基; ssh-copy-id user @ host; ssh user @ host

该命令序列允许简单设置(gasp!)无密码SSH登录。要小心,就好像你已经在本地机器上的〜/ .ssh目录中有一个SSH密钥对,那么ssh-keygen可能会覆盖它们。ssh-copy-id将公钥复制到远程主机,并将其附加到远程帐户的〜/ .ssh / authorized_keys文件中。在尝试使用ssh时,如果您没有为密钥使用密码,远程shell会在调用ssh user @ host后不久出现。

25)将stdin复制到你的X11缓冲区

ssh user @ host cat / path / to / some / file | XCLIP

你有没有必要scp文件到你的工作机器,以便将其内容复制到邮件中?xclip可以帮助你。它将stdin复制到X11缓冲区,所以您只需中键单击以粘贴该looong文件的内容:)


ssh-copy-id user @ host

要生成密钥,请使用命令ssh-keygen

2)从某个机器的端口80启动一条隧道到您当地的邮局2001

ssh -N -L2001:localhost:80 somemachine

现在你可以访问http:// localhost:2001 /

3)将麦克风输出到远程电脑的扬声器

dd if = / dev / dsp | ssh -c arcfour -C username @ host dd of = / dev / dsp

这会将麦克风端口的声音输出到ssh目标电脑的扬声器端口。音质很差,所以你会听到很多嘶嘶声。

4)比较远程文件和本地文件

ssh user @ host cat / path / to / remotefile | diff / path / to / localfile -

用于检查本地文件和远程文件是否存在差异。

5)通过SSH安装文件夹/文件系统

sshfs name @ server:/ path / to / folder / path / to / mount / point

从http://fuse.sourceforge.net/sshfs.html安装SSHFS 
将允许您通过网络安装文件夹安全性。

6)通过中间的主机进行SSH连接

ssh -t reachable_host ssh unreachable_host

Unreachable_host从本地网络不可用,但可从reachable_host的网络获得。此命令通过与hidden_​​host的“隐藏”连接创建与unreachable_host的连接。

7)通过主机从host1复制到host2

ssh root @ host1“cd / somedir / tocopy / && tar -cf - 。”| ssh root @ host2“cd / samedir / tocopyto / && tar -xf - ”

好,如果只有你有权访问host1和host2,但他们没有访问你的主机(所以ncat不会工作),他们没有直接访问对方。

 

8)远程运行任何GUI程序

 

ssh -fX <user> @ <host> <program>

SSH服务器配置需要:

X11Forwarding yes#这是Debian中的默认设置

而且它也很方便:

压缩延迟

9)创建一个持久连接到一台机器

ssh -MNf <user> @ <host>

在后台创建与主机的永久SSH连接。将此与〜/ .ssh / config中的设置相结合:
主机主机
ControlPath ~/.ssh/master-%r@%h:%p 
ControlMaster否
与计算机的所有SSH连接都将通过Persisten SSH套接字。如果您使用SSH定期同步文件(使用rsync / sftp / cvs / svn),这非常有用,因为每次打开ssh连接时都不会创建新套接字。

10)通过ssh连接屏幕

ssh -t remote_host屏幕-r

直接附加远程屏幕会话(保存无用的父级bash进程)

11)端口敲击!

knock <host> 3000 4000 5000 && ssh -p <port> user @ host && knock <host> 5000 4000 3000

敲开端口以打开服务端口(例如ssh),再敲一下关闭端口。你必须安装knockd。
见下面的示例配置文件。
[options] 
logfile = /var/log/knockd.log 
[openSSH] 
sequence = 3000,4000,5000 
seq_timeout = 5 
command = / sbin / iptables -A INPUT -i eth0 -s%IP%-p tcp -dport 22 - j ACCEPT 
tcpflags = syn 
[closeSSH] 
sequence = 5000,4000,3000 
seq_timeout = 5 
command = / sbin / iptables -D INPUT -i eth0 -s%IP%-p tcp -dport 22 -j ACCEPT 
tcpflags = syn

12)删除文本文件中的一行。有用的修复

ssh-keygen -R <the_offending_host>

在这种情况下,最好使用专用工具

13)通过ssh运行复杂的远程shell cmds,不用转义引号

ssh主机-l用户$(<cmd.txt)

更简单的方法。更便携的版本:ssh主机-l用户“`cat cmd.txt”“

14)通过一个命令通过SSH将MySQL数据库复制到新服务器

mysqldump -add-drop-table -extended-insert -force -log-error = error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user @ newhost“mysql -uUSER -pPASS NEW_DB_NAME”

通过压缩的SSH隧道转储MySQL数据库并将其用作mysql的输入 - 我认为这是将数据库迁移到新服务器的最快和最好的方式!

15)删除文本文件中的一行。用于修复“ssh主机密钥更改”警告

sed -i 8d〜/ .ssh / known_hosts

16)将你的ssh公钥从一台没有ssh-copy-id的机器复制到一台服务器上

cat〜/ .ssh / id_rsa.pub | ssh user @ machine“mkdir〜/ .ssh; 猫>>〜/ .ssh / authorized_keys“

如果您使用Mac OS X或其他不带有ssh-copy-id的* nix变体,则这一行代码将允许您将公钥添加到远程机器,以便随后可以在没有密码。

17)实时ssh网络吞吐量测试

是| pv | ssh $ host“cat> / dev / null”

通过ssh连接主机并显示实时传输速度,将所有传输的数据导向/ dev / null 
需要安装pv 
Debian:'apt-get install pv'Fedora 
:'yum install pv'(可能需要启用'extras'存储库)

18)如何建立一个你可以重新连接的远程Gnu屏幕会话

ssh -t user@some.domain.com / usr / bin / screen -xRR

在存在标签式终端之前,人们一直在使用Gnu屏幕在单个文本终端中打开许多外壳。与ssh结合使用,您可以使用上述选项通过单个远程连接拥有多个打开的shell。如果使用“Ctrl-a d”进行分离,或者ssh会话意外终止,则远程shell中运行的所有进程将保持不受干扰,随时可供您重新连接。其他有用的屏幕命令是“Ctrl-a c”(打开新shell)和“Ctrl-a a”(在shell之间交替)。阅读此快速参考以获取更多屏幕命令:http://aperiodic.net/screen/quick_reference

19)恢复大文件的scp

rsync -partial -progress -rsh = ssh $ file_source $ user @ $ host:$ destination_file

它可以使用rsync恢复失败的安全副本(在通过vpn传输像db转储这样的大文件时有用)。
它需要在两台主机上安装rsync。
rsync -partial -progress -rsh = ssh $ file_source $ user @ $ host:$ destination_file local - > remote 

rsync -partial -progress -rsh = ssh $ user @ $ host:$ remote_file $ destination_file remote - > local

20)通过ssh w / wireshark远程分析流量

ssh root@server.com'tshark -f“port!22”-w - '| wireshark -k -i -

这使用tshark捕获远程计算机上的流量,通过ssh链接发送原始pcap数据,并将其显示在wireshark中。按ctrl + C将停止捕获,不幸的是关闭您的wireshark窗口。这可以通过将-c#传递给tshark来处理,只捕获一定数量的数据包,或通过命名管道重定向数据,而不是直接从ssh传输到wireshark。我建议尽可能在tshark命令中进行过滤以节省带宽。tshark可以用tcpdump替换:
ssh root@example.com tcpdump -w - 'port!22'| wireshark -k -i - 

21)有一个ssh会话永远打开

autossh -M50000 -t server.example.com'screen -raAd mysession'

打开一个永久开放的ssh会话,在切换WIFI节点时丢失互联网连接的笔记本电脑非常棒。

22)更强大,更快,更强大的SSH客户端

ssh -4 -C -c blowfish-cbc

我们强制IPv4,压缩流,指定密码流为Blowfish。我想你可以使用aes256-ctr以及cypher spec。当然,我忽略了诸如主控制会话之类的东西,并且可能无法在您的shell中使用这些会话,尽管这也会加快速度。

23)用cstream调节带宽

tar -cj / backup | cstream -t 777k | ssh主机'tar -xj -C / backup'

这bzips一个文件夹,并通过网络传输到“主机”在777k位/秒。
cstream可以做得更多,看看http://www.cons.org/cracauer/cstream.html#usage 
例如:
echo w00t,我733+ | cstream -b1 -t2

24)一步将SSH公钥转移到另一台机器上

SSH-凯基; ssh-copy-id user @ host; ssh user @ host

该命令序列允许简单设置(gasp!)无密码SSH登录。要小心,就好像你已经在本地机器上的〜/ .ssh目录中有一个SSH密钥对,那么ssh-keygen可能会覆盖它们。ssh-copy-id将公钥复制到远程主机,并将其附加到远程帐户的〜/ .ssh / authorized_keys文件中。在尝试使用ssh时,如果您没有为密钥使用密码,远程shell会在调用ssh user @ host后不久出现。

25)将stdin复制到你的X11缓冲区

ssh user @ host cat / path / to / some / file | XCLIP

你有没有必要scp文件到你的工作机器,以便将其内容复制到邮件中?xclip可以帮助你。它将stdin复制到X11缓冲区,所以您只需中键单击以粘贴该looong文件的内容:)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

团队项目冲刺第一天

今天&#xff0c;开了第一天的团队会议&#xff0c;我们把团队任务分配了一下&#xff0c;今天的任务是学习了一下Android开发的基础知识&#xff0c;看了哔哩哔哩上面的教学视频&#xff0c;对于一些转换页面&#xff0c;按钮&#xff0c;文本的配置有所了解&#xff0c;明天开…

简单的C语言五子棋(两种模式:移动光标输入坐标和移动光标按键)

五子棋&#xff1a; 需要的数据&#xff1a; 1、定义棋盘数组 2、定义变量用于记录棋子位置 3、定义角色变量 业务逻辑&#xff1a; 是否需要对数据进行初始化 for(;; ) { 1、清理屏幕&#xff0c;显示棋盘 2、落子 坐标要合法&#xff0c;原位置不能有棋子 3、检查是否形成五子…

nodejs-- vuex中mapActions

mapActions() 返回的是一个对象, 用了 ... 扩展符后&#xff0c;才可以放进一个对象里&#xff0c;和其他组件内定义的 method 在同一个 methods 对象。 { methods: mapActions() // 如果没有其它组件内的定义的方法,可以这样写}{ methods: { ...mapActions()&#xff0c;// 如…

怎样让手中的钱成为生财工具

大多数人之所以跟钱之间总有不可逾越的鸿沟&#xff0c;是因为他们不知道钱的活动能力。 钱&#xff0c;跟人一样是有生命的。每一块钱就是你的一个职员&#xff0c;你的目标是让你的职员勤奋工作&#xff0c;经过时间的沉淀&#xff0c;人员会日益壮大&#xff0c;工作效率会…

Android 开发知识集合目录

深入理解java的形参和实参&#xff1a; www.cnblogs.com/xuxinstyle/… sharepreference 与 数据库 区别&#xff1a; Android 各版特点&#xff1a; Android发展史&#xff08;Android各版本特性-知识篇&#xff09; blog.csdn.net/u012964796/…

mysql 查外键关联关系 (指定被引用表,查哪些表对其有外键引用)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在一个业务功能中要求先清空一张基础表&#xff08;user表&#xff09;再插入一批新数据。 在删除过程中报错为其它表有外键引用&#…

Shell脚本语言基础总结

*** 一&#xff0c;shell教程 Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言 二&#xff0c;shell环境 跟 JavaScript、php 编程一样&#xff0c;只要有一个能编写代码的文本编辑器和一…

Error: Can't resolve 'babel-loader'

在控制台中运行命令“webpack”&#xff0c;出现错误&#xff1a;“ERROR in Entry module not found: Error: Cant resolve babel-loader in.........” 解决方法是在控制台输入命令“npm install babel-loader --save"。转载于:https://www.cnblogs.com/Niuxingyu/p/107…

docker 4 section

镜像和容器的关系&#xff1a; 镜像是容器的基础&#xff0c;每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础。我们可以使用的都是来自于 Docker Hub 的镜像。直接使用这些镜像是可以满足一定的需求&#xff0c;而当这些镜像无法直接满足需求时&#xff0c;我们…

日本专家给出的存钱高招(图)

专家认为&#xff0c;对自己钱包里装了多少钱没有数的人&#xff0c;是个有浪费趋向的人&#xff0c;如果改变这一习惯&#xff0c;一定会让你的存款增多不少。 人们常说&#xff0c;犹太人善于赚钱&#xff0c;美国人善于花钱&#xff0c;中国人和日本人善于存钱。在日本现代…

精读《V8 引擎 Lazy Parsing》

1. 引言 本周精读的文章是 V8 引擎 Lazy Parsing&#xff0c;看看 V8 引擎为了优化性能&#xff0c;做了怎样的尝试吧&#xff01; 这篇文章介绍的优化技术叫 preparser&#xff0c;是通过跳过不必要函数编译的方式优化性能。 2. 概述 & 精读 解析 Js 发生在网页运行的关键…

Git和SVN的区别,Git的使用方法大全

什么是Git: Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同&#xff0c;它采用了分布…

详解 springboot - 查看、修改内置 tomcat 版本

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1、解析Spring Boot父级依赖 ?123456<parent> <groupId>org.springframework.boot</groupId> <artifactId>sp…

做生意的技巧 年入百万不是梦(图)

先介绍一下背景&#xff1a;这个表弟是土妖亲大姨家的&#xff0c;从小不爱学习&#xff0c;但是脑子活络。 现在在江苏省泰州市姜堰区的一个农贸市场&#xff0c;开一个小餐馆。餐馆面积50多平米&#xff0c;年收入120万左右。 少即是多——“我的小饭店只卖25种菜” 表弟…

reboot重启失败的解决方法

今天突然碰到用reboot命令不能重启&#xff0c;上网找原因&#xff1a; reboot不能重启可能是内核正在执行一些进程&#xff0c;reboot发送的信号被阻塞了&#xff0c;估计等一会内核从内核空间跳到用户空间的时候&#xff0c;发现有信号被阻塞了&#xff0c;再执行这个阻塞的信…

BUAA-OO 第二单元作业“电梯调度”总结与思考

一、需求分析 利用java线程的相关知识实现 1&#xff09;单部多线程傻瓜调度&#xff08;FAFS&#xff09;电梯 2&#xff09;单部多线程可捎带调度&#xff08;ALS&#xff09;电梯 3&#xff09;多部多线程智能&#xff08;SS&#xff09;调度电梯 二、思路分析 1、基于度量的…

解决报错 javax.persistence.TransactionRequiredException: Executing an update/delete query

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题。 场景是我想要执行一条很简单的删除语句。 JPA方式中使用本地sql , 写法如下&#xff1a; ModifyingQuery("delete fr…

linux基础知识点总结-最实用!(环境搭建,系统分区,常用命令,vim文本)

Linux系统介绍&#xff1a; Linux管理硬盘的能力非常强&#xff0c;所以我们看到的只有一个分区。 / 根目录&#xff0c;所有文件都存储在它下面 /bin 存储着系统命令 /dev 设备文件&#xff08;一切皆文件&#xff09; /home 用户主目录&#xff0c;会自动生成用户同名目录 /…

递归实现进制转换(C++版)

上次呢&#xff0c;我们留下了一道题&#xff0c;今天我们来一起看一看&#xff1a; 题目链接&#xff1a;https://www.cnblogs.com/gaozirong/p/10547434.html 这是我写的程序&#xff0c;大家可以对照参考一下&#xff08;C&#xff09;&#xff1a; #include<bits/stdc.h…

解决 mysql 插入数据报错: Cannot add or update a child row: a foreign key constraint fails

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 场景&#xff1a;我的情况是主表为用户 user 表&#xff0c;从表为职位 job 表&#xff0c;其中 job 表有一个外键为 user 表的主键。 …