为什么要在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″ 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。