我有一个der
格式的证书,从这个命令我生成一个公钥:
openssl x509 -inform der -in ejbcacert.cer -noout -pubkey > pub1key.pub
Run Code Online (Sandbox Code Playgroud)
结果如下:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7vbqajDw4o6gJy8UtmIbkcpnk
O3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2
eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1
QWPdspTBKcxeFbccDwIDAQAB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得这样的公钥?来自证书还是来自这个公钥?
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==
Run Code Online (Sandbox Code Playgroud)
这是通过以下命令获得的:
ssh-keygen -y -f private_key1.pem > public_key1.pub
Run Code Online (Sandbox Code Playgroud) 我使用以下2个命令创建一个0B文件并将其extn设置为644
touch filename.ext
chmod 777 filename.txt
Run Code Online (Sandbox Code Playgroud)
我的问题是unix(korn shell)中是否有任何一个命令可以将这两个东西放在一起,也就是说创建一个具有所需权限的0B fil?
昨天有人向我建议在bash中使用命令替换会导致产生不必要的子shell.该建议仅针对此用例:
# Extra subshell spawned
foo=$(command; echo $?)
# No extra subshell
command
foo=$?
Run Code Online (Sandbox Code Playgroud)
我认为这对于这个用例似乎是正确的.但是,快速搜索试图验证这会导致大量令人困惑和矛盾的建议.似乎流行的智慧说所有命令替换的使用都会产生一个子shell.例如:
命令替换扩展为命令的输出.这些命令在子shell中执行,其stdout数据是替换语法扩展的内容.(来源)
这看起来很简单,除非你继续挖掘,在这种情况下你会开始找到建议的参考,但事实并非如此.
命令替换不一定会调用子shell,在大多数情况下也不会.它唯一保证的是乱序评估:它只是首先评估替换中的表达式,然后使用替换结果评估周围的语句.(来源)
这似乎是合理的,但这是真的吗?这个与子shell相关的问题的回答让我觉得有点man bash
需要注意:
管道中的每个命令都作为单独的进程执行(即,在子shell中).
这让我想到了主要问题.究竟是什么导致命令替换产生一个副本,这个子shell无论如何都不会被隔离地执行相同的命令?
请考虑以下情况并解释哪些情况会产生额外子shell的开销:
# Case #1
command1
var=$(command1)
# Case #2
command1 | command2
var=$(command1 | command2)
# Case #3
command1 | command 2 ; var=$?
var=$(command1 | command2 ; echo $?)
Run Code Online (Sandbox Code Playgroud)
这些对中的每一对都会产生相同数量的子壳来执行吗?POSIX与bash实现有区别吗?是否有其他情况下使用命令替换会产生一个子shell,在这种情况下运行同一组命令不会?
当我尝试在对象上使用自动完成时,我在VIM中发现了一个奇怪的行为:
如果我在模块级别实例化对象,VIM自动完成将对我创建的实例起作用:
如果我在函数或类中尝试相同时它不再工作:
有谁知道如何解决这个问题,还是没有办法让omnicompletion处理非模块范围内的实例?
我的网址(http://myhost.com/getuser/Default.aspx?username= b772643)返回的总信息的下面一行:
John, Thomas;John.B.Thomas@Company.com
Run Code Online (Sandbox Code Playgroud)
我希望使用没有wget/lynx的shell或bash脚本来阅读这一行.我处于不能使用任何其他实用程序,perl语言等的情况.
我在bash中有一系列相当复杂的命令,最终会返回一个有意义的退出代码.脚本后面的各个地方需要有条件地分支命令集是否成功.
目前我存储退出代码并以数字方式对其进行测试,如下所示:
long_running_command | grep -q trigger_word
status=$?
if [ $status -eq 0 ]; then
: stuff
else
: more code
if [ $status -eq 0 ]; then
: stuff
else
Run Code Online (Sandbox Code Playgroud)
出于某种原因,感觉这应该更简单.我们存储了一个简单的退出代码,现在我们重复输入数值测试操作来运行它.例如,我可以欺骗使用字符串输出而不是返回代码,这更容易测试:
status=$(long_running_command | grep trigger_word)
if [ $status ]; then
: stuff
else
: more code
if [ $status ]; then
: stuff
else
Run Code Online (Sandbox Code Playgroud)
从表面上看,这看起来更直接,但我发现它很脏.
如果其他逻辑不是那么复杂而我只运行一次,我意识到我可以将它嵌入到测试运算符的位置,但是当你需要在其他位置重用结果而不重新运行时,这并不理想.测试:
if long_running_command | grep -q trigger_word; then
: stuff
else
Run Code Online (Sandbox Code Playgroud)
到目前为止我唯一发现的是将代码作为命令替换的一部分进行分配:
status=$(long_running_command | grep -q trigger_word; echo $?)
if …
Run Code Online (Sandbox Code Playgroud) 当且仅当文件已经存在时,我想引用依赖项的时间戳.我有这样的模式规则:
%.pdf: %.sil
sile $< -o $@
Run Code Online (Sandbox Code Playgroud)
这在正常情况下工作得很好,但.sil文件对同名的lua文件进行外部引用(如果存在).我如何知道这一点,以便它检查时间戳并重新生成PDF,如果lua文件更新,但如果文件根本不存在则忽略依赖关系?
这个:
%.pdf: %.sil %.lua
sile $< -o $@
Run Code Online (Sandbox Code Playgroud)
...仅适用于文件存在的情况,如果不存在则会导致错误.
我创建了一个仅限会员的网站,使用Google oauth2授权用户.该网站使用Laravel框架和Artdarek的誓言库构建.
当授权回调来自Google时,我通过电子邮件在数据库中查找用户记录,如果记录存在则进入受保护页面,否则进入注册页面.
问题是我们的一些会员使用了两个Google帐户.一个用户通过其主要帐户注册(e.ge. a@gmail.com).第二天他回来并错误地尝试使用b@gmail.com登录.当然,系统向他显示了注册页面.从那时起,他每次访问该站点时,身份验证机制都会看到他使用他的第二组(不需要的)凭据.
为解决这一案例,我指示他注销所有帐户(双方),清除cookie并从头开始,但这对所有用户来说都不是一个实用的解决方案.在同样的情况下,即使这种措施似乎也无法解决问题.
我该如何解决这个案子?请求oauth身份验证并从正确的帐户返回的正确方法是什么?我可以强制Google要求用户继续使用哪个帐户吗?
我想使用 Jest 对我的应用程序进行单元测试,Jest 使用 Handlebar 作为模板引擎。
我能够对 Handlebar 助手进行单元测试,但无法测试 Handlebar 部分。
当我尝试导入 spec.js 中的部分内容时,出现错误:
意外字符“#”(1:2)
下面是partial.handlerbars文件
{{#with (resource 'some_selector') }}
<img alt="{{altText}}" src="{{image-url}}" />
{{/with}}
Run Code Online (Sandbox Code Playgroud)
下面是partial.spec.js
import partial from './partial.handlebars';
const Handlebars = require('handlebars');
describe('partial suite', ()=> {
Handlebars.registerPartial('partial', partial);
it('should always be true', ()=> {
expect(true).toBe(true);
})
})
Run Code Online (Sandbox Code Playgroud)
下面是错误:
D:/projects/src/components/partials/partial.handlebars: Unexpected character '#' (1:2)
> 1 | {{#with (resource 'some_selector') }}
| ^
Run Code Online (Sandbox Code Playgroud) 我已经“继承”了一个肮脏的git存储库,其中包含约5k个有效提交和约5万个垃圾邮件提交(这是以前是世界可写的wiki的编辑历史记录)。我们正在迁移格式,因此这是重写历史记录的好时机。我不想完全放弃历史记录,但是无论从提交量还是原始内容量来看,垃圾邮件都是压倒性的。回滚到最后一次良好提交的旧审核技术留下了很多垃圾。
我可以发现大约80%的错误提交没有太多使用麻烦git log -S
和一些正则表达式的工作。大多数垃圾邮件内容非常明显。问题是我不确定要删除的大量提交会如何处理。
请注意,我非常熟悉git
并git rebase
每小时使用一次(除非git revise承担了很多负载,否则每分钟都会这样做),而且我知道如何手动完成此操作,但是我需要一个自动化的解决方案。通常情况下,我会转向git filter-branch
,但是我不确定要使用哪种工具来检查当前差异。
我曾考虑过编写一个脚本来操纵一个rebase脚本,但是我认为这会给我带来误报的麻烦。我可能可以捕获和删除原始的删除和回滚,但是当我错过该方程式的一侧时会发生什么?我希望可能的匹配中的REST成功,如果其中之一没有完全重新设置基准就不会失败。
注意我不想基于我的匹配来操纵文件的内容或添加/删除文件,我想检查补丁的内容并决定基于此内容进行选择或删除。
最好的git
工具是什么?
shell ×4
bash ×3
autocomplete ×1
dependencies ×1
git ×1
gnu-make ×1
google-oauth ×1
http ×1
javascript ×1
jestjs ×1
ksh ×1
laravel ×1
makefile ×1
node.js ×1
openssh ×1
openssl ×1
optimization ×1
python ×1
rebase ×1
response ×1
return-value ×1
sh ×1
spam ×1
subshell ×1
unix ×1
vim ×1