Zsh is a shell with many advanced command-line and scripting features.

learn more… | top users | synonyms (1)

6
votes
2answers
2k views

ZSH: Recursive globbing with .directories

I thought the glob pattern: **/(*|.*) would represent every folder and file starting with dot (.) or not, but it skips directories in the current directory that start with .. What is the glob ...
3
votes
2answers
178 views

Executables show with character * next to their name in output of ls

I noticed that when I list my executables with ls on my Z shell they show up with a character * next to their name (e.g. see the file in red .test_color_scheme)     What is causing ...
14
votes
4answers
3k views

How to silently get an empty string from a glob pattern with no matches

Say I have a folder with three files: foo1 foo2 bar 1. If I run list_of_files=$(print foo*) echo $list_of_files I get: foo1 foo2 2. If I run list_of_files=$(print bar*) echo $list_of_files ...
3
votes
1answer
346 views

Pipe zsh auto completion list to file or less

zsh: do you wish to see all 923 possibilities (462 lines)? Yes please, but in a file or less.
1
vote
2answers
256 views

Generate a list of files from a file containing a series of globbing patterns

I am looking for a way to build a list of files by parsing a file that contains a sequence of zsh globbing patterns. The final goal is to pass this list of files to hg add in mercurial. For those ...
8
votes
2answers
2k views

What is word splitting? Why is it important in shell programming?

I'm getting confused about the role word splitting plays in zsh. I have not been exposed to this concept when programming in C, Python or MATLAB, and this has triggered my interest of why word ...
6
votes
1answer
9k views

Changing the default shell without chsh or administrator priviledges

I saw the following snippet in this thread: How to change from csh to bash as default shell sleep 2 if (-x /usr/local/bin/bash) then exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash' endif ...
3
votes
1answer
2k views

FPATH in zsh: functions and site-functions

I noticed I have the following line near the beginning of my .zshrc file: export FPATH=/usr/share/zsh/site-functions:/usr/share/zsh/4.2.6/functions:$FPATH I can't remember if I typed this myself ...
5
votes
2answers
968 views

Renaming files in lexicographical order with a numerical pattern that increases sequentially with fixed padding

I have files such as a bb ccc abc emrls I would like to rename them so that, after sorting them (for example, lexicographically), each file gets the following name: 00001 00002 00003 etc where ...
2
votes
2answers
257 views

Auto correct path when running a command from history?

I perform a recursive search to find a command I executed few days back and I want to run it. However that command should run from the path from where I ran it previously from and not where I ...
10
votes
3answers
3k views

Pasting from clipboard to vi-enabled zsh or bash shell

I'd like to be able to paste from the system clipboard (or text selection) into my "vi-like" shell prompt using the keyboard. I normally use zsh and sometimes bash. In both cases, I have the shell set ...
4
votes
2answers
110 views

If ^a^b replaces “a” once in the last command, what do I use to replace all occurrences of “a”?

In bash, if I run this command: echo aaaaaaa I get aaaaaaa (duh) But then if I type in ^a^b I end up with baaaaaa What would I type to end up with bbbbbbb ?
13
votes
3answers
5k views

What does : ${param:=value} mean?

I read the following in A User's Guide to the Z-Shell: A synonym for ‘true’ is ‘:’; it’s often used in this form to give arguments which have side effects but which shouldn’t be used — ...
10
votes
2answers
6k views

256 colour prompt in Zsh

How can I set my prompt to be colourized in 256 colours? I am looking for an equivalent to the bash prompt: local DEFAULT="\[\033[0;39m\]" local ROOK="\[\033[38;5;24m\]" ...
7
votes
2answers
2k views

Difference between alias in zsh and alias in bash

I have searched around but could not find anything conclusive. Is there a difference between the alias command in zsh and the alias command in bash? If not, does it mean I can share a set of aliases ...
9
votes
2answers
3k views

Multidigit ranges of files in lexicographical order in zsh

I would like to specify a range of files (in lexicographical order) with two integers (e.g. 2 to 57) in zsh by globbing. For example: "pick the files 2 to 57 in lexicographical order under the path ...
1
vote
1answer
257 views

Delete zsh auto completion suggestion

