1.入门,历史,启动
1.1命令行是什么
kernel和shell,kernel是内核,shell是壳
命令行就是代表用户和内核进行交互,命令行将命令传递给内核,然后内核检索文件系统并返回命令的返回值
1.2为什么需要命令行
2.命令行的要素
2.1绝对路径与相对路径
绝对路径是从根目录开始的,可唯一指定的路径
相对路径是相对于当前路径的路径
2.2环境变量
环境变量可以赋值
环境变量可以被继承
环境变量设置
局部环境变量
全局环境变量~/.bash_profile
只在bash中生效
将环境变量添加到~/.bash_profile中,可以使这个环境变量在任何进程中都生效
再用source命令将profile中的环境变量立即在当前进程中生效
只在zsh中生效
将环境变量添加到~/.zshrc中,可以使这个环境变量在任何进程中都生效
再用source命令将zshrc中的环境变量立即在当前进程中生效
向docker容器传递环境变量
2.3可执行程序
2.3.1Windows
windows会依次寻找exe,bat,com程序,能找到就执行,找不到就报错。
2.3.2Linux
2.3.3设置当前文件用什么解释器
这就是当前文件用环境中的node解释,里面写js代码,终端也能理解代码的内容了
这是直接找到node的安装程序,让程序执行,这两个代码的效果是一样的,最好是使用上面那种方法
2.3.4取别名
这就是给git status取一个别名叫wtf,以后可以用wtf来代替git status,不过,
这么操作只会在当前终端中生效,要让它在其他终端中也生效,需要将它放到~/.bash_profile或者~/.zshrc中
2.4参数
使用一个“-”后面只能跟一个字符,但是能讲“-”合并。
例如ls -alth就是将ls -a, ls -l, ls -t, ls -h合并起来了
使用“—”后面可以跟一个单词,例如 -a = —all, -f = —force
3.输入和输出
3.1标准输入,输出,错误
3.2输出重定向
将当前文件的标准输出重定向到某个文件中,会覆盖之前的内容。
>>是追加,不会覆盖
由于重定向输出时,默认1号输出
java Main 1> output.txt 可以指定某个输出重定向到文件中
3.3丢弃输出(/dev/null)
4.Linux常用命令
ls -alth, a是展示隐藏文件,l是展示文件的属性,t是按照文件的修改顺序倒序排列,h是把文件大小从字节显示为kb或者m
cp -r是拷贝一个目录,cp是拷贝文件
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读取环境变量和系统属性
5.3传递系统属性(-D)
5.4用classpath传递引用到的包(可以简写为-cp)
由于引用了别的jar包,直接用java命令无法运行,会报错
要使用-classpath来引入
然后在运行java程序时,也需要引入。并用:(冒号)将期望从哪些目录运行。在windows上用;(分号)