命令前加./ ,在后台运行程序 linux批处理 linux自动运行程序

为什么要在linux命令前加上 ./ 
简述
在chinaunix 论坛里找到的答案
原来Quote:

unix或linux中除了path系统变量外的目录下的命令都要加./

修改用户的 .bash_profile 在 PATH一行最后加上 ":." (一个冒号,一个点) 
然后退出重新登陆用户就ok了!

PATH中没有定义路径,加上就ok了


./表示当前目录,这是因为linux的默认搜索目录里没有当前目录,所以如果你在

当前目录需要执行程序就要加上路径,./用全路径代替也是可以的。 
win/dos的默认搜索路径里有当前目录,所以不需要加。其实加上也是一样的效果
 

什么时候才需要在命令前加上./ ? 

比如: 
cd /etc/init.d 
运行:sshd 系统没有什么反应也不出错 
而只有加上./ 后,如 ./sshd 才会出提示如: 
用法:./sshd {start|stop|restart|reload|condrestart|status} 

这是怎么回事,而有的时候却两者都可以。

 

.表示当前目录,./,,,表示执行当前目录下可执行文件

 
首先,你运行了两个sshd,都没有报错,说明两个命令都可以。 

一开始的sshd应该是/usr/sbin/下面的sshd命令。 
第二次的sshd是/etc/init.d/下的一个脚本,不是二进制可执行文件。 

linux优先查找PATH环境变量下的路径,和m$有点不一样。环境变量可以用echo $PATH观看

 

