Linux学习笔记

Linux 内核本身并不包含编译器,但通常与 GCC 结合使用。GCC 负责将 Linux 内核和其他用户空间程序编译为可执行文件,从而使得 Linux 系统能够在各种计算机平台上运行

命令行大全:https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md

 

 

环境变量

当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。让系统记住你想要经常操作的东西,你一报名字它就知道该干什么了,这样一来,你不需要再关心文件路径的问题了

 

Shell :

是一种计算机程序,它为用户提供了一个与操作系统交互的界面。在 Unix 和类 Unix 操作系统(如 Linux)中,Shell 是一个命令行界面(CLI),允许用户输入命令并直接与操作系统的内核进行通信。

 

  • Bash(Bourne Again SHell)是一种Unix shell,也就是一种命令行解释器
  • zsh 是目前mac默认的命令行解释器

 

zsh也能配置的花里胡哨lol

PS: zshrc 是 zsh(Z Shell)的配置文件,位于用户的主目录下,文件名为 .zshrc

        更改配置信息: vim ~/.zshrc     source ~/.zshrc

常用指令:

pwd:  print working direction 打印工作路径

 

cd:   change direction 

  • cd / 根目录
  • cd~用户目录
  • cd .. 上一层切换
  • .表示当前目录 .. 表示上一层目录

ls:   list files

ls -l 列出详细的文件资料,-h 或 --help 标记

 

man ls :调出该函数的用户手册

 

read write execute:

 

首先,本行第一个字符 d 表示 missing 是一个目录。然后接下来的九个字符,每三个字符构成一组。 (rwx). 它们分别代表了文件所有者(missing),用户组(users) 以及其他所有人具有的权限。其中 - 表示该用户不具备相应的权限。

 

 

r 代表可读(read):可以读取,查看 用数字4表示
w 代表可写(write):可以修改,但是不代表可以删除该文件(删除一个文件的前提条件是对该文件所在的自录有写权限,才能删除该文件) 用数字2表示
x 代表可执行(execute):可以被执行 用数字1表示

权限范围:

  • u :目录或者文件的当前的用户

  • g :目录或者文件的当前的群组

  • o :除了目录或者文件的当前用户或群组之外的用户或者群组

  • a :所有的用户及群组

 

chmod +-= 改变权限

 

mv 移动文件

移动:mv car.ini /opt/games/gta6/model (绝对路径)

重命名: mv config config4gta6 (目录)

  • -i:覆盖目标文件前询问用户是否确认。

  • -f:强制执行移动或重命名操作,当发生覆盖时是不进行确认提示,就不会询问是否覆盖,简而言之,强制覆盖。

  • -u:当源文件比目标文件的创建时间更加新时,才执行覆盖操作

mv可以移动文件,也可以用作更改文件名。

 

cp 复制文件

boat.ini /opt/games/gta6/model/objs/boat2.ini

 

rm 删除

rm ../food.txt rmdir 当文件夹是空的 mkdir 新建文件夹

ctrl+l: clears the screen

 

Input & Output

touch 创建不包含任何内容的文件

重定向输入输出 echo hello > hello.txt (>> hello.txt 则为append)

如果文件不存在,echo会自动创建文件

 

一次显示整个文件:

cat hello.txt

echo 输出文本字符串或变量值,而 cat 输出文件内容

cat ~/.ssh/id_rsa.pub   # 查看公钥
cat ~/.ssh/id_rsa       # 查看私钥

 

从键盘创建一个文件:

cat > filename

只能创建新文件,不能编辑已有文件

 

 

Find命令

# 查找所有名称为src的文件夹
find . -name src -type d
# 查找所有文件夹路径中包含test的python文件
find . -path '*/test/*.py' -type f
# 查找前一天修改的所有文件
find . -mtime -1
# 查找所有大小在500k至10M的tar.gz文件
find . -size +500k -size -10M -name '*.tar.gz'

 

grep命令

-C 获取查找结果的上下文(Context)grep -C 5 会输出匹配结果前后五行;

-v 将对结果进行反选(Invert),也就是输出不匹配的结果

-i 不分大小写搜索

-n 匹配行号

当需要搜索大量文件的时候,使用 -R 会递归地进入子目录并搜索所有的文本文件。

 

 

管道pipes

| 左边的输出为右边的输入

 

 

Ex: curl –head –silent google.com | grep –ignore-case content-length | cut –delimiter=’ ‘ -f2

 

