Linux 现在常用的有两大体系,一个是 CentOS 体系,一个是 Ubuntu 体系。
浏览文件
cd就是 change directory,就是切换目录;
cd . 表示切换到当前目录;
cd … 表示切换到上一级目录;
dir,可以列出当前目录下的文件。
ls 列出当前目录下的文件,意思是 list。
ls -l,也就是用列表的方式列出文件
ll 用列表的方式列出文件,包含隐藏文件
列表文件说明:
# ls -l
drwxr-xr-x 6 root root 4096 Oct 20 2017 apt
-rw-r--r-- 1 root root 211 Oct 20 2017 hosts
其中第一个字段的第一个字符是文件类型。如果是“-”,表示普通文件;如果是 d,就表示目录。
第一个字段剩下的 9 个字符是模式,其实就是权限位(access permission bits)。3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。如果是字母,就说明有这个权限;如果是横线,就是没有这个权限。
这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限。例如,上面的例子中,-rw-r–r-- 就可以翻译为,这是一个普通文件,对于所属用户,可读可写不能执行;对于所属的组,仅仅可读;对于其他用户,也是仅仅可读。如果想改变权限,可以使用命令 chmod 711 hosts。
第二个字段是硬链接(hard link)数目。
第三个字段是所属用户,第四个字段是所属组。第五个字段是文件的大小,第六个字段是文件被修改的日期,最后是文件名。你可以通过命令chown改变所属用户,chgrp改变所属组。
安装软件
以安装JDK为例,CentOS 下面使用rpm -i jdk-XXX_linux-x64_bin.rpm进行安装,Ubuntu 下面使用dpkg -i jdk-XXX_linux-x64_bin.deb。其中 -i 就是 install 的意思。
rpm -qa和dpkg -l就可以查看安装的软件列表,-q 就是 query,a 就是 all,-l 的意思就是 list。
rpm -qa | grep jdk,这个命令是将列出来的所有软件形成一个输出。| 是管道,用于连接两个程序,前面 rpm -qa 的输出就放进管道里面,然后作为 grep 的输入,grep 将在里面进行搜索带关键词 jdk 的行,并且输出出来。grep 支持正则表达式,因此搜索的时候很灵活,再加上管道,这是一个很常用的模式。同理dpkg -l | grep jdk也是能够找到的。
rpm -qa | more和rpm -qa | less这两个命令,它们可以将很长的结果分页展示出来。这样你就可以一个个来找了
rpm -e和dpkg -r。-e 就是 erase,-r 就是 remove。
yum install java-11-openjdk.x86_64和apt-get install openjdk-9-jdk来进行安装。
yum erase java-11-openjdk.x86_64和apt-get purge openjdk-9-jdk来进行卸载。
配置环境变量
export JAVA_HOME=/root/jdk-XXX_linux-x64
export PATH=$JAVA_HOME/bin:$PATH
export 命令仅在当前命令行的会话中管用,一旦退出重新登录进来,就不管用了。
在当前用户的默认工作目录,例如 /root 或者 /home/cliu8 下面,有一个.bashrc 文件。
通过 vim .bashrc,将 export 的两行加入后,输入:wq,写入并且退出,这样就编辑好了。
运行程序
命令行运行
这样执行的程序可能需要和用户进行交互,例如允许让用户输入,然后输出结果也打印到交互命令行上。这种方式比较适合运行一些简单的命令,例如通过 date 获取当前时间。这种模式的缺点是,一旦当前的交互命令行退出,程序就停止运行了。
运行:/filename
退出:ctrl + c
后台运行
这个时候,我们往往使用nohup命令。这个命令的意思是 no hang up(不挂起),也就是说,当前交互命令行退出的时候,程序还要在。当然这个时候,程序不能霸占交互命令行,而是应该在后台运行。最后加一个 &,就表示后台运行。
最终命令的一般形式为nohup command >out.file 2>&1 &。这里面,“1”表示文件描述符 1,表示标准输出,“2”表示文件描述符 2,意思是标准错误输出,“2>&1”表示标准输出和错误输出合并了。合并到哪里去呢?到 out.file 里。
进程的关闭
ps -ef |grep 关键字 |awk '{print $2}'|xargs kill -9
其中 ps -ef 可以单独执行,列出所有正在运行的程序,grep 上面我们介绍过了,通过关键字找到咱们刚才启动的程序。
awk 工具可以很灵活地对文本进行处理,这里的 awk '{print $2}'是指第二列的内容,是运行的程序 ID。我们可以通过 xargs 传递给 kill -9,也就是发给这个运行的程序一个信号,让它关闭。如果你已经知道运行的程序 ID,可以直接使用 kill 关闭运行的程序。
服务方式运行
启动:systemctl start XXX
关闭:systemctl stop XXX
设置开机启动:systemctl enable XXX
关机与重启
shutdown -h now
reboot