• The Picard ManeuverOP
    link
    fedilink
    English
    311 months ago

    I’d welcome any beginner tips you have!

    I have Linux installed on a raspberry pi, using “Pi OS”, which I understand to be some form of Debian? I’ve learned enough to comfortably SSH into it and navigate around my file system, as well as write some really basic Python programs for the pi using nano.

    I’ve only been at it casually for a few weeks, so that’s about the extent of my knowledge.

    • Alex
      link
      fedilink
      English
      211 months ago

      Yup, Pi OS is Debian with a few custom configs and (I think) the pixel desktop environment (though they might have changed it to Wayfire).

      Btw, in Linux, everything is a file. Some are in /sys and /proc for the kernel, others in /dev for devices. So you can do neat stuff like changing your backlight by printing a number to a special file!

      Also, commands have 3 streams: stdin (standard input, usually keyboard), stdout (standard output, usually terminal), and stderr (standard error, output, almost always terminal). You can often pipe programs, so one’s stdout goes to another’s stdin. Stderr is used for human-readable errors and is usually not piped.

      Combining the last 2 things, if you pipe a program into /dev/null (which is like an infinite void or a trashcan), it’s like ignoring its output.

      • The Picard ManeuverOP
        link
        fedilink
        English
        311 months ago

        Btw, in Linux, everything is a file.

        This sounds cool. Do I also understand right that file extensions aren’t anything more than the file name?

        I can also conceptually appreciate the input/output/error piece, although I bet it’ll make more sense when I find a use case for it eventually. Thanks!

        • Alex
          link
          fedilink
          English
          311 months ago

          Do I also understand right that file extensions aren’t anything more than the file name?

          For the kernel, yeah. A lot of apps use them, though, but mostly for determining whet kind of text plain text files are.

          But files have some “mode bits” at the start, hwich tell the kernel if they’re executable, and whether they should always have root (admin) perms.

          Speaking of root, that’s the user with full perms. Root can access any file on the system, and can basically do anything. Root is also known as the superuser. When you use sudo, you run the program as root (it stands for “Super User DO”).

          Thanks!

          You’re very welcome!

          • @[email protected]
            link
            fedilink
            English
            2
            edit-2
            11 months ago

            and whether they should always have root (admin) perms.

            Not quite! The setuid bit means the file will be run as its owner, not necessarily as root. The most common use for this (which is used by sudo) is to have the file owned by root and executable by everyone, so that when anyone runs it it will run as root, but you can also use it to have a program always run as any user (thus limiting what it’s allowed to do). There’s also a setgid bit so it will be run as its owning group, which is less frequently used. Fun fact!