When I use tab-completion in zsh, the shell suggests me files and I discover that I'm in the wrong directory. How can I just delete the suggestion instead of backspace'ing it?
2
votes
1answer
319 views

Globbing with brackets and variables in zsh

I wrote the following snippet to delete several subdirectories selectively from a common ancestor. It doesn't work, but I can't tell why. for x in *; do rm -r "$x/foo/bar/{a*,b,c,d,g*}"; done I ...
2
votes
2answers
475 views

How to cd into the named directory if command not found?

When I type something which is neither a zsh builtin and no such executable is found from $PATH, zsh just reports an error. Instead, I would like zsh to check if a named directory exists with that ...
0
votes
0answers
305 views

python error using an executable with Z shell

I'm getting this error from the Unix Z shell (I'm on Mac): python: posix_spawn: /System/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python: No such file or ...
32
votes
1answer
1k views

Avoiding “BASH-isms” in shell scripts

Does there exist a tool similar to Perl::Critic that will inspect your shell scripts and point out flaws, portability issues, uses of non-standard programs without fallbacks, depreciated program uses, ...
0
votes
2answers
3k views

SSH “command not found” for Zsh

Im using Zsh on the client and server. When I use ssh to run a command on the remote server it can not find the binary: ssh gt "cd /home/****/app/staging && bundle exec rake db:migrate ...
1
vote
2answers
9k views

Why doesn't the following work?: while true; do “$my_command”; sleep 1; done

Following up on the top answer to this question, I thought I could: 1) Define a command: cmd='for x in $(my_command | grep keyword | cut -d" " -f1); do command2 "arguments" $x; done' 2) Run it ...
6
votes
1answer
5k views

Wrapping a command that includes single and double quotes for another command

I recently learned about watch, but am having trouble making it work with relatively sophisticated commands. For example, I would like to ask watch to run the following command on zsh every three ...
3
votes
2answers
1k views

Concatenating columns horizontally. Printing only rows that intersect on 1st column

Say I have two different commands that output contents by columns, e.g.: $ command_1 7049857 abc fdg hsi 5409858 xxx fyy hsi 540958 abc zzz hsi 54230956 rbc sss hsi $ command_2 7049857 0 fdg ...
0
votes
3answers
2k views

Read first line of a command's output. Command connects me to a remote terminal

Part 1 Say I have a command my_command that outputs multiple lines. I would like to capture the first line of my_command's output as soon as it's ready in a script, while keeping my_command ...
2
votes
1answer
136 views

History-search in zsh working only for commands?

Say I have the following entries in my command history: less documents/doc1.txt less documents/doc2.txt less files/file1.txt less files/file2.txt ls pwd and that I have the following keyboard ...
33
votes
1answer
36k views

For loops in zsh and bash

I have noticed there are two alternative ways of building loops in zsh: for x (1 2 3); do echo $x; done for x in 1 2 3; do echo $x; done They both print: 1 2 3 My question is, why the two ...
1
vote
2answers
173 views

How to change the interpret of a variable in `zsh`?

I set a variable TEMPP='-I ../dir1 -I ../dir2' then I run gcc -M $TEMPP somefile.c It seems not to include ../dir1 and ../dir2 in the search list of the include file, and if there is a space at the ...
32
votes
3answers
8k views

ESC key causes a small delay in terminal due to its Alt+ behavior

My terminal setup is gnome-terminal + tmux + zsh with vi bindings. In applications like vim or even in the zsh's command line vi editing mode, I need to frequently hit the ESC key but there is a ...
4
votes
2answers
2k views

path_helper and zsh

I read that Apple, instead of jamming more and more PATH variable variations to the end of shell profile file, created path_helper binary so that it could expand PATH variable automatically by reading ...
7
votes
1answer
4k views

Arrays and loops in zsh

I am trying to learn loops and array manipulation in zsh. Say I have two arrays in zsh with the same unknown # of elements and each of them containing a list of paths, e.g. ...
4
votes
2answers
1k views

Counting files in leaves of directory tree

