1.入门,历史,启动

1.1命令行是什么

image.png
kernel和shell,kernel是内核,shell是壳

命令行就是代表用户和内核进行交互,命令行将命令传递给内核,然后内核检索文件系统并返回命令的返回值

1.2为什么需要命令行

image.png

2.命令行的要素

image.png
命令行的第一个参数为可执行程序

2.1绝对路径与相对路径

绝对路径是从根目录开始的,可唯一指定的路径
image.png
相对路径是相对于当前路径的路径
image.png

2.2环境变量

image.png
image.png

环境变量可以赋值

image.png

环境变量可以被继承

image.png
image.png

环境变量设置

image.png
image.png
image.png

局部环境变量

用export设置环境变量,用echo读取环境变量

全局环境变量~/.bash_profile

只在bash中生效

将环境变量添加到~/.bash_profile中,可以使这个环境变量在任何进程中都生效

再用source命令将profile中的环境变量立即在当前进程中生效

只在zsh中生效

将环境变量添加到~/.zshrc中,可以使这个环境变量在任何进程中都生效

再用source命令将zshrc中的环境变量立即在当前进程中生效

向docker容器传递环境变量

docker的环境变量不会收到外面环境变量的影响
image.png

2.3可执行程序

2.3.1Windows

windows会依次寻找exe,bat,com程序,能找到就执行,找不到就报错。

会到环境变量和当前目录中寻找
image.png

2.3.2Linux

用echo $PATH来找到环境变量目录

2.3.3设置当前文件用什么解释器

这就是当前文件用环境中的node解释,里面写js代码,终端也能理解代码的内容了
image.png

这是直接找到node的安装程序,让程序执行,这两个代码的效果是一样的,最好是使用上面那种方法
image.png

2.3.4取别名

这就是给git status取一个别名叫wtf,以后可以用wtf来代替git status,不过,
这么操作只会在当前终端中生效,要让它在其他终端中也生效,需要将它放到~/.bash_profile或者~/.zshrc中
image.png

2.4参数

image.png
使用一个“-”后面只能跟一个字符,但是能讲“-”合并。
例如ls -alth就是将ls -a, ls -l, ls -t, ls -h合并起来了

使用“—”后面可以跟一个单词,例如 -a = —all, -f = —force

3.输入和输出

image.png

3.1标准输入,输出,错误

image.png
image.png
image.png

3.2输出重定向

将当前文件的标准输出重定向到某个文件中,会覆盖之前的内容。
image.png
>>是追加,不会覆盖
image.png
由于重定向输出时,默认1号输出
java Main 1> output.txt 可以指定某个输出重定向到文件中
image.png

3.3丢弃输出(/dev/null)

image.png

4.Linux常用命令

image.png
ls -alth, a是展示隐藏文件,l是展示文件的属性,t是按照文件的修改顺序倒序排列,h是把文件大小从字节显示为kb或者m

cp -r是拷贝一个目录,cp是拷贝文件
image.png
mkdir -p 是创建a/b/c/d时,同时将a,b,c目录一起创建,如果不加-p,那么命令行不会创建a,b,c目录

5.使用命令编译运行java程序

5.1编译运行java程序

使用javac xxx将java文件编译为字节码即class文件.

使用java xxx命令运行字节码文件中xxx类。

java aaa bbb 其中aaa是字节码的文件名,bbb是传入的参数即是main函数的String args[]参数

5.2读取环境变量和系统属性

其中系统属性只在jvm中有效
image.png

5.3传递系统属性(-D)

image.png

5.4用classpath传递引用到的包(可以简写为-cp)

由于引用了别的jar包,直接用java命令无法运行,会报错
image.png

image.png
要使用-classpath来引入
image.png
然后在运行java程序时,也需要引入。并用:(冒号)将期望从哪些目录运行。在windows上用;(分号)
image.png

6.在java程序中启动新进程

image.png