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

learn more… | top users | synonyms (1)

6
votes
1answer
1k views

How do I filter a glob in zsh

Basically I can use a glob in zsh to a list. Often, it turns out, I would like to filter that list, grep'ishly I'm wondering though, if I need to do that. Does zsh have a method to filter a list? ...
11
votes
4answers
4k views

Adding paths to PATH using a multi-line syntax

As far as I understand, the usual way to add a path to the PATH environment variable is by concatenating paths separated by the : character. For example, if I want to add three paths to it ...
2
votes
1answer
4k views

Terminal does not source .zshrc with custom colors for ls and cd command

I customized the directory and file colors for ls and cd + TAB. Here is my configuration. My configuration My system environment. Ubuntu 10.10 zsh 4.3.10 (x86_64-unknown-linux-gnu) oh-my-zsh // ...
15
votes
2answers
8k views

In zsh how can I list all the environment variables?

I want to get a list of all environment variables (shell variables? exported variables?) and their values at a given time, in zsh. What is the proper way to do this?
5
votes
5answers
858 views

I messed up my zshrc on a remote server and now I can't run any commands!

On a remote machine I changed my zsh settings and it is now broken, for every keypress it says: "url-quote-magic:1: url-quote-magic: function definition file not found " I don't have another ...
5
votes
1answer
91 views

What is Bash's string{ending1,ending2} construct called and what is the equivalent in zsh?

I've been trying to switch to zsh. Something I've missed so far is this: #!/bin/bash mv /very/long/path/to/file1.conf{,.old} #bash expandes that to: mv /very/long/path/to/file1.conf ...
8
votes
1answer
529 views

zsh - fully expand binary path on <tab>

In my current zsh behaviour, hitting tab after typing "sudo" just adds a space. $ sudo ... What I really want is for the tab to fully expand to the path of the binary it is about to execute when I ...
16
votes
1answer
5k views

How to enable reverse search in zsh?

I recently switched to zsh (finally) and am loving it! So far one thing that I am missing is Ctrl+R to do incremental history search. I have the history set up properly HISTSIZE=10000 SAVEHIST=10000 ...
9
votes
3answers
772 views

What is the main problem someone migrating from bash to zsh should face?

A few times I have had problems in bash that other using zsh didn't have and they were gloating about how smart they are. Also I have seen zsh users among people that I admire, and I have tried a ...
27
votes
3answers
8k views

How to properly collect an array of lines in zsh

I thought the following would group the output of my_command in an array of lines: IFS='\n' array_of_lines=$(my_command); so that $array_of_lines[1] would refer to the first line in the output of ...
4
votes
2answers
522 views

zsh autocomplete directory

I'm new to zsh and one thing that I do quite often is execute shell scripts that are in a directory of mine called Scripts. I'm not always inside of the Scripts directory, however... I may be in ...
8
votes
2answers
5k views

List elements with spaces in zsh

I've been studying zsh scripting for all of 2 hours at this point and I've hit a wall. I want to go through a list of files that may have spaces in them. I'm open to completely different approaches ...
8
votes
2answers
5k views

Screen status bar to display current directory for zsh/bash shell

I use GNU screen a lot with zsh as my shell. It would be a nice feature (I think) to be able to display the current directory name (not the full path) as the tab title. I can do that with CTRL+A ...
4
votes
3answers
6k views

After installing oh-my-zsh: … /.zshrc:source:34: no such file or directory … /.oh-my-zsh/oh-my-zsh.sh

I just tried to install oh-my-zsh. I get the following error when I try to run rvm: zsh: command not found: rvm I also get the following error when I try to open a new tab: ...
1
vote
1answer
241 views

How to access user's fpath as opposed to system's fpath with a script?

test.zsh: #!/usr/bin/env zsh for f in ${fpath}; do echo ${f} done outputs: ...
12
votes
4answers
15k views

How do I reverse a for loop?

How do I properly do a for loop in reverse order? for f in /var/logs/foo*.log; do bar "$f" done I need a solution that doesn't break for funky characters in the file names.
3
votes
1answer
592 views

Zsh autocomplete ls command with directories only

Suppose I have following files and directories: % ls bui00293 buiawer builds/ buiowpe/ I want to list the content of ...
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
179 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
348 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
257 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 ...
4
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
976 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
260 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
117 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
6k 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
4k 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
264 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
322 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
482 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
308 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
137 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 ...
34
votes
1answer
37k 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
176 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 ...
33
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 ...