使用 >< 来重定向输出和输入,学会使用 | 来重定向管道。明白 > 会覆盖了输出文件而 >> 是在文件末添加。了解标准输出 stdout 和标准错误 stderr

 

Linux系统结构

 

 

  • /bin: bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev : dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /etc: etc 是 Etcetera(等等) 的缩写or (Editable text config 可编辑文件配置),这个目录用来存放所有的系统管理所需要的配置文件和子目录。 conf结尾,可用vim编辑

  • /home: 用户的主目录~,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。要root登入才能编辑

  • /lib: lib 是 Library(库) 的缩写,存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /opt: opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。

  • /usr: usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录

  • /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

bash配置文件:

  1. /etc/bash.bashrc:

    • 这是一个全局的bash配置文件。

    • 它被安装在系统上,并且对所有用户有效。

    • 这个文件通常由系统管理员管理,包含适用于所有用户的bash shell设置和函数。

    • 系统级的程序和脚本可能会在这里添加配置,以确保所有用户在使用bash时都有一致的体验。

    • 改动这个文件会影响到所有用户的bash环境。

  2. ~/.bashrc:

    • 这是一个用户的bash配置文件,位于用户的主目录下。

    • 它仅对创建该文件的用户有效。

    • 用户可以在这个文件中添加个性化的bash设置、别名、函数和环境变量等。

    • 用户级的程序和脚本可能会在这里添加配置,以确保只有运行它们的用户受到影响。

    • 改动这个文件只会影响到修改它的用户。

简而言之,/etc/bash.bashrc 是一个全局配置文件,影响所有用户,而 ~/.bashrc 是一个用户特定的配置文件,只影响创建该文件的用户。在大多数情况下,为了不影响其他用户或系统程序,建议在 ~/.bashrc 中添加个人配置。

下载插件:

Wget

语法:wget [options] [URL]

-0: 指定下载的文件名。 -c: 断点续传,即从上次下载中断的地方继续下载。 -b: 后台下载。 -P: 下载到指定目录 wget -P /data/ [URL] -r: 递归下载,即下载指定URL中所有链接指向的文件。 -nd: 不创建目录结构。 -nc: 不覆盖已存在的文件,即遇到同名文件不进行下载。 -S: 显示服务器返回的HTTP头信息。

 

 

Brew

Homebrew 是一套 Mac 的軟體套件管理工具,目的是簡化 Mac OS X 系統上的軟體安裝過程。透過 Homebrew,在 Mac 上可以對應用程式做統一控管,以及利用指令做到批量管理或安裝,減少繁複費時的手動操作,節省時間去做更有生命意義的事情。

 

  • brew install brew outdated

  • brew info brew upgrade

  • brew cleanup -n 查看哪些软件包要被清除

诸如 Nginx、MySQL 等软件,都是有一些服务端软件在后台运行,如果你希望对这些软件进行管理,可以使用 brew services 命令来进行管理

  • brew services list: 查看所有服务

  • brew services run [服务名]: 单次运行某个服务

  • brew services start [服务名]: 运行某个服务,并设置开机自动运行

  • brew services stop [服务名]:停止某个服务

  • brew services restart:重启某个服务

ranger

yp复制当前文件路径 yn文件名

cw 重命名文件

w 打开任务管理器

Crtl +h 查看隐藏文件

dd 剪切 dD 删除 pp 粘贴 yy复制

大多数跟vim语法一样

 

neofetch

Resolution 显示器分辨率
DE 已安装的桌面环境
WM 正在使用的窗口管理器类型
WM Theme 窗口管理器主题
Theme 已安装的用户界面主题
Icons 已安装的图标包
Terminal 正在使用的默认终端

 

Autojump

j [file name]     Go to direction

jo folderName     open folder

Leon

View Comments

Recent Posts

DFR+Vue+Mysql 移动端网购平台

本次项目为期末一个星期速成之作…

4 月 ago

日本游记(下)-时尚东京

东京相对于大板而言就是超级大都…

4 月 ago

日本游记(上)-漫游关西

上帝说再不出去玩就没有机会了,…

4 月 ago

F1 观赛杂记

从K看台到发车格,他走了20年…

4 月 ago

小米历史最佳季报分析

本篇随笔为小米24年Q2财报关…

4 月 ago

项目开发-VPS部署

本篇文章是关于部署云端服务的心…

9 月 ago