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默认的命令行解释器
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配置文件:
-
/etc/bash.bashrc
:-
这是一个全局的bash配置文件。
-
它被安装在系统上,并且对所有用户有效。
-
这个文件通常由系统管理员管理,包含适用于所有用户的bash shell设置和函数。
-
系统级的程序和脚本可能会在这里添加配置,以确保所有用户在使用bash时都有一致的体验。
-
改动这个文件会影响到所有用户的bash环境。
-
-
~/.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
文章很有用,博主加油
thanks阿里嘎多!