一般rpm安装的都行,可以直接运行。 
有一部分tarball要`编译,编译后在/us/bin or /usr/local/bin下放置可执行文件,则可以直接运行,但有部分程序编译后在原目录下,要执行就要./,,, 
另外,./configure是必需带./的,其实兄弟安装后可以试试在输入可执行文件名前几个字母后Tab,系统会列出所有以这几个字母开头的可执行文件

 

让程序在后台运行

 

 用户有时的程序有可能要花费很多时间,如果将它放在前台运行,将导致无法继续做其他事情,最好的方法就是将它放在后台运行,甚至可能希望在用户注销系统后,程序还可以继续运行。让我们看看那如何实现这一目的。

  1,在后台运行程序的&、bg命令

  将程序放到后台运行的最简单方法就是在命令最后加上“&”,范例如下:

  [tony@free root]# updatedb & ← 在后台执行 locate 数据库更新命令

  [tony@free root]# bg ← 将更新操作放到后台运行

  2,前台运行的程序fg命令

  如果用户当前已有程序在后台运行,可以输入fg命令,将它从背景中移到前台运行:

  [tony@free root]# fg ← 放到前台执行的命令会显示出来

  3,在退出后让程序继续运行的nohup命令

  此命令可使用户退出系统后,程序继续运行。范例如下:

  [tony@free rony]$ nohup myserver &

  然后用户就可以退出了,当再次登录的时候,可以用ps –aux命令看到程序仍在后台中运行。 

linux批处理

 

要执行的命令放入文本文件,然后改变文件属性为可执行即可

chamod +x 你的文件 
./你的文件 搞定

 

linux自动运行程序

1.开机启动时自动运行程序 
  Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。 
   
2.登录时自动运行程序 
  用户登录时,bash首先自动执行系统管理员建立的全局登录script :/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、/.profile,但只执行最先找到的一个。 
  因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。 
   
3.退出登录时自动运行程序 
  退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令“tar -cvzf c.source.tgz *.c”,则在每次退出登录时自动执行 “tar” 命令备份 *.c 文件。
4.定期自动运行程序 
  Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。 
  例如,建立文件crondFile,内容为“00 9 23 Jan * HappyBirthday”,运行“crontab cronFile”命令后,每当元月23日上午9:00系统自动执行“HappyBirthday”的程序(“*”表示不管当天是星期几)。 
   
5.定时自动运行程序一次


  定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令: 
  $ at 12:00 
  at>mailto Roger -s ″Have a lunch″ < plan.txt 
  at>Ctr-D 
  Job 1 at 2000-11-09 12:00 
  2000-11-09 12:00时候自动发一标题为“Have a lunch”,内容为plan.txt文件内容的邮件给Roger。?9 12:00 
  2000-11-09 12:00时候自动发一标题为“Have a lunch”,内容为plan.txt文件内容的邮件给Roger。er。ger。er。

<think>好的,我现在需要帮助用户解决在VSCode中配置LaTeX时遇到的“xelatex不是内部或外部命令”以及相关的非零错误代码问题。首先,用户之提到过关于latexmk和xelatex的报错,特别是权限、路径和配置问题。现在用户又遇到了新的问题,提示xelatex命令找不到,这可能是因为系统环境变量中没有正确配置LaTeX发行版的路径。 首先,我需要确认用户是否安装了像TeX Live或MiKTeX这样的LaTeX发行版。如果没有安装,用户需要先安装其中一个。如果已经安装,可能是环境变量的问题,导致VSCode无法找到xelatex的可执行文件路径。这时候需要指导用户检查环境变量设置,确保LaTeX的bin目录被添到系统的PATH中。 接下来,用户可能在VSCode的配置中没有正确设置LaTeX工具链。用户之提供的配置示例中,latexmk和xelatex的args参数需要包含必要的编译选项,比如--shell-escape,以及确保使用正确的引擎。此外,如果用户使用的是MiKTeX,可能需要以管理员身份运行VSCode,以便正确安装缺失的包或更新数据库。 另外,用户提到的非零错误代码可能涉及临时文件冲突或字体配置问题。这时候需要建议用户清理临时文件,并检查字体设置是否正确,尤其是中文字体的配置。同时,用户可能需要更新MiKTeX的包,确保所有依赖项都是最新的。 在用户的问题中,还提到“xelatex不是内部或外部命令”,这通常意味着系统找不到xelatex.exe。需要分步骤检查:确认安装路径是否存在,检查环境变量是否正确,以及是否在VSCode中正确配置了工具路径。如果用户自定义了安装路径,可能需要手动在VSCode的settings.json中指定xelatex的完整路径。 最后,生成相关问题需要考虑用户可能的后续疑问,比如如何验证环境变量、如何配置其他编译器,或者如何处理特定类型的错误信息。需要确保回答结构清晰,分步骤指导用户排查问题,并提供验证方法,比如创建测试文件来确认配置是否生效。</think>以下是针对VSCode中`xelatex`命令识别失败及非零错误代码的综合解决方案: --- ### 一、核心问题诊断 1. **环境变量未配置** - 系统未识别`xelatex`命令(未将TeX发行版路径入`PATH`) - 典型错误:`'xelatex'不是内部或外部命令` 2. **编译链配置错误** - `latex-workshop`扩展未正确指定XeLaTeX引擎[^4] - EPS图形处理未启用`--shell-escape`[^3] 3. **MiKTeX组件缺失** - 基础包未安装(`xetex`/`latexmk`) - 字体引擎损坏(`xdvipdfmx`相关) --- ### 二、分步解决方案 #### ▶ 步骤1:验证TeX发行版安装 通过终端确认基本组件状态: ```powershell # Windows验证MiKTeX where xelatex # 应返回类似 C:\Program Files\MiKTeX\miktex\bin\x64\xelatex.exe latexmk --version # 确认latexmk存在 # Linux/macOS验证TeX Live which xelatex # 应返回 /usr/local/texlive/2023/bin/x86_64-linux/xelatex ``` #### ▶ 步骤2:配置系统环境变量 **Windows系统**: 1. 右键"此电脑" → 属性 → 高级系统设置 → 环境变量 2. 在`Path`中添(根据实际安装路径): ``` C:\Program Files\MiKTeX\miktex\bin\x64 C:\Users\<用户名>\AppData\Local\Programs\MiKTeX\miktex\bin\x64 ``` **macOS/Linux**: ```bash # 添至~/.bashrc或~/.zshrc export PATH="/usr/local/texlive/2023/bin/universal-darwin:$PATH" ``` #### ▶ 步骤3:强制指定编译器路径 修改VSCode的`settings.json`(避免依赖系统PATH): ```json "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "C:/Program Files/MiKTeX/miktex/bin/x64/xelatex.exe", // 完整路径 "args": [ "--shell-escape", "-synctex=1", "-interaction=nonstopmode", "%DOC%" ] }, { "name": "latexmk", "command": "C:/Program Files/MiKTeX/miktex/bin/x64/latexmk.exe", "args": [ "-xelatex", "--shell-escape", "-synctex=1", "-interaction=nonstopmode", "%DOC%" ] } ] ``` #### ▶ 步骤4:修复MiKTeX组件 以管理员身份运行终端执行: ```cmd mpm --admin --update-db mpm --admin --install=xetex mpm --admin --install=latexmk initexmf --admin --force --mklinks ``` --- ### 三、关键配置验证方法 1. **路径有效性测试** 在VSCode终端直接运行: ```bash "C:/Program Files/MiKTeX/miktex/bin/x64/xelatex.exe" --version ``` 应输出: ``` MiKTeX XeTeX 4.12 (XeTeX 3.141592653-2.6-0.999995) ``` 2. **最小示例测试** 创建`test.tex`: ```latex \documentclass{article} \begin{document} Hello XeLaTeX! \end{document} ``` 按`Ctrl+Alt+B`选择`xelatex ➞ bibtex ➞ xelatex×2`配方编译 --- ### 四、典型错误处理速查表 | 错误现象 | 解决方案 | |---------|----------| | `Command 'xelatex' not found` | 检查步骤2环境变量或使用步骤3的绝对路径 | | `I can't find xelatex.fmt` | 执行`initexmf --admin --dump=xelatex` | | `Fatal fontspec error` | 安装`fontspec`包:`mpm --admin --install=fontspec` | | `Emergency stop (file ended prematurely)` | 删除所有`.aux`, `.log`临时文件 | --- ### 五、扩展配置建议 ```json // 防止后台自动编译失败 "latex-workshop.latex.autoBuild.run": "never", // 显示详细日志 "latex-workshop.message.log.show": true, // 指定输出目录 "latex-workshop.latex.outDir": "%DIR%/build", ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值