首页 > 系统相关 >How to use the shell, terminal and the advanced tools

How to use the shell, terminal and the advanced tools

时间:2024-09-19 23:50:02浏览次数:8  
标签:paths use shell terminal semester program file directory

How to use the shell, terminal and the advanced tools

Introduction

Why use English instead of Chinese when writing a blog? As time goes by, the more I have learned, the more I have to handle with the English documents or papers. So, I realized it was time for me to adapt to the full English environment to improve my ability.

Though it's not easy for me to write a blog in English, as my mother tongue isn't English, I still write this blog as the first step to determine that I will make full use of my energy to do so.

Just start it from "The Missing Semester of Your CS Education".


Catalog

目录


Permissions

User

  • root
    can do anything
  • #​ : a root(shell)
  • $​ : not a root(shell)
  • sudo​ : run command as a root
  • sudo su​ : switch as a root user


Files and Directories

  • ls -l​ : gives the additional information

    • ----------​ : 1+3+3+3

    • d---------​ : directory

      • ---------​ : permissions

        • 1-3 ---​ : set for the owner of the file

        • 4-6 ---​ : set for the group of the file

        • 7-9 ---​ : set for the others of the file

        • ---​ : read( r​ ), write( w​ ), execute( x​ )

          • File: allowed to read, write, and execute this file

          • directory :

            • read: allowed to see which files are inside this directory
            • write: allowed to rename, create, or remove files within that directory
            • execute: allowed to enter this directory
          • -​ : do not have that permission

        • How about 7​ ?

          • ---​ can be present by using the three bits binary digit

          • 7​ = 111​ : rwx

            • 1​ : set the permission
            • 0​ : not set the permission


Command

  • date​ : show the time

  • echo​ : display the given arguments that are separated by whitespace

    • If the arguments consist of multiple words

      Use the ""​ or '​ to quote it.

    • You can use \​ to escape single characters

  • which​ : allows us to know the path of the program that we want to run

  • tee​ : write the contents of input to a file and to the standard out

  • mv​ : change the location or name of the file

  • rm​ : remove a file

    • rm -r​ : remove a directory and all the files within it
  • rmdir​ : remove the empty directory

  • mkdir​ : create a new directory

  • man​ : for manual pages of the program

  • cat​ : cat <​ files >​ standard output

  • cd​ : change the current working directory

    • ~​ : home directory
    • -​ : previous directory
  • tail​ : Print the last 10 lines of each FILE to standard output

  • pwd​ : Print the name of the current working directory.

  • find

  • xdg-open

  • We can give a path to ls​ by offering arguments(flags | options)

    • flags and options usually start with a -

    • --help​ can print out a bunch of information about that command

      • Usage

        • ...​ : means zero or one or more options
        • []​ : means optional
      • Funtion description

        • flag: -​ + single letter

          • No value content also is a flag
        • option: anything that does take a value

In reality, we don't need to memorize them all, because we can query the usage of the command by adding the --help​ or use the man​ for more information about it.


stream

  • Every program by default has two primary streams

    • Input stream : keyboard(default)

    • output stream : terminal(default)

    • rewire these streams

      • <​ : rewire the input for this program to be the contents of this file
      • >​ : rewire the output for this program to be the contents of this file
    • >>​ : append the content but not overwrite the original one.

  • |​ : left program output right program input


Path

When we simply type the echo hello​ or date​, it will work and print the result on the terminal, but how can our shell locate them? The answer is: by paths.

Our shell can locate the program through the environment variable. Paths are a way to name the location of a file on your computer.

  • Environment variable: a variable

    Things that are set whenever you start your shell

  • Example: echo $PATH

    It shows you all of the paths on my machine that the shell will search for programs

  • What is paths?

    • Linux/macOS: /​ separate the paths
    • Windows: \​ separate the paths
    • Absolute paths: fully determine the location of a file
    • Relative paths: relative to where you currently are
    • Command pwd​ can show the present working directory
  • Working directory
    All the relative paths are relative to the current working directory

    • Configure the terminal can show the full path
    • .​ : the current directory
    • ..​ : the parent directory


Run program

  • Methods for running the program anyway

    • method1: give the name of the program and let the shell figure out where it is as if you have added the absolute paths to the $PATH
    • method2: give the absolute paths of the program
  • Program always works on the current working directory(without any other arguments)

  • Command ls​ can list all the files in the current directory

  • In fact, you can regard the shell and the Bash(Bourne Again Shell) as a kind of programing language

    • You can run a program with arguments
    • You can do things like while loops, for loops, conditionals, functions and variables
  • ctrl+L​ : clear the terminal and go back to the top


Exercises

  1. Already on Linux

  2. mkdir missing && cd missing

  3. man touch

  4. touch semester

  5. echo '#!/bin/sh' > semester && echo 'curl --head --silent https://missing.csail.mit.edu' >> semester

  6. ./semester

    ls -l

    -rw-rw-r--​ : no permission to execute the file

  7. sh semester

    #​(root) run the /bin/sh

    $​ run the ./semester

  8. man chmod

  9. chmod u+x semester

    ./semester

  10. ./semester | grep 'last-modified' > ~/last-modified.txt

  11. cat /sys/class/power_supply/BAT0/capacity_level


References


标签:paths,use,shell,terminal,semester,program,file,directory
From: https://www.cnblogs.com/riskmoumou/p/18421574/how-to-use-the-shell-terminal-and-the-advanc

相关文章