# Linux Command Line Flashcards: Essential Commands, Flags &amp; Workflows

![A dark terminal window with an abstract command prompt flowing into organized file, search, permission, and process symbols\.](<https://d2bq3tvt7zf1kf.cloudfront.net/catalog/media/01686bf83f3090f4787c1bd234c04595acf8bc887518b90fe5828dc8056dfa23>)

Practice essential Linux terminal commands through 100 task\-first cards on paths, files, search, pipes, permissions, processes, archives, and system checks\.

من إعداد [Open Study Contributor](<https://nibomo.com/ar/catalog/authors/open-study-contributor/>)

[ادرس هذه الرزمة مجانًا](<https://app.nibomo.com/catalog/import/50298c72-4a53-450d-a248-8cfa3cc0520c>)

سيفتح تطبيق Nibomo لتبدأ الدراسة\.

## تفاصيل الرزمة

- البطاقات: ١٠٠ بطاقة
- الإصدار: ١
- تاريخ النشر: ١ سبتمبر ٢٠٢٦
- آخر تحديث: ١٠ سبتمبر ٢٠٢٦
- الترخيص: Common knowledge · CC0 1\.0
- لغات الجمهور: [en](<https://nibomo.com/ar/catalog/languages/en/>)
- المادة: Computer science
- الوسوم: linux\-cli

## حول هذه الرزمة

Build reliable Linux command-line recall with 100 original, task-first flashcards. The sequence starts with help and navigation, then moves through files, text search, pipes and redirection, permissions, processes, archives, storage, remote access, and everyday Bash workflows.

The cards practice four useful mappings: a realistic task to a command shape; a command, flag, or shell operator to its effect; an output or exit-status cue to its meaning; and a close choice to the safer or more suitable tool. Related prompts are spaced apart so a nearby answer does not give away the next card.

This deck focuses on frequent Linux CLI decisions, not every option a command supports. It excludes Git, certification objectives, shell scripting as a subject, distro-specific package managers, destructive recursive examples, and advanced system administration.

The wording, examples, sequence, and cover are original. Facts were checked against POSIX, the GNU Coding Standards, GNU Coreutils, GNU Bash, GNU Grep, GNU Findutils, GNU tar, GNU gzip, GNU Diffutils, Linux manual pages, ncurses, OpenSSH, and curl documentation. Source links stay on the relevant cards. Third-party documentation, source titles, trademarks, and factual material remain subject to their own rights; the CC0 label applies only to the original deck material to the extent applicable rights exist.

## رزم مشابهة

- [Git Commands Flashcards: Everyday Workflow, Branching &amp; Recovery](<https://nibomo.com/ar/catalog/packages/git-commands-flashcards/>)

## بطاقات هذه الرزمة

### البطاقة ١

**السؤال**

Open the manual page for a command.

**الإجابة**

Use `man COMMAND`, for example `man ls`. It opens the installed manual entry when one is available.

Source: [man-pages: man(1)](https://man7.org/linux/man-pages/man1/man.1.html).

### البطاقة ٢

**السؤال**

Print the current working directory.

**الإجابة**

Use `pwd`. It prints the absolute path of the directory the shell is currently in.

Source: [GNU Coreutils: `pwd`](https://www.gnu.org/software/coreutils/manual/html_node/pwd-invocation.html).

### البطاقة ٣

**السؤال**

Create an empty file or update a file's timestamps.

**الإجابة**

Use `touch FILE`. It creates an empty file if the path does not exist; otherwise it updates the selected timestamps.

Source: [GNU Coreutils: `touch`](https://www.gnu.org/software/coreutils/manual/html_node/touch-invocation.html).

### البطاقة ٤

**السؤال**

Print a small text file to standard output.

**الإجابة**

Use `cat FILE`. It copies the file's contents to standard output; use a pager such as `less` for long files.

Source: [GNU Coreutils: `cat`](https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html).

### البطاقة ٥

**السؤال**

Send one command's standard output into another command.

**الإجابة**

Use a pipe: `COMMAND1 | COMMAND2`. The shell connects the first command's standard output to the second command's standard input.

Source: [GNU Bash: pipelines](https://www.gnu.org/software/bash/manual/bash.html#Pipelines).

### البطاقة ٦

**السؤال**

Where do you see a file's permission bits in `ls -l` output?

**الإجابة**

At the start of each entry, after the file-type character. A value such as `-rw-r--r--` shows the type first, then user, group, and other permissions.

Source: [GNU Coreutils: long listing format](https://www.gnu.org/software/coreutils/manual/html_node/What-information-is-listed.html).

### البطاقة ٧

**السؤال**

Take a quick snapshot of processes associated with the current terminal.

**الإجابة**

Use `ps`. With its default selection, it gives a one-time process listing rather than a live display.

Source: [procps-ng: `ps`](https://man7.org/linux/man-pages/man1/ps.1.html).

### البطاقة ٨

**السؤال**

Create an uncompressed tar archive from files or directories.

**الإجابة**

Use `tar -cf ARCHIVE.tar PATH...`. `-c` creates an archive and `-f` names the archive file.

Source: [GNU tar: create](https://www.gnu.org/software/tar/manual/html_node/create.html).

### البطاقة ٩

**السؤال**

Open an interactive shell on a remote machine over SSH.

**الإجابة**

Use `ssh USER@HOST`. SSH connects to the remote host and can start an authenticated login session.

Source: [OpenSSH: `ssh`](https://man.openbsd.org/ssh).

### البطاقة ١٠

**السؤال**

Display the current environment variables.

**الإجابة**

Use `env`. With no command or assignments, it prints the current environment.

Source: [GNU Coreutils: `env`](https://www.gnu.org/software/coreutils/manual/html_node/env-invocation.html).

### البطاقة ١١

**السؤال**

Ask a GNU command for its short built-in usage help.

**الإجابة**

Try `COMMAND --help`. GNU command-line programs conventionally use `--help` for a brief usage summary; not every non-GNU command follows this convention.

Source: [GNU coding standards: `--help`](https://www.gnu.org/prep/standards/html_node/_002d_002dhelp.html).

### البطاقة ١٢

**السؤال**

List the current directory's visible entries.

**الإجابة**

Use `ls`. By default, names beginning with `.` are omitted.

Source: [GNU Coreutils: `ls`](https://www.gnu.org/software/coreutils/manual/html_node/ls-invocation.html).

### البطاقة ١٣

**السؤال**

Create a new directory.

**الإجابة**

Use `mkdir DIRECTORY`. It creates the named directory when its parent already exists.

Source: [GNU Coreutils: `mkdir`](https://www.gnu.org/software/coreutils/manual/html_node/mkdir-invocation.html).

### البطاقة ١٤

**السؤال**

Read a long text file one screen at a time.

**الإجابة**

Use `less FILE`. It is a pager: move through the file interactively and press `q` to quit.

Source: [less: manual page](https://man7.org/linux/man-pages/man1/less.1.html).

### البطاقة ١٥

**السؤال**

Write standard output to a file, replacing its previous contents.

**الإجابة**

Use `COMMAND > FILE`. The shell opens the file for output and truncates an existing regular file before the command writes to it.

Source: [GNU Bash: redirecting output](https://www.gnu.org/software/bash/manual/bash.html#Redirecting-Output).

### البطاقة ١٦

**السؤال**

What do user, group, and other mean in a file mode?

**الإجابة**

They are three permission classes: the owning user, the owning group, and everyone else. Each class can have read, write, and execute bits.

Source: [GNU Coreutils: mode structure](https://www.gnu.org/software/coreutils/manual/html_node/Mode-Structure.html).

### البطاقة ١٧

**السؤال**

Show a broad, user-oriented snapshot of processes on a Linux system.

**الإجابة**

Use `ps aux`. The BSD-style `a` and `x` options broaden the selection, while `u` selects a user-oriented format.

Source: [procps-ng: `ps`](https://man7.org/linux/man-pages/man1/ps.1.html).

### البطاقة ١٨

**السؤال**

Extract an uncompressed tar archive into the current directory.

**الإجابة**

Use `tar -xf ARCHIVE.tar`. `-x` extracts and `-f` names the archive file. Review unfamiliar archive contents before extracting them.

Source: [GNU tar: extract](https://www.gnu.org/software/tar/manual/html_node/extract.html).

### البطاقة ١٩

**السؤال**

Copy a file to or from a remote machine over SSH.

**الإجابة**

Use `scp SOURCE USER@HOST:DESTINATION` for an upload, or reverse the remote and local paths for a download.

Source: [OpenSSH: `scp`](https://man.openbsd.org/scp).

### البطاقة ٢٠

**السؤال**

Print one environment variable by name.

**الإجابة**

Use `printenv NAME`, for example `printenv PATH`. It prints that variable's value and returns a nonzero status when the name is absent.

Source: [GNU Coreutils: `printenv`](https://www.gnu.org/software/coreutils/manual/html_node/printenv-invocation.html).

### البطاقة ٢١

**السؤال**

Check whether Bash will treat a name as an alias, function, builtin, or executable file.

**الإجابة**

Use `type NAME`. Bash reports how it would interpret the name.

Source: [GNU Bash: `type`](https://www.gnu.org/software/bash/manual/bash.html#Bash-Builtins).

### البطاقة ٢٢

**السؤال**

Include hidden entries in a directory listing.

**الإجابة**

Use `ls -a`. It includes names beginning with `.`, including `.` and `..`.

Source: [GNU Coreutils: general output formatting](https://www.gnu.org/software/coreutils/manual/html_node/General-output-formatting.html).

### البطاقة ٢٣

**السؤال**

Copy a file to another path.

**الإجابة**

Use `cp SOURCE DESTINATION`. If the destination names an existing file, `cp` can replace it, so add an interactive check when overwrites are uncertain.

Source: [GNU Coreutils: `cp`](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html).

### البطاقة ٢٤

**السؤال**

Show the first 10 lines of a text file.

**الإجابة**

Use `head FILE`. Its default output is the first 10 lines; use `-n NUMBER` to choose another count.

Source: [GNU Coreutils: `head`](https://www.gnu.org/software/coreutils/manual/html_node/head-invocation.html).

### البطاقة ٢٥

**السؤال**

Append standard output to a file without replacing its existing contents.

**الإجابة**

Use `COMMAND >> FILE`. The shell opens the file in append mode, creating it if needed.

Source: [GNU Bash: appending redirected output](https://www.gnu.org/software/bash/manual/bash.html#Appending-Redirected-Output).

### البطاقة ٢٦

**السؤال**

What do read, write, and execute mean on a regular file?

**الإجابة**

Read allows reading the contents, write allows modifying the contents, and execute allows the file to be run as a program when its format is executable.

Source: [GNU Coreutils: mode structure](https://www.gnu.org/software/coreutils/manual/html_node/Mode-Structure.html).

### البطاقة ٢٧

**السؤال**

Find process IDs by process name.

**الإجابة**

Use `pgrep PATTERN`. It searches currently running processes and prints matching process IDs.

Source: [procps-ng: `pgrep`](https://man7.org/linux/man-pages/man1/pgrep.1.html).

### البطاقة ٢٨

**السؤال**

Compress one file with gzip while keeping the original file.

**الإجابة**

Use `gzip -k FILE`. GNU gzip writes `FILE.gz` and `-k` keeps the input file.

Source: [GNU gzip manual](https://www.gnu.org/software/gzip/manual/gzip.html).

### البطاقة ٢٩

**السؤال**

Fetch only a URL's response headers with curl.

**الإجابة**

Use `curl -I URL`. It requests headers only; the server may respond differently than it would to a normal download.

Source: [curl: `--head`](https://curl.se/docs/manpage.html#-I).

### البطاقة ٣٠

**السؤال**

Make a shell variable available to commands started from this Bash session.

**الإجابة**

Use `export NAME=value`. Bash marks the name for inclusion in the environment of subsequently executed commands.

Source: [GNU Bash: `export`](https://www.gnu.org/software/bash/manual/bash.html#Bourne-Shell-Builtins).

### البطاقة ٣١

**السؤال**

Ask Bash which command it would run for a name.

**الإجابة**

Use `command -v NAME`. It reports the command, builtin, function, alias, or executable Bash would use, and returns a nonzero status when none is found.

Source: [GNU Bash: `command`](https://www.gnu.org/software/bash/manual/bash.html#Bourne-Shell-Builtins).

### البطاقة ٣٢

**السؤال**

Show a long directory listing with modes, owners, sizes, and timestamps.

**الإجابة**

Use `ls -l`. The long format adds file type and mode, link count, owner, group, size, timestamp, and name.

Source: [GNU Coreutils: long listing format](https://www.gnu.org/software/coreutils/manual/html_node/What-information-is-listed.html).

### البطاقة ٣٣

**السؤال**

Move or rename a file.

**الإجابة**

Use `mv SOURCE DESTINATION`. Within one filesystem this commonly renames the path; it can also move it to another directory.

Source: [GNU Coreutils: `mv`](https://www.gnu.org/software/coreutils/manual/html_node/mv-invocation.html).

### البطاقة ٣٤

**السؤال**

Show the last 10 lines of a text file.

**الإجابة**

Use `tail FILE`. Its default output is the last 10 lines; use `-n NUMBER` to choose another count.

Source: [GNU Coreutils: `tail`](https://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html).

### البطاقة ٣٥

**السؤال**

Give a command standard input from a file.

**الإجابة**

Use `COMMAND < FILE`. The shell opens the file for reading on the command's standard input.

Source: [GNU Bash: redirecting input](https://www.gnu.org/software/bash/manual/bash.html#Redirecting-Input).

### البطاقة ٣٦

**السؤال**

What do read, write, and execute mean on a directory?

**الإجابة**

Read permits listing names, write permits changing directory entries, and execute permits traversal and access to entries by name. Creating or removing entries normally needs both write and execute permission.

Source: [GNU Coreutils: mode structure](https://www.gnu.org/software/coreutils/manual/html_node/Mode-Structure.html).

### البطاقة ٣٧

**السؤال**

Watch a live, updating view of processes and resource use.

**الإجابة**

Use `top`. It refreshes a process and system summary interactively; press `q` to quit.

Source: [procps-ng: `top`](https://man7.org/linux/man-pages/man1/top.1.html).

### البطاقة ٣٨

**السؤال**

Show one path's total disk usage in a human-readable summary.

**الإجابة**

Use `du -sh PATH`. `-s` reports one total and `-h` formats sizes for people.

Source: [GNU Coreutils: `du`](https://www.gnu.org/software/coreutils/manual/html_node/du-invocation.html).

### البطاقة ٣٩

**السؤال**

Download a URL using its remote file name.

**الإجابة**

Use `curl -O URL`. curl saves the response under the file-name part of the URL; check the target directory before downloading.

Source: [curl: `--remote-name`](https://curl.se/docs/manpage.html#-O).

### البطاقة ٤٠

**السؤال**

Search Bash command history interactively.

**الإجابة**

Press `Ctrl-R` and type part of the command. Bash Readline performs a reverse incremental search through history.

Source: [GNU Bash: reverse search](https://www.gnu.org/software/bash/manual/bash.html#Commands-For-History).

### البطاقة ٤١

**السؤال**

Search manual-page names and summaries by keyword.

**الإجابة**

Use `man -k KEYWORD`. It searches the manual-page database's short descriptions, like `apropos KEYWORD`.

Source: [man-pages: `man`](https://man7.org/linux/man-pages/man1/man.1.html).

### البطاقة ٤٢

**السؤال**

Show a long listing with human-readable file sizes.

**الإجابة**

Use `ls -lh`. `-l` selects long format and `-h` uses human-readable size units.

Source: [GNU Coreutils: block size](https://www.gnu.org/software/coreutils/manual/html_node/Block-size.html).

### البطاقة ٤٣

**السؤال**

Ask before `cp` overwrites an existing destination file.

**الإجابة**

Use `cp -i SOURCE DESTINATION`. `-i` prompts before replacing an existing destination.

Source: [GNU Coreutils: `cp`](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html).

### البطاقة ٤٤

**السؤال**

Keep watching new lines appended to a log file.

**الإجابة**

Use `tail -f FILE`. `-f` keeps the command running and prints data as the file grows; stop it with `Ctrl-C`.

Source: [GNU Coreutils: `tail`](https://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html).

### البطاقة ٤٥

**السؤال**

Write only a command's error stream to a file.

**الإجابة**

Use `COMMAND 2> ERRORS.log`. File descriptor `2` is standard error, so standard output stays unchanged.

Source: [GNU Bash: redirections](https://www.gnu.org/software/bash/manual/bash.html#Redirections).

### البطاقة ٤٦

**السؤال**

Give the file owner execute permission without changing the other mode bits.

**الإجابة**

Use `chmod u+x FILE`. In symbolic mode, `u` means owner, `+` adds a bit, and `x` means execute.

Source: [GNU Coreutils: symbolic modes](https://www.gnu.org/software/coreutils/manual/html_node/Symbolic-Modes.html).

### البطاقة ٤٧

**السؤال**

Ask a process to terminate gracefully by PID.

**الإجابة**

Use `kill PID`. By default, `kill` sends `SIGTERM`, which gives the process a chance to handle the signal and clean up.

Source: [Linux man-pages: `kill`](https://man7.org/linux/man-pages/man1/kill.1.html).

### البطاقة ٤٨

**السؤال**

Show free and used space for mounted filesystems in readable units.

**الإجابة**

Use `df -h`. It reports filesystem space and formats sizes in powers of 1024 for easier reading.

Source: [GNU Coreutils: `df`](https://www.gnu.org/software/coreutils/manual/html_node/df-invocation.html).

### البطاقة ٤٩

**السؤال**

Check whether a host responds to ICMP echo requests.

**الإجابة**

Use `ping HOST`. It sends ICMP echo requests and reports replies and packet statistics; a blocked reply does not prove the host is down.

Source: [iputils: `ping`](https://man7.org/linux/man-pages/man8/ping.8.html).

### البطاقة ٥٠

**السؤال**

Create a short Bash name for a longer command.

**الإجابة**

Use `alias NAME='COMMAND'`, for example `alias ll='ls -lah'`. The alias lasts for the current shell unless you add it to shell startup configuration.

Source: [GNU Bash: aliases](https://www.gnu.org/software/bash/manual/bash.html#Aliases).

### البطاقة ٥١

**السؤال**

Interrupt the foreground command from the terminal.

**الإجابة**

Press `Ctrl-C`. The terminal normally sends `SIGINT` to the foreground process group.

Source: [GNU Bash: signals](https://www.gnu.org/software/bash/manual/bash.html#Signals).

### البطاقة ٥٢

**السؤال**

Change to another directory.

**الإجابة**

Use `cd PATH`. `cd` is a shell builtin because it changes the shell's own working directory.

Source: [GNU Bash: `cd`](https://www.gnu.org/software/bash/manual/bash.html#Bourne-Shell-Builtins).

### البطاقة ٥٣

**السؤال**

Ask before `mv` overwrites an existing destination file.

**الإجابة**

Use `mv -i SOURCE DESTINATION`. `-i` prompts before replacing an existing destination.

Source: [GNU Coreutils: `mv`](https://www.gnu.org/software/coreutils/manual/html_node/mv-invocation.html).

### البطاقة ٥٤

**السؤال**

Count the lines in a text file.

**الإجابة**

Use `wc -l FILE`. `-l` prints the newline count.

Source: [GNU Coreutils: `wc`](https://www.gnu.org/software/coreutils/manual/html_node/wc-invocation.html).

### البطاقة ٥٥

**السؤال**

Send standard output and standard error to the same file.

**الإجابة**

Use `COMMAND > OUTPUT.log 2>&1`. The order matters: standard error is redirected to the destination that standard output has at that point.

Source: [GNU Bash: duplicating file descriptors](https://www.gnu.org/software/bash/manual/bash.html#Duplicating-File-Descriptors).

### البطاقة ٥٦

**السؤال**

How do octal digits encode read, write, and execute permissions?

**الإجابة**

Use `4` for read, `2` for write, and `1` for execute, then add the values for each of user, group, and other. For example, `6` means read plus write.

Source: [GNU Coreutils: numeric modes](https://www.gnu.org/software/coreutils/manual/html_node/Numeric-Modes.html).

### البطاقة ٥٧

**السؤال**

Force a process to stop only after graceful termination has failed.

**الإجابة**

Use `kill -KILL PID` as a last resort. `SIGKILL` cannot be caught or ignored, so the process cannot run its normal cleanup.

Source: [Linux man-pages: signal](https://man7.org/linux/man-pages/man7/signal.7.html).

### البطاقة ٥٨

**السؤال**

List block devices in a tree without changing them.

**الإجابة**

Use `lsblk`. It reads device and filesystem information and prints a tree by default.

Source: [util-linux: `lsblk`](https://man7.org/linux/man-pages/man8/lsblk.8.html).

### البطاقة ٥٩

**السؤال**

Clear the display, or recover a terminal whose state is corrupted.

**الإجابة**

Use `clear` for a normal screen clear. Use `reset` when the terminal's modes are garbled and need reinitialization.

Source: [ncurses: `clear` and `reset`](https://invisible-island.net/ncurses/man/clear.1.html).

### البطاقة ٦٠

**السؤال**

Move to the parent directory.

**الإجابة**

Use `cd ..`. In a path, `..` names the parent directory.

Source: [POSIX: pathname resolution](https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html#tag_04_16).

### البطاقة ٦١

**السؤال**

Remove one file without recursive deletion.

**الإجابة**

Use `rm FILE`. It removes the named directory entry; this is not a trash operation, so verify the path first.

Source: [GNU Coreutils: `rm`](https://www.gnu.org/software/coreutils/manual/html_node/rm-invocation.html).

### البطاقة ٦٢

**السؤال**

Print lines in a file that contain a pattern.

**الإجابة**

Use `grep 'PATTERN' FILE`. grep prints matching lines; quote the pattern so the shell does not reinterpret special characters.

Source: [GNU Grep manual](https://www.gnu.org/software/grep/manual/grep.html).

### البطاقة ٦٣

**السؤال**

Discard a command's standard output.

**الإجابة**

Use `COMMAND > /dev/null`. `/dev/null` discards bytes written to it; standard error is still visible unless redirected separately.

Source: [Linux man-pages: `null`](https://man7.org/linux/man-pages/man4/null.4.html).

### البطاقة ٦٤

**السؤال**

Change a file's owning user.

**الإجابة**

Use `chown USER FILE`. Changing ownership is permission-sensitive and commonly requires elevated privileges.

Source: [GNU Coreutils: `chown`](https://www.gnu.org/software/coreutils/manual/html_node/chown-invocation.html).

### البطاقة ٦٥

**السؤال**

List the jobs managed by the current Bash session.

**الإجابة**

Use `jobs`. It lists the shell's active jobs and their states.

Source: [GNU Bash: job-control builtins](https://www.gnu.org/software/bash/manual/bash.html#Job-Control-Builtins).

### البطاقة ٦٦

**السؤال**

Show kernel and system identity details in one line.

**الإجابة**

Use `uname -a`. It prints all available `uname` fields, including the kernel name and release, machine, and other supported details.

Source: [GNU Coreutils: `uname`](https://www.gnu.org/software/coreutils/manual/html_node/uname-invocation.html).

### البطاقة ٦٧

**السؤال**

Check the previous foreground pipeline's exit status in Bash.

**الإجابة**

Read `$?` immediately after the command. Bash sets it to the most recently completed foreground pipeline's status; `0` conventionally means success.

Sources: [GNU Bash: special parameters](https://www.gnu.org/software/bash/manual/bash.html#Special-Parameters); [GNU Bash: exit status](https://www.gnu.org/software/bash/manual/bash.html#Exit-Status).

### البطاقة ٦٨

**السؤال**

Return to the previous working directory.

**الإجابة**

Use `cd -`. Bash changes to `$OLDPWD` and prints the resulting directory.

Source: [GNU Bash: `cd`](https://www.gnu.org/software/bash/manual/bash.html#Bourne-Shell-Builtins).

### البطاقة ٦٩

**السؤال**

Ask before removing a file.

**الإجابة**

Use `rm -i FILE`. `-i` prompts before each removal.

Source: [GNU Coreutils: `rm`](https://www.gnu.org/software/coreutils/manual/html_node/rm-invocation.html).

### البطاقة ٧٠

**السؤال**

Search a file for a pattern without case distinctions.

**الإجابة**

Use `grep -i 'PATTERN' FILE`. `-i` ignores case distinctions while matching.

Source: [GNU Grep: matching control](https://www.gnu.org/software/grep/manual/grep.html#Matching-Control).

### البطاقة ٧١

**السؤال**

Show command output on screen and save a copy to a file.

**الإجابة**

Use `COMMAND | tee FILE`. `tee` copies standard input to standard output and to the named file.

Source: [GNU Coreutils: `tee`](https://www.gnu.org/software/coreutils/manual/html_node/tee-invocation.html).

### البطاقة ٧٢

**السؤال**

Change a file's owning group.

**الإجابة**

Use `chgrp GROUP FILE`. The operation is limited by your ownership, group membership, and system privileges.

Source: [GNU Coreutils: `chgrp`](https://www.gnu.org/software/coreutils/manual/html_node/chgrp-invocation.html).

### البطاقة ٧٣

**السؤال**

Suspend the foreground job, then continue it in the background.

**الإجابة**

Press `Ctrl-Z`, then run `bg`. The terminal normally stops the foreground job, and Bash resumes that job asynchronously.

Source: [GNU Bash: job control basics](https://www.gnu.org/software/bash/manual/bash.html#Job-Control-Basics).

### البطاقة ٧٤

**السؤال**

Show available and used memory in human-readable units.

**الإجابة**

Use `free -h`. It reads memory counters exposed by the kernel and formats the values for people.

Source: [procps-ng: `free`](https://man7.org/linux/man-pages/man1/free.1.html).

### البطاقة ٧٥

**السؤال**

Change to your home directory.

**الإجابة**

Use `cd ~` or simply `cd` in Bash. Tilde expansion turns `~` into your home directory path, and `cd` with no argument uses `$HOME`.

Sources: [GNU Bash: tilde expansion](https://www.gnu.org/software/bash/manual/bash.html#Tilde-Expansion); [GNU Bash: `cd`](https://www.gnu.org/software/bash/manual/bash.html#Bourne-Shell-Builtins).

### البطاقة ٧٦

**السؤال**

Sort text lines using the current locale's default ordering.

**الإجابة**

Use `sort FILE`. It writes the sorted lines to standard output and does not change the input file unless you explicitly request an output file.

Source: [GNU Coreutils: `sort`](https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html).

### البطاقة ٧٧

**السؤال**

Create a nested directory path whose parents may not exist.

**الإجابة**

Use `mkdir -p PARENT/CHILD`. `-p` creates missing parent directories and does not fail merely because a named directory already exists.

Source: [GNU Coreutils: `mkdir`](https://www.gnu.org/software/coreutils/manual/html_node/mkdir-invocation.html).

### البطاقة ٧٨

**السؤال**

Run a second command only if the first command succeeds.

**الإجابة**

Use `COMMAND1 && COMMAND2`. Bash runs the right-hand command only when the left-hand command returns status `0`.

Source: [GNU Bash: AND and OR lists](https://www.gnu.org/software/bash/manual/bash.html#Lists).

### البطاقة ٧٩

**السؤال**

Print matching lines with their line numbers.

**الإجابة**

Use `grep -n 'PATTERN' FILE`. `-n` prefixes each matching line with its one-based line number.

Source: [GNU Grep: output line prefix control](https://www.gnu.org/software/grep/manual/grep.html#Output-Line-Prefix-Control).

### البطاقة ٨٠

**السؤال**

Set a regular file so the owner can read and write it while everyone else can only read it.

**الإجابة**

Use `chmod 644 FILE`. The digits mean owner `rw-`, group `r--`, and other `r--`.

Source: [GNU Coreutils: numeric modes](https://www.gnu.org/software/coreutils/manual/html_node/Numeric-Modes.html).

### البطاقة ٨١

**السؤال**

Translate characters in a text stream.

**الإجابة**

Use `tr SET1 SET2`, reading from standard input. For example, `tr '[:lower:]' '[:upper:]'` maps lowercase characters to uppercase according to the locale.

Source: [GNU Coreutils: `tr`](https://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html).

### البطاقة ٨٢

**السؤال**

Bring a Bash job back to the foreground.

**الإجابة**

Use `fg %JOB`, or `fg` for the current job. Bash resumes the selected job in the foreground.

Source: [GNU Bash: job-control builtins](https://www.gnu.org/software/bash/manual/bash.html#Job-Control-Builtins).

### البطاقة ٨٣

**السؤال**

How does an absolute path differ from a relative path?

**الإجابة**

An absolute path starts with `/` and is resolved from the filesystem root. A relative path is resolved from the current working directory.

Source: [POSIX: pathname resolution](https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html#tag_04_16).

### البطاقة ٨٤

**السؤال**

Find paths below the current directory whose base name matches `*.log`.

**الإجابة**

Use `find . -name '*.log'`. Quote the pattern so `find`, not the shell, performs the name match.

Source: [GNU Findutils: name test](https://www.gnu.org/software/findutils/manual/html_mono/find.html#Base-Name-Patterns).

### البطاقة ٨٥

**السؤال**

Remove an empty directory.

**الإجابة**

Use `rmdir DIRECTORY`. It removes directories only when they are empty, which makes it safer than a recursive removal for this task.

Source: [GNU Coreutils: `rmdir`](https://www.gnu.org/software/coreutils/manual/html_node/rmdir-invocation.html).

### البطاقة ٨٦

**السؤال**

Run a fallback command only if the first command fails.

**الإجابة**

Use `COMMAND1 || COMMAND2`. Bash runs the right-hand command only when the left-hand command returns a nonzero status.

Source: [GNU Bash: AND and OR lists](https://www.gnu.org/software/bash/manual/bash.html#Lists).

### البطاقة ٨٧

**السؤال**

Sort lines by their leading numeric value rather than lexically.

**الإجابة**

Use `sort -n FILE`. Numeric sort orders lines by numeric key value instead of lexicographic text order.

Source: [GNU Coreutils: `sort`](https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html).

### البطاقة ٨٨

**السؤال**

Set a directory so the owner can modify it while everyone can list and traverse it.

**الإجابة**

Use `chmod 755 DIRECTORY`. The digits mean owner `rwx`, group `r-x`, and other `r-x`.

Source: [GNU Coreutils: numeric modes](https://www.gnu.org/software/coreutils/manual/html_node/Numeric-Modes.html).

### البطاقة ٨٩

**السؤال**

Print one delimited field from each input line.

**الإجابة**

Use `cut -d CHARACTER -f FIELD FILE`. For example, `cut -d: -f1 FILE` prints the first colon-delimited field.

Source: [GNU Coreutils: `cut`](https://www.gnu.org/software/coreutils/manual/html_node/cut-invocation.html).

### البطاقة ٩٠

**السؤال**

Start a command as an asynchronous Bash job.

**الإجابة**

Add `&`: `COMMAND &`. Bash starts the command in the background and returns to the prompt without waiting for it to finish.

Source: [GNU Bash: asynchronous lists](https://www.gnu.org/software/bash/manual/bash.html#Lists).

### البطاقة ٩١

**السؤال**

What does `./tool` say about where Bash should find `tool`?

**الإجابة**

It names `tool` in the current directory. The `./` is an explicit relative path, so Bash does not need to search `$PATH`.

Sources: [POSIX: pathname resolution](https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html#tag_04_16); [GNU Bash: command search](https://www.gnu.org/software/bash/manual/bash.html#Command-Search-and-Execution).

### البطاقة ٩٢

**السؤال**

Search recursively through files under a directory for matching lines.

**الإجابة**

Use `grep -r 'PATTERN' DIRECTORY`. `-r` reads files under each directory recursively and prints matching lines.

Source: [GNU Grep: file and directory selection](https://www.gnu.org/software/grep/manual/grep.html#File-and-Directory-Selection).

### البطاقة ٩٣

**السؤال**

Create a second hard-link name for an existing file.

**الإجابة**

Use `ln TARGET NEW_NAME`. Both names refer to the same underlying file; hard links normally cannot cross filesystems or target directories.

Source: [GNU Coreutils: hard links](https://www.gnu.org/software/coreutils/manual/html_node/Hard-links.html).

### البطاقة ٩٤

**السؤال**

Keep only one line from each adjacent run of duplicate lines.

**الإجابة**

Use `uniq`. It compares adjacent lines, so sort the input first when equal lines may be separated.

Source: [GNU Coreutils: `uniq`](https://www.gnu.org/software/coreutils/manual/html_node/uniq-invocation.html).

### البطاقة ٩٥

**السؤال**

Keep every character literal in a Bash argument, including `$` and spaces.

**الإجابة**

Wrap the text in single quotes: `'literal $HOME text'`. Single quotes preserve each enclosed character literally; a single quote itself cannot appear directly inside that pair.

Source: [GNU Bash: single quotes](https://www.gnu.org/software/bash/manual/bash.html#Single-Quotes).

### البطاقة ٩٦

**السؤال**

What does a path beginning with `/` mean?

**الإجابة**

It is an absolute path resolved from the filesystem root directory, not from the current directory.

Source: [POSIX: pathname resolution](https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html#tag_04_16).

### البطاقة ٩٧

**السؤال**

Find only regular files below the current directory.

**الإجابة**

Use `find . -type f`. The `f` type test matches regular files.

Source: [GNU Findutils: type test](https://www.gnu.org/software/findutils/manual/html_mono/find.html#Type).

### البطاقة ٩٨

**السؤال**

Create a symbolic link that points to another path.

**الإجابة**

Use `ln -s TARGET LINK_NAME`. A symbolic link stores a pathname; it can cross filesystems and can become dangling if the target path disappears.

Source: [GNU Coreutils: symbolic links](https://www.gnu.org/software/coreutils/manual/html_node/Symbolic-links.html).

### البطاقة ٩٩

**السؤال**

Allow variable expansion but keep spaces inside one Bash argument.

**الإجابة**

Use double quotes, for example `"$HOME/My Files"`. Double quotes preserve the argument while still allowing parameter expansion and command substitution.

Source: [GNU Bash: double quotes](https://www.gnu.org/software/bash/manual/bash.html#Double-Quotes).

### البطاقة ١٠٠

**السؤال**

Show how two text files differ.

**الإجابة**

Use `diff FILE1 FILE2`. It reports the changes needed to make the files match; a status of `0` means no differences, `1` means differences, and values above `1` mean trouble.

Source: [GNU Diffutils: `diff`](https://www.gnu.org/software/diffutils/manual/html_node/Invoking-diff.html).

---
*[عرض النسخة المنسقة HTML من هذه الصفحة](<https://nibomo.com/ar/catalog/packages/linux-command-line-flashcards/>)*

*يمكن لوكلاء الذكاء الاصطناعي إنشاء حساب للمستخدم في هذه الخدمة بدءًا من `GET https://api.nibomo.com/v1/`. وبعد الإعداد، يمكنهم أيضًا الاتصال عبر MCP على `https://mcp.nibomo.com/mcp`.*

*نصيحة: أضف `.md` إلى أي رابط على https://nibomo.com للحصول على نسخة Markdown نظيفة من الصفحة.*