如何告诉应用程序在特定工作区中打开?
更多信息:
我喜欢将我的 C++ IDE 放在工作区 2 中,将我的 Java IDE 放在工作区 3 中,并将我的电子邮件、浏览器和其他东西放在工作区 4 中。我还使用了一个在登录时执行的 shell 脚本:
#!/bin/bash
gnome-terminal & # WS 1
netbeans-6-9-1 & # WS2
qtcreator-2-0-1 & # WS 3
firefox & # WS 4
thunderbird & # WS 4
Run Code Online (Sandbox Code Playgroud)
当然,目前它都在当前工作区中打开......有没有办法让我指定每个命令应该从哪个工作区开始?
提前致谢!
我有一些导出和其他需要运行另一个程序的东西(以获取路径或其他任何东西),并且它们需要很长的时间来运行,这意味着我的 bash 启动时间大约为 5 秒。
在我开始添加一些基本缓存之前.bashrc,有没有一种方法可以异步运行一些东西,让我在运行的 shell 中导出变量?
(所以,这真的不仅限于.bashrc,而是一般的 bash。)
my 中有一个部分~/.bashrc,它将 $EDITOR 设置为 gvim。当我在 X 窗口时它工作正常。但是,如果我 ssh 到我的工作站(从另一个工作站),gvim 开始抱怨“无法打开显示”。
因此我想if在 bashrc 中声明,如果 X 窗口可用,则使用 gvim,否则就使用 vim。
我怎么能做到这一点?
我注意到很多次当我通过CTRL+从命令行反向搜索历史时r,如果我想编辑命令,有时当我按下箭头键或输入CTRL+a或CTRL+时,光标会跳到错误的位置e. 它跳转到的特定位置似乎是一个偏移量,等于我在PS1.
这会造成困难,因为光标的实际位置与屏幕上呈现的不同;对命令的未来编辑呈现为就好像光标位于它跳转到的位置一样,但实际命令保留了正确的位置而没有任何跳转。
有谁知道是什么导致了这个或如何解决它?
编辑:如果我PS1在问题末尾添加换行符似乎会消失。但是,我更愿意在与提示相同的行中输入命令。
我正在尝试尽可能多地使用 Homebrew 管理我的 OSX 包。我已经使用 Homebrew 安装了 Fish Shell 和 NVM,但无法让 Fish 识别我的 NVM 安装。使用 Bash 运行时,NVM 命令运行良好,可能是因为当您使用 Homebrew 安装 NVM 时,它让我在我的 .bashrc 文件中添加了一些额外的行。
使用 Homebrew 安装 NVM 后,它说:
Add NVM's working directory to your $HOME path (if it doesn't exist):
mkdir ~/.nvm
Add the following to $HOME/.bashrc, $HOME/.zshrc, or your shell's
equivalent configuration file:
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Run Code Online (Sandbox Code Playgroud)
此外,Homebrew 安装脚本似乎已将此行添加到我的 ~/.profile
source /usr/local/opt/nvm/nvm.sh
Run Code Online (Sandbox Code Playgroud)
我希望可以对 Fish 使用相同的技术来访问 NVM 安装,但我似乎无法让它工作。
我发现了这种技术:https : //github.com/passcod/nvm-fish-wrapper 但我宁愿不必包装 NVM。
任何人都可以帮忙吗?
我有以下脚本:
#!/bin/bash
function consoleWriteLine() {
echo $* >&2
}
consoleWriteLine " indented by 4 spaces"
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到以下输出:
$ ./test.sh
indented by 4 spaces
Run Code Online (Sandbox Code Playgroud)
我的4个空间去哪儿了?我如何让他们回来?
我的理解是它.bash_profile总是通过 SSH 登录来调用。
但是,除非执行以下操作,否则我看不到启用的各种设置:
ssh $host "source ~/.bash_profile ; echo $PATH "
.:/mnt/spark-1.4.1/bin:/mnt/spark-1.4.1/sbin:/mnt/scala-2.11.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Run Code Online (Sandbox Code Playgroud)
当我简单地这样做时:
ssh $host "echo $PATH "
Run Code Online (Sandbox Code Playgroud)
PATH 信息只是默认的
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Run Code Online (Sandbox Code Playgroud)
用户是 root,默认 shell 是 bash。
$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Aug 6 19:54 /bin/sh -> bash
Run Code Online (Sandbox Code Playgroud)
更新root 的 shell为bash
grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
Run Code Online (Sandbox Code Playgroud) 如果您在 bash (touch /root/foo.txt) 中创建一个文件,该文件在AppData\Local\Lxss\ 修改它时出现在隐藏目录中,则不会在 bash 中更改它。更糟糕的是,如果您在 bash 中再次更改它,您通过资源管理器更改的文件会被破坏!
有没有真正的挂载点C:\?
真图藏在哪里??(就像文件系统在现实中写回图像文件一样?)
0:14:29 在这个https://channel9.msdn.com/Events/Build/2016/C906似乎声称您将拥有资源管理器的完全访问权限。0:16:30 他们向你展示,AppData\Local\Lxss\ 但不要一次提到你的文件不会像我描述的那样同步。
bash ubuntu-14.04 windows-10 windows-insider windows-subsystem-for-linux
[[ condition ]]使用and[ condition ]或(( condition ))and有什么区别( condition )?在什么场景下我们需要使用这两者?
(( 10 > 9 ))有效但(( 10 -gt 9 ))无效[[ 10 -gt 9 ]]有效但[[ 10 > 9 ]]无效假设我的计算机中有一些敏感文件,我想完全删除它们,这样就没有人可以检索它们。为此,我可以使用该rm命令,但它仍然很容易恢复。所以我选择使用shred用噪音覆盖我的文件然后删除它的命令。
> shred -n 120 -u my_file.txt
Run Code Online (Sandbox Code Playgroud)
但是,我仍然不确定我的方法是否完全安全。
粉碎文件后可以做什么来恢复它?
假设我可以使用所有可用的取证软件和实验室设备来恢复我的数据。
假设我想保持硬盘驱动器的物理完整性(因此没有微波炉、火灾或任何物理损坏)。
我也尝试过:
dd if=/dev/zero of=my_file.txt bs=16M status=progress
Run Code Online (Sandbox Code Playgroud)
为了将我的文件内容替换为0。但我不知道这个方法是否比shred.
bash ×10
bashrc ×2
linux ×2
fish ×1
forensics ×1
gnome ×1
gvim ×1
homebrew ×1
macos ×1
node.js ×1
performance ×1
rm ×1
shell-script ×1
shred ×1
ssh ×1
ubuntu ×1
ubuntu-14.04 ×1
vim ×1
windows-10 ×1
windows-subsystem-for-linux ×1
workspace ×1
xorg ×1