Shell 脚本中 $ 开头的参数介绍
Shell 脚本中的特殊变量Shell 脚本中以 $ 开头的变量有特殊含义,用于获取脚本运行时的各种信息: 1. $$Shell 本身的 PID(ProcessID,进程 ID) 2. $!Shell 最后运行的后台进程的 PID 3. $?最后运行的命令的退出状态码(返回值) 4. $-使用 set 命令设定的标志位一览 5. $*所有参数列表。当使用双引号括起来时("$*"),以 "$1 $2 … $n" 的形式输出所有参数(作为一个整体字符串)。 6. $@所有参数列表。当使用双引号括起来时("$@"),以 "$1" "$2" … "$n" 的形式输出所有参数(每个参数作为独立字符串)。 7. $#传递给 Shell 的参数个数 8. $0Shell 脚本本身的文件名 9. $1 ~ $n传递给 Shell 的各个参数值。$1 是第 1 个参数,$2 是第 2 个参数,以此类推。
Linux 为当前用户设置环境变量
Linux 为当前用户设置环境变量 首先 cd ~ 执行 ls -al 执行步骤 2 后会看到一个文件 .bash_profile vim .bash_profile 方式 1:配置到 PATH(适用于 Java 或 Maven 等)这种方式使用配置如 Java 或者 Maven 等指定好的 sh,如果需要配置多个 export,看下面的方式 2(仿照bashrc)。 在 .bash_profile 文件中的 Path 中追加你要配置的路径,如下图: 多个目录通过 : (冒号)分割开,修改完后通过 :wq 命令保存。 方式 2:仿照 bashrc123vim ~/.sopei_env# 然后添加 export xxx=xxxexport NODE_ENV=production 使变量生效通过命令 source ~/.bash_profile 使得刚才的修改生效。
Linux 问题总结
切换用户触发错误 -bash: /dev/null: Permission denied此时,你需要删除 /dev/null 文件,并重新创建它: 1rm -f /dev/null; mknod -m 666 /dev/null c 1 3 运行 Bash 脚本文件报错 /usr/bin/env: "bash\r": 没有那个文件或目录错误原因:这主要是因为 bash 后面多了 \r 这个字符的原因。在 Linux 终端下,输出 \r 会什么都不显示,只是把光标移到行首。于是终端虽然输出了 /usr/bin/env bash,但是碰到 \r 后,光标会被移到行首,接着输出了 :No such file or directory 把前面的覆盖掉了。于是出现了那个莫名其妙的出错信息。 解决办法: 1234用 vim 打开 sh 脚本文件,重新设置文件的格式:set ff 然后回车,再重新设置下文件格式:set ff=unix 回车:wq! 保存退出 同时这样设置完也能解决一些其他的问题,比如想在 bash 文件中添加 Python 运行指令,但是传的参数太多,...
利用软链接或挂载处理文件异处存储
背景/var/opt/gitlab 所在磁盘资源不足,现在希望将其无感迁移到 /data/opt/gitlab。 软链接方案停止 GitLab 服务1sudo gitlab-ctl stop 迁移数据到新盘目录12sudo mkdir -p /data/opt/gitlabsudo rsync -av --progress /var/opt/gitlab/ /data/opt/gitlab/ rsync 会保留文件权限和软链接,比 cp 安全。 rsync 执行完后,使用 diff 指令确认是否一致,如果不一致,则使用 rsync 继续进行迁移,直至无差异。 备份原目录(以防回滚)1sudo mv /var/opt/gitlab /var/opt/gitlab.bak 建立软链接1sudo ln -s /data/opt/gitlab /var/opt/gitlab 权限检查1sudo chown -R git:git /data/opt/gitlab GitLab 默认用户是 git,如果你有改过运行用户,替换成对应的用户名。 启动 GitLab1sudo gitla...
scp 和 ssh 用法
scp 文件传输上传到远端上传目录: 1scp -r ./util/ 用户名@192.168.1.65:/home/wwwroot/limesurvey_back/util/ 上传文件: 1scp ./util.js 用户名@192.168.1.65:/home/wwwroot/limesurvey_back/scp/ 远端下载1scp [-r] 用户名@192.168.1.65:/share/webCompileOut.sql ./ 如果是目录拷贝要加 -r 参数,用户名可选,如果省略用户名,默认为终端的用户名。 SSH 免密登录 先执行 su 用户名 切换到想要免密的账户 在你的主控方机器上使用 ssh-keygen 命令创建公钥,使用 ssh-keygen -t rsa 来创建,程序会询问存放目录,如果不需要修改(建议不修改,会放在 ~/ 路径下),直接回车几次即可 将主控方 ~/.ssh 目录下 id_rsa.pub 文件拷贝到受控机器的 ~/.ssh 目录中,然后操作受控方将文件内容导入到 ~/.ssh/authorized_keys 文件 12345# 主...
