[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
slackbook:bash [2012/09/08 18:05 (UTC)] – [Terminals] updated section to match original with formatting mfillpot | slackbook:bash [2012/09/12 20:39 (UTC)] – [Sources] Fixed syntax for bullet points sycamorex | ||
---|---|---|---|
Line 41: | Line 41: | ||
- | < | + | < |
darkstar:~$ set FOO=bar | darkstar:~$ set FOO=bar | ||
darkstar:~$ echo $FOO | darkstar:~$ echo $FOO | ||
Line 57: | Line 57: | ||
- | < | + | < |
darkstar:~$ set PS1=' | darkstar:~$ set PS1=' | ||
darkstar:~$ export PS1=' | darkstar:~$ export PS1=' | ||
Line 78: | Line 78: | ||
- | < | + | < |
darkstar:~$ ifconfig | darkstar:~$ ifconfig | ||
bash: ifconfig: command not found | bash: ifconfig: command not found | ||
Line 91: | Line 91: | ||
- | < | + | < |
darkstar:~$ su - | darkstar:~$ su - | ||
Password: | Password: | ||
Line 114: | Line 114: | ||
- | < | + | < |
darkstar:~$ touch b ba bab | darkstar:~$ touch b ba bab | ||
darkstar:~$ ls * | darkstar:~$ ls * | ||
Line 133: | Line 133: | ||
- | < | + | < |
darkstar:~$ ls a[1-4,9] | darkstar:~$ ls a[1-4,9] | ||
a1 a2 a3 a4 a9 | a1 a2 a3 a4 a9 | ||
Line 145: | Line 145: | ||
- | < | + | < |
darkstar:~$ ls 1[W-b] | darkstar:~$ ls 1[W-b] | ||
1W 1X 1Y 1Z 1a 1b | 1W 1X 1Y 1Z 1a 1b | ||
Line 162: | Line 162: | ||
dealing with long filenames: tab completion. | dealing with long filenames: tab completion. | ||
you to type just enough of the filename to uniquely identify it, then | you to type just enough of the filename to uniquely identify it, then | ||
- | by hitting the < | + | by hitting the <key>'TAB'</ |
the rest for you. Even if you haven' | the rest for you. Even if you haven' | ||
identify a filename, the shell will fill in as much as it can for you. | identify a filename, the shell will fill in as much as it can for you. | ||
Line 183: | Line 183: | ||
- | < | + | < |
darkstar:~$ echo foo | darkstar:~$ echo foo | ||
foo | foo | ||
Line 203: | Line 203: | ||
- | < | + | < |
darkstar:~$ echo foo | darkstar:~$ echo foo | ||
foo | foo | ||
Line 226: | Line 226: | ||
- | < | + | < |
darkstar:~$ rm bar | darkstar:~$ rm bar | ||
rm: cannot remove `bar': No such file or directory | rm: cannot remove `bar': No such file or directory | ||
Line 240: | Line 240: | ||
- | < | + | < |
darkstar:~$ fromdos < dosfile | darkstar:~$ fromdos < dosfile | ||
</ | </ | ||
Line 253: | Line 253: | ||
- | < | + | < |
darkstar:~$ ps auxw | grep getty | darkstar:~$ ps auxw | grep getty | ||
root 2632 0.0 0.0 | root 2632 0.0 0.0 | ||
Line 267: | Line 267: | ||
temporarily halt a running process, perform some other task, then | temporarily halt a running process, perform some other task, then | ||
resume it or optionally make it run in the background. Upon pressing | resume it or optionally make it run in the background. Upon pressing | ||
- | < | + | <key>'CTRL'</ |
the running process and return you to a prompt. You can return to that | the running process and return you to a prompt. You can return to that | ||
process later. | process later. | ||
Line 274: | Line 274: | ||
- | < | + | < |
darkstar:~$ jobs | darkstar:~$ jobs | ||
[1]- Stopped | [1]- Stopped | ||
Line 288: | Line 288: | ||
- | < | + | < |
darkstar:~$ fg # "vi TODO" | darkstar:~$ fg # "vi TODO" | ||
darkstar:~$ fg 1 # "vi chapter_05.xml" | darkstar:~$ fg 1 # "vi chapter_05.xml" | ||
Line 320: | Line 320: | ||
applications. Each of these gettys is available on different tty | applications. Each of these gettys is available on different tty | ||
devices that are accessible seperately by pressing the | devices that are accessible seperately by pressing the | ||
- | < | + | <key>'ALT'</ |
- | < | + | <key>'F1'</ |
allows you to login multiple times, perhaps as different users, and run | allows you to login multiple times, perhaps as different users, and run | ||
applications in those users' shells silmutaneously. This is most | applications in those users' shells silmutaneously. This is most | ||
Line 342: | Line 342: | ||
===== Customization ===== | ===== Customization ===== | ||
- | By now you should be pretty familiar with bash and you may have even noticed some odd behavior. For example, when you login at the console, you're presented with a prompt that looks a bit like this. | + | By now you should be pretty familiar with |
+ | **//bash//** and you may have even noticed some odd | ||
+ | behavior. For example, when you login at the console, you're presented | ||
+ | with a prompt that looks a bit like this. | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | alan@darkstar: | ||
- | < | ||
- | alan@darkstar: | ||
- | </ | ||
However, sometimes you'll see a much less helpful prompt like this one. | However, sometimes you'll see a much less helpful prompt like this one. | ||
- | < | ||
- | bash-3.1$ | ||
- | </ | ||
- | The cause here is a special environment variable that controls the bash prompt. Some shells are considered " | + | <code bash> |
+ | bash-3.1$ </ | ||
+ | |||
+ | |||
+ | The cause here is a special environment variable that controls the | ||
+ | **//bash//** prompt. Some shells are considered | ||
+ | //" | ||
+ | different configuration files when started. Login shells read | ||
+ | '' | ||
+ | '' | ||
+ | read '' | ||
+ | for power users, but is a common annoyance for many new users who want | ||
+ | the same environment anytime they execute | ||
+ | **//bash//** and don't care about the difference | ||
+ | between login and interactive shells. If this applies to you, simply | ||
+ | edit your own ~/.bashrc file and include the following lines. | ||
+ | (For more information on | ||
+ | the different configuration files used, read the INVOCATION section of | ||
+ | the **//bash//** man page.) | ||
+ | |||
+ | |||
+ | <code bash> | ||
- | < | ||
# ~/.bashrc | # ~/.bashrc | ||
. / | . / | ||
Line 361: | Line 383: | ||
</ | </ | ||
- | When using the above, all your login and interactive shells will have the same environment settings and behave identically. Now, anytime we wish to customize a shell setting, we only have to edit ~/ | ||
- | bash prompts come in all shapes, colors, and sizes, | + | When using the above, all your login and interactive shells will have |
+ | the same environment settings | ||
+ | wish to customize | ||
+ | ''~/.bash_profile'' | ||
+ | ''/ | ||
+ | configuring the prompt. | ||
- | < | + | |
+ | **// | ||
+ | sizes, and every user has their own preferances. Personally, I prefer | ||
+ | short and simple prompts that take up a minimum of space, but I've seen | ||
+ | and used mutli-line prompts many times. One personal friend of mine | ||
+ | even included ASCII-art in his bash prompt. To change your prompt you | ||
+ | need only to change your PS1 variable. By default, Slackware attempts | ||
+ | to configure your PS1 variable thusly: | ||
+ | |||
+ | |||
+ | < | ||
darkstar:~$ echo $PS1 | darkstar:~$ echo $PS1 | ||
- | \u@\h: | + | \u@\h:\w\$ </ |
- | </ | + | |
- | Yes, this tiny piece of funny-looking figures controls your bash prompt. Basicaly, every character in the PS1 variable is included in the prompt, unless it is a escaped by a \, which tells bash to interpret it. There are many different escape sequences and we can't discuss them all, but I'll explain these. The first " | ||
- | Since we've gone through all this trouble to discuss | + | Yes, this tiny piece of funny-looking figures controls your |
+ | **// | ||
+ | the PS1 variable is included in the prompt, | ||
+ | <key>'\'</ | ||
+ | interpret it. There are many different escape sequences | ||
+ | discuss them all, but I'll explain these. | ||
+ | the username of the current user. //" | ||
+ | the terminal is attached | ||
+ | //" | ||
+ | depending on whether or not the current user is root. A complete | ||
+ | listing of all prompt escape sequences is listed in the | ||
+ | **// | ||
- | < | + | |
+ | Since we've gone through all this trouble to discuss the default | ||
+ | prompt, I thought I'd take some time to show you a couple example | ||
+ | prompts and the PS1 variable values needed to use them. | ||
+ | |||
+ | |||
+ | < | ||
Wed Jan 14 12:08 AM | Wed Jan 14 12:08 AM | ||
alan@raven: | alan@raven: | ||
Line 383: | Line 434: | ||
</ | </ | ||
- | For even more information on configuring your bash prompt, including information on setting up colored prompts, refer to / | ||
+ | For even more information on configuring your bash prompt, including | ||
+ | information on setting up colored prompts, refer to | ||
+ | ''/ | ||
+ | reading that for a short while, you'll get an idea of just how powerful | ||
+ | your **// | ||
+ | prompt that gave me up to date weather information such as temperature | ||
+ | and barometric pressure! | ||
+ | |||
+ | ====== Chapter Navigation ====== | ||
+ | |||
+ | **Previous Chapter: [[slackbook: | ||
+ | |||
+ | **Next Chapter: [[slackbook: | ||
====== Sources ====== | ====== Sources ====== | ||
<!-- If you copy information from another source, then specify that source --> | <!-- If you copy information from another source, then specify that source --> | ||
- | * Original source: [[http:// | + | |
<!-- Authors are allowed to give credit to themselves! --> | <!-- Authors are allowed to give credit to themselves! --> | ||
- | < | + | |
<!-- * Contrbutions by [[wiki: | <!-- * Contrbutions by [[wiki: | ||