我刚开始阅读 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) 您应该更改提示以指明您当前所在的目录。为此,请在您的主目录 (/Users/YourUserName) 中创建一个名为 .bash_profile 的文件。先检查是否存在:
$ 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) 终端中的 Tab 补全:
您可能已经注意到,您可以键入文件名的一部分,然后按 Tab 键,终端将完成文件名。使用制表符完成,我可以像这样执行我的 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>
您应该为每个文件名使用制表符完成的原因(顺便说一下,在 Unix 中 filename 是目录名和文件名的通用术语)是因为当名称不会制表符完成时,那么您在错误的目录,或者您正在尝试该目录中不存在的文件名。因此,不必输入整个路径 '/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