
US Israel Supporter
I am not a self-defense professional and cannot give formal advice, but there are things you can carry legally that are deadlier than knives and can be used far more quickly than a gun, if you have one. The idea is that, the instant a terrorist draws a knife on you, you can kill or seriously injure him with something he did not even realize was a weapon.
"My name is Steed; John Steed."
I recall that Avenger John Steed, as played by the late Patrick McNee, carried a sword umbrella, which is illegal in most jurisdictions (at least in the United States). The truth is that an ordinary umbrella has far more stopping power than the kind of sword (essentially a stiletto) that is carried in a sword umbrella; the latter's narrow wound channel, while extremely dangerous, is unlikely to stop a determined assailant. This umbrella, which costs roughly $200 U.S., is exactly that, except it is so strong that you can stand on it without breaking it. You don't need a concealed sword in it to hold it with both hands and drive it into your charging assailant the way you might use a rifle with a bayonet. My personal inclination would be to use it in that manner rather than whacking the assailant with it, because a cut will do far less damage than a thrust, and the bad guy can accept a bruise from it while he knifes you.
Canes for Self-Defense
A cane, again when driven into an aggressor like a bayonet, can do far more damage than a knife, and it is of course legal to carry. The prominent police instructor Massad Ayoob shows how to use one in this video. See also this video.
The first step is, however, to always be in Condition Yellow on the street: aware of your surroundings, and not distracted by electronic devices. This means you will notice the terrorist's first move, whereupon you can escalate to Condition Orange (aware of a potential threat) and, if necessary, Condition Red (aware of a distinct threat that justifies presentation of a weapon) to kill or disable your assailant before he can even begin to hurt you.

