我刚开始阅读 Well-Grounded Rubyist。
这是一本非常好的书。我认为它更像是一本中级书而不是初学者书,但没关系。
我尝试了许多不同的方法来尝试调用文件,包括使用
cd /Users/rexrose/Desktop/Rubycode/c2f
该cd
命令表示“更改目录”,您不能将目录更改为文件。相反,您必须将目录更改为包含该文件的目录:
$ cd /Users/rexrose/Desktop/Rubycode
然后您可以像这样执行文件 c2f.rb 中包含的程序:
$ ruby c2f.rb
以下是一些终端提示:
1)您可以使用~
而不是/Users/YourUserName
,因此您可以通过执行以下操作来节省一些输入:
$ cd ~/Desktop/Rubycode
键入“~”而不是“/Users/YourUserName”将成为第二天性。
2) 使用不带参数的 cd 命令:
$ cd
将带您到您的主目录,即 /Users/YourUserName
3) 你应该改变你的提示来指明你当前所在的目录。为此,.bash_profile
在你的主目录(/Users/YourUserName)中创建一个名为的文件。先检查是否存在:
$ cd
$ ls -al
该命令ls -al
将显示目录中的所有文件,包括隐藏文件,即名称以.
. 如果存在名为的文件.bash_profile
,则打开它;如果它不存在,则创建它。把这个放在.bash_profile
:
PS1="\w$ "
要让终端识别更改,您可以退出终端并重新启动它,或者执行以下操作:
$ source .bash_profile
然后打开一个新的终端寡妇。
您还可以将“别名”添加到 .bash_profile。例如,在我的 .bash_profile 中,我有一个别名 'r' 代表 'ruby',这样我就可以像这样执行一个 ruby 程序:
$ r my_program.rb
在 .bash_profile 中,您可以创建这样的别名:
alias r="ruby"
4)终端中的选项卡完成:
您可能已经注意到,您可以键入文件名的一部分,然后点击选项卡,终端将完成文件名。使用制表符完成,我可以像这样执行我的 ruby 程序:
$ r my_pr<tab>
事实上,我将我的练习 ruby 程序命名为这样可以最大程度地使用制表符补全。我有名为 1.rb、2.rb、3.rb 的文件,然后我只需键入以下内容即可执行其中一个:
$ r 1<tab>
事实上,您甚至可能不必输入它!如果您按键盘上的向上箭头键,终端将显示上一个命令,如果您再次按向上箭头键,您将看到之前的命令。因此,您可以向上滚动到上一个命令,然后按回车键执行它——无需输入任何内容。
您应该努力为路径中的每个文件名使用制表符完成。例如,如果你正在 cd'ing 到 /Users/YourUserName/dir1/dir2,你应该这样做:
$ cd /Use<tab>/YourUser<tab>/di<tab>/di<tab>
您应该为每个文件名使用制表符完成的原因(顺便说一句,在 Unixfilename
中是目录名和文件名的通用术语)是因为当名称不会制表符完成时,那么您在错误的目录中或者您正在尝试该目录中不存在的文件名。因此,不必输入整个路径 '/Users/YourUserName/dir1/dir2' 然后在点击返回时找出错误,选项卡完成会在出现错误时立即通知您(因为文件名赢了't tab complete)--为您节省一些打字时间。
5) 因为您可能会在一段时间内将终端用于大部分 ruby 程序,所以您可以设置一些东西,以便终端将自动在您的目录 Users/rexrose/Desktop/Rubycode 中打开。把它放在 .bash_profile 中:
cd "/Users/rexrose/Desktop/Rubycode" (Here you cannot use ~)
6) 有时,您可能需要在命令行中键入计算机上存在的长文件名:
$ cd /Library/SomeLongName/AnotherLongName34832o222/142582dir/some_file.txt
不必在命令行中键入所有内容,您可以先在 Finder 中找到该文件。然后,如果您将文件拖到终端窗口,将在光标处输入文件名。
最后,组织文件的更好方法可能是将它们放在主目录下的目录中,如下所示:
~$ mkdir ruby_programs
~$ cd ruby_programs
~/ruby_programs$ mate 1.rb