不得不知道的冷門linux小知識(持續更新中......)

如何使程序後臺(關閉終端)運行

例如我要開啓一個./test.go啓動程序以後在後臺運行shell

1. 使用nohup

nohup ./test.go > ./log 2>&1 &ubuntu

  • 解釋:nohup就是不掛起的意思將test.go直接放在後臺運行,並把終端輸出存放在當前目錄下的log文件中。

2. 使用setsid

setsid ./test.go > ./log 2>&1 &ssh

上面的演示了使用nohup/setsid加上&使進程在後臺運行,同時不受當前shell退出的影響。那麼對於已經在後臺運行的進程,該怎麼辦呢?能夠使用disown命令:
disown -h %1 工具

Linux/Mac下批量替換文件中的字符串

MAC下批量替換

方法一:

grep -rl "a" ./testDir | xargs sed -i "" 's/a/-replace-/g'code

  • 解釋說明:進程

    • grep -rl "a" ./testDir
    • 在當前路徑下的testDir文件夾中匹配全部文件內容中存在字符串a的文件。
    • xargs sed -i "" 's/a/-replace-/g'
    • 將匹配到的文件內容中的字符串a替換成-replace-

方法二:

  • 使用rpl工具替換。homebrew

    • 這裏我使用的是homebrew安裝,若是沒有安裝homebrew能夠先行百度或者谷歌。

注意:若是是Linux系統也能夠使用apt安裝rem

  • 安裝rpl

brew install rpl字符串

  • 執行替換命令(將當前目錄下全部文件內容中存在a字符串的替換成b)

rpl "a" "b" ./*test

Linux下的批量替換

  • Linux用戶須要注意, OSX上的sed和相似ubuntu這種Linux上的sed是不一樣的, 要求在sed -i後面跟一個字符串, 用來備份。因此若是是Liux能夠寫成下面這樣

grep -rl "a" ./testDir | xargs sed -i 's/a/-replace-/g'

生成SSH公鑰

ssh-keygen -t rsa -C "your_email@youremail.com"

相關文章
相關標籤/搜索