如果我执行以下操作:
touch /tmp/test
Run Code Online (Sandbox Code Playgroud)
然后执行
ls -la /tmp/
Run Code Online (Sandbox Code Playgroud)
我能看到的test
文件,0字节的目录。
但是操作系统如何处理0 Bytes的概念。如果我用外行的话来说:
0 字节根本就不是内存,因此没有创建任何内容。
创建一个文件,必须或至少应该需要一定的内存,对吗?
我正在尝试创建一个有趣的终端屏幕保护程序,其中包含cmatrix
程序包(将终端变成类似于电影《黑客帝国》的程序包)并xprintidle
确定终端的空闲时间。
我从SuperUser 的这个线程答案中获得了一些帮助,并使用了类似于它的 shell 脚本,如下所示:
#!/bin/sh
set -x # Used for debugging
IDLE_TIME=$((60*1000)) #a minute in milliseconds
screen_saver(){
# My screensaver function
cmatrix -abs
}
sleep_time=$IDLE_TIME
triggered=false
while sleep $(((sleep_time+999)/1000)); do
idle=$(xprintidle)
if [ $idle -ge $IDLE_TIME ]; then
if ! $triggered; then
screen_saver
triggered=true
sleep_time=$IDLE_TIME
fi
else
triggered=false
sleep_time=$((IDLE_TIME -idle+100))
fi
done
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令在前台运行脚本时,该脚本运行完美:
./screensaver.sh
Run Code Online (Sandbox Code Playgroud)
我可以看到矩阵终端被触发。
但是,如果我在后台运行它&
;该功能screen_saver()
在后台触发,我无法查看。查看矩阵终端的唯一可能方法是使用fg
将其置于前景的方式。
fg
是否可以在函数中使用screen_saver()
以下命令:
screen_saver(){
cmatrix -abs && …
Run Code Online (Sandbox Code Playgroud) 我目前对 Linux 中的和based功能着迷。history
!
bash
我已经习惯使用!!
和!:<argc>
类似的功能,但是是否有某种方式,例如,如果我之前添加了错误的参数而犯了错误,那么我可以删除该错误的参数并再次使用命令行。
如果我犯了如下错误:
mv -r movableFolder/ targetFolder/
Run Code Online (Sandbox Code Playgroud)
由于没有-r
选项mv
,我想使用一些!
技巧来删除它:
mv movableFolder/ targetFolder/
Run Code Online (Sandbox Code Playgroud)
我知道我可以从上面的历史命令中执行以下操作:
mv !:2 !:3
Run Code Online (Sandbox Code Playgroud)
但有什么办法可以mv
用!
命令来代替吗?
我用来让用户将密码插入到与某些模板文件whiptail
结合使用的文件中。envsubst
whiptail
清单为了渲染内容,whiptail
我使用以下内容:
declare -A availableServices=(
[grafana]="Grafana Dashboard"
[influxdb]="InfluxDB v1.x TSDB"
[node-red]="Node-RED Flow UI"
[portainer]="Portainer Container Mgmt"
)
# Render TUI
function askGenerateCredential() {
local message="Set Password for particular Service\n
Press <SPACEBAR> to Select \n
Press <Enter> to Skip
"
local arglist=()
# Generate a String for Whiptail Checkboxes
# FORMAT: "<INDEX> <DESCRIPTION> <OFF>"
for index in "${!availableServices[@]}";
do
# Default all Services are NOT-Selected (OFF)
arglist+=("$index" "${availableServices[$index]}" "OFF")
done
SELECTED_SERVICES+=$($WHIPTAIL --title "Available …
Run Code Online (Sandbox Code Playgroud)