I came up with the following snippet for counting files in each subdirectory: for x (**/*(/)); do print $x; find $x -maxdepth 1 -type f | wc -l; done The command outputs consecutive pairs (one ...
18
votes
3answers
1k views

How to fix tab completion so it doesn't hide entries?

I'm using oh-my-zsh on Mac OS X with homebrew'ed zsh 4.3.12. I stumbled recently on a weird problem. In scripts/not-used I have several .R files: breakdowns.R eventloop.R ...
5
votes
2answers
4k views

Spaces as line breaks from inline for loop command

Someone care to enlighten me as to why the spaces in the first command seem to be interpreted as line breaks? Also occurs substituting print for echo. $for l in $( find *.txt -exec head -1 {} \; ); ...
1
vote
2answers
926 views

find -exec on zsh: echo works as expected, print doesn't

I thought the following two commands would output the same thing, but they don't: Command 1: find . -name filename -exec print '{}' \; Command 2: find . -name filename -exec echo '{}' \; ...
5
votes
5answers
472 views

Conflict between my prompt definition and cat in zsh

I have a file on a remote filesystem that I know has a short text string in it (a sequence of numbers in a single line). If I open the file on a text editor like nano or Emacs I can see the string. ...
2
votes
1answer
1k views

What does “trace trap” mean when reported by zsh?

I am trying to run a set UID root program in UNIX using the zsh shell. But I keep getting this message $ ./progExe zsh: trace trap ./progExe Can anyone please tell what does “zsh: trace trap” mean? ...
15
votes
3answers
3k views

How to delete part of a path in an interactive shell?

Is there a shortcut in bash and zsh to delete one component of a path? For example, if I type ls ~/local/color/, and the cursor is at the end of line, is there a shortcut to delete the color/ at the ...
3
votes
1answer
201 views

Definition of word in ZLE (zsh)

I came across the following two snippets in zsh: Snippet 1: autoload select-word-style select-word-style shell Snippet 2: setopt shwordsplit My question is, what is the difference between ...
7
votes
1answer
11k views

Running a bash script from a zsh shell

I'm having problems running a bash script on zsh. The script is similar to the one below and is supposed to run under bash: #!/bin/bash echo "<235234>" | egrep -oe [0-9]+ However, my shell ...
9
votes
3answers
2k views

sharing or synchronizing history between Zsh and Bash

I often find myself switching between Bash and Zsh, and using the history search functionality to recover a command. However, since Bash and Zsh have different history files, I often find that the ...
3
votes
1answer
4k views

How to run a specified codeblock with getopts when no options or arguments are supplied?

So I am writing a script that mixes options with arguments with options that don't. From research I have found that getopts is the best way to do this, and so far it has been simple to figure out and ...
9
votes
2answers
3k views

Testing LS_COLORS in zsh

A few years ago I found an interesting code snippet that prints each type of file in its corresponding color according to the colors set up in LS_COLORS. Unfortunately, I can't remember the link ...
1
vote
1answer
641 views

How to manipulate awk variable NF in zsh?

I have a simple command line: uptime | awk '{print $(NF - 2)}' In a bash shell, this works without a hitch, but when I run it in zsh, I get the following error: title:5: command not found: NF As ...
3
votes
2answers
540 views

Issues with Vim while using ZSH

I just changed my shell to ZSH. However, when I tried to edit a .py file in vim I got a strange error: "test.py" [New File] Error detected while processing ...
5
votes
4answers
3k views

Home key not working in terminal

I am using GNOME Terminal 2.7.3 and zsh 4.3.9 (x86_64-unknown-linux-gnu) Home and End are not working. Nothing happens and nothing gets displayed when I press them. but they work when I press shift + ...
5
votes
1answer
382 views

Adding more Emacs-like bindings to ZSH's line editor (ZLE)

I have a couple of questions regarding the emacs-like keyboard bindings in Zsh. As background to all the questions: I have Emacs-like keybinding activated with bindkey -e (activated by default) ...
4
votes
3answers
2k views

ZSH: `ls *(.)` lists regular files only but `ls *(/)` does not list directories only

I'm not sure I am using ZSH's globbing correctly, but I thought ls *(/) would just list the dirctories under pwd, but it doesn't, it recursively lists all files under every directory under pwd (I got ...
3
votes
3answers
2k views

ZSH: Stripping path, filename and extension from a list of files for piping a command

The syntax for the command convert in ImageMagick is convert source_filename.ext1 destination_filename.ext2 I would like to use zsh to feed it with files in a folder path_to_source and output the ...