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