Ruby enthusiasts, mostly based in Kansas City, KS, USA. Mac OS X: find the program running on a port Jun 2 2011 Sometimes, there's a program running on a port and you don't know what it is.
What programs can act as a terminal and access serial ports?
- To see the contents of the file, use this command in Terminal: tcpdump -s 0 -n -e -x -vvv -r ~/Desktop/DumpFile01.pcap To capture additional packet traces, modify the Terminal command to increment the number of the saved file (such as DumpFile02.pcap and DumpFile03.pcap).
- You can now close the Terminal utility. You will now be able to see all files, including hidden ones, when using the Finder on your Mac. How to force quit a program on a Mac.
This is not for terminal access on an IP connection, this is so I can access a hardware device plugged into a USB/serial converter running at 9600/8/N/1.
daviesgeek13 Answers
There's a new Mac app called Serial, available in the app store. Full disclosure- I wrote it. The main advantage over other apps is it can work with most USB to serial devices without having to install any drivers, as it has its own drivers built-in. It also does full terminal emulation so you can use it to work with Linux or other devices that require it. You can try it for free, too.
Also, Apple began including their own driver for FTDI-based devices in Mavericks (10.9). So, if you're on 10.9 or later and your device has an FTDI chip inside, you can use the built-in screen command in the terminal to access your device without worrying about drivers.
You can use the terminal command screen
to do this!!!
As seen on ServerFault:
I love using [screen] for connecting to serial consoles, i.e.
Or, if you prefer Mac OS X hints...
I often have to do router configuration via a console port, so I use a Keyspan Serial Adapter to get access. Two problems then present themselves: ZTerm is a horrible Mac OS X app. It hasn't been updated in five years or so, and isn't a Universal Binary. The developer doesn't seem in any hurry to rectify the situation. It is not worth the shareware fee in its current form. Minicom requires installation of Fink or MacPorts and is overly complex. Solution: Use screen, Terminal, and a little AppleScripting.
First, launch Script Editor and type/paste in the following code:
Compile and save as an app from within Script Editor, and you have a double-clickable application to launch a serial Terminal session. You may want to customize this slightly -- you can change the screen colors or number of columns or rows. You may also need to customize the screen command with a different device name if you are using something other than the Keyspan Serial Adapter (do an ls tty* of the /dev/ directory to get the right name).
screen uses Control-A to take commands directed to it. So type Control-A followed by Control- to exit your screen session. If you fail to do this and exit a Terminal session, you'll leave the screen session alive and the serial resource unavailable until you kill the screen session manually. man screen will show you further commands to send to a screen session.
If anyone can reply with a link to a tutorial on how to wrap an interactive Unix App in Cocoa, that would be the next step -- it would be nice to do this without involving Terminal. If you prefer to use Minicom, you could still use the AppleScript to wrap it into a nice launchable app -- use this older hint to find the right command line commands.
Many USB-Serial adapters use the chip from FTDI. Install the 'Virtual COM Port' driver and look for the proper TTY name in /dev
. For example, on a PowerBook G4 it came up as /dev/tty.usbserial-FTALKY8I
.
The best program I know of for this is minicom
, available from Homebrew, fink, and macports.
Minicom is a serial communication program. It is a Unix clone of the well-known MS-DOS Telix program. It has ANSI color, a dialing directory, dial-a-list, and a scripting language.
nohillside♦My preference is cu
. I use it for Arduino or Bus Pirate related fun. It's installed by default and supports parity settings among other options (type man cu
for more info).
To bail out when you're done, type ~.
as you would with SSH
If you prefer not to work in Terminal, you might mant to try CoolTerm (free). Scroll down a bit for description and download. Don’t let the fact it‘s written in RealBasic turn you away... I have used it to connect to plotters, Arduino boards and receipt printers via a Keyspan USB<->Serial Adaptor.
myhdmyhdYou should have a look at ZOC, what I think to be the best terminal emulation program available for the Mac. I use it everyday for my job. It has the ability to do direct communication with a serial port. Of course it does way more than just serial communication.
ZOC is a professional SSH/telnet client and terminal emulator. With its impressive list of emulations it lets you easily connect to hosts and mainframes, using communication methods like secure shell, telnet, serial cable or modem/isdn.
Its sleek user interface has many ways of making your life easier. In its own way, this is the swiss army knife of thin clients: versatile, robust, proven.
Key features:
- Tabbed sessions with thumbnails
- Customizable to meet your preferences and needs
- Scripting and automation features
- Compatible with Windows 7 and OS X Lion
- Administrator friendly (deployment, configuration)
- Now $79.99 with attractive bulk discounts
C-Kermit is alive and well in Brew, and can be installed with:
Naturally you would require Brew to be installed first. You can find information on how to do this here: http://brew.sh
Alternatively use Macports
This would too require you to have Macports installed
Danijel-James WAnd then there still is the old ZTerm which is just as old as it's looks suggest yet it gets the job done just fine and it is available for free. Works fine with Prolific (PL 2303) and FTDI based USB serial adapters.
I have had success with cutecom on Ubuntu 16.04
Supported on OSX: http://cutecom.sourceforge.net/
gatorbackgatorbackHow To Read The Program Written To An Arduino
Another serial terminal for Mac OS X is Cornflake!
It features Device Selection with a Refresh Button, Baud Rate & Packet Type & Flow Control Selection, Port Control and a View Filter to view incoming data as ASCII, ASCII+, Integer or HEX.
After trying other approaches (incl. screen
) unsuccessfully, I started using goSerial from this list of serial port apps for mac. Seems to be working fine. It's a free (donation based) program.
I use screen
to connect to my router's serial port on my Mac.
After installing it- using either macports or homebrew depending on your preference- use the following syntax:
To connect to my MikroTik RB4011 router my screen
command is:
'cs8' being the bit rate of router and 'ixoff' specifying 'No Flow Control'. '115200' is the baud rate of router. Alternate settings would be 'cs7' for 7 instead of 8 bit and 'ixon' if flow control supported by your serial device. man screen
All the 'HowTo's' for using screen
to make a serial connection on the 'net I've found Googling omit these required parameters, so that's why you'll find screen
has not worked if you've tried it just passing only the baud rate.
BTW, minicom -s
(which would also need to be installed via macports or homebrew) also works great, but I prefer screen as I don't have to go through setup menus- I can just pass the serial connection parameters directly to the screen command.
You must log in to answer this question.
protected by nohillside♦Jun 17 '18 at 6:33
Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
Not the answer you're looking for? Browse other questions tagged terminal .
I've set everything up that I need on my Mac (Ruby, Rails, Homebrew, Git, etc), and I've even written a small program. Now, how do I execute it in Terminal? I wrote the program in Redcar and saved it as a .rb, but I don't know how to execute it through Terminal. I want to run the program and see if it actually works. How do I do this?
Tom MaxwellTom Maxwell9 Answers
Just call: ruby your_program.rb
or
- start your program with
#!/usr/bin/env ruby
, - make your file executable by running
chmod +x your_program.rb
- and do
./your_program.rb some_param
How To See The Programs Written For Terminal In Mac
Open your terminal and open folder where file is saved.
Ex /home/User1/program/test.rb
- Open terminal
cd /home/User1/program
ruby test.rb
format or test.rb
output
ice creamAssuming ruby interpreter is in your PATH (it should be), you simply run
Sergio TulentsevSergio TulentsevTo call ruby file use : ruby your_program.rb
To execute your ruby file as script:
start your program with
#!/usr/bin/env ruby
run that script using
./your_program.rb param
- If you are not able to execute this script check permissions for file.
Just invoke ruby XXXXX.rb
in terminal, if the interpreter is in your $PATH variable.
( this can hardly be a rails thing, until you have it running. )
JokesterJokesterAlthough its too late to answer this question, but still for those guys who came here to see the solution of same problem just like me and didn't get a satisfactory answer on this page, The reason is that you don't have your file in the form of .rb extension. You most probably have it in simple text mode. Let me elaborate.Binding up the whole solution on the page, here you go (assuming you filename is abc.rb or at least you created abc):
Type in terminal window:
and you are done
If the following error occurs
Then go to the directory in which you have the abc file, rename it as abc.rbClose gedit and reopen the file abc.rb. Apply the same set of commands and success!
For those not getting a solution for older answers, i simply put my file name as the very first line in my code.
like so
Open Terminal
or add #!/usr/bin/env ruby
in the first of your program (script tell that this is executed using Ruby Interpreter)
Open Terminal
In case someone is trying to run a script in a RAILS environment, rails provide a runner to execute scripts in rails context via
rails runner my_script.rb
More details here:https://guides.rubyonrails.org/command_line.html#rails-runner
Nikhil SahuNikhil Sahuprotected by Community♦Feb 13 '16 at 10:46
Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?