Linux具有非常优良的血统,具有相当良好的多人多工环境。 与Windows比较,Win面向非专业用户,Linux面向专业人员;Windows的宗旨是让不会电脑的人也可以操作电脑,Linux的宗旨是最大化精简系统。因此Win在大众领域受欢迎,而Linux在专业和速度领域大放异彩。 Linux开源,易于移植。奇数版本为发展中版本,偶数版本为稳定版本。
Linux预设的情况下会提供六个Terminal来让使用者登入。
Linux有两种操作界面,纯文字界面和图形用户界面。 [Ctrl] + [Alt] + [F2] ~ [F6] :文字界面登入 tty2 ~ tty6 终端机; [Ctrl] + [Alt] + [F1] :图形界面桌面。 图形界面只能有一个,如果没有tty1-tty6都没有开启图形界面,可以使用命令startx开启图形界面。
dmtsai是用户名,study是电脑名,~是home
1.显示当前支持的语系
# LANG 代表当前语系,LC_ 代表可支持的语系。 locale LANG="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_CTYPE="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_ALL=2.修改当前语系为英语
LANG=en_US.utf81.显示当前日期
date 2019年12月 1日 星期日 13时43分38秒 CST2.格式化输出时间
date +%Y/%m/%d 2019/12/013.显示日历
cal 十二月 2019 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 314.显示整年日历
cal 2019【TAB】按键:补全代码和命令; 【ctrl+c】:终止当前程序; 【ctrl+d】:相当于输入 exit
LINUX下不同的文件类型有不同的颜色: 蓝色 表示目录; 蓝绿 色表示可执行文件,可执行的程序; 红色 表示压缩文件或包文件; 浅蓝色 表示链接文件; 灰色 表示其它文件;
使用正则表达式
cp test*.* TEST/Linux是多人多工系统,因此为了保护每个人的隐私,创建了健全的保护机制。 创建者:档案拥有者,即这个新建这个文档的人。 群组:作用是让非创建者拥有和创建者一样的权利。 文档权限:读写权和执行权。
以上权限可以用如下命令修改: chown :改变档案拥有者 chgrp :改变档案所属群组 chmod :改变档案的权限, SUID, SGID, SBIT等等的特性
TODO:)
属性1:代表这个文件是目录、文件或链接文件等等. [ d ]是目录;[ - ]是文件;[ l ]是链接文档;[ b ]是装置文件里面的可供储存的接口设备(可随机存取装置);[ c ]是装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
属性2-4:用户权限,rwx分别为读、写和执行权. 属性2是创建者(拥有者),属性3是群组,属性4是其他用户的权限,-表示没有此权限
各权限的数字代表:
权限数字代表作用r4读w2写x1执行-0无此权限如:超级权限777代表所有人都具有读写执行权
chmod用于设定文件属性,有两种方式:一种是数字方式,另一种是字母方式. 1.数字方式
# 给予文件夹内所有用户(root用户,管理员,普通用户)所有权限。 chmod 777 -R 文件夹2.字母方式
# 赋予文件A执行权. chmod +x A设置了i属性之后:只能查看文件,不能修改(权限,内容等但是可以刷新时间)和删除;i属性就是将文件完全锁定,只能查看。
# 查看i属性 lsattr test.txt # 增加i属性 chattr +i test.txt查找 PATH 路径中的命令,并返回该命令位置。
which python /usr/bin/pythonwhereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
whereis python /usr/bin/python查找文件
# 在路径中查找文件 find 查找路径 -name 文件名支持正则表达式。
ocate 可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的索引数据库,当寻找时就只需查询这个索引数据库而不必实际深入档案系统之中。locate 因为是只去检索索引数据库,所以在比 find 全盘检索要快很多。
locate 文件名支持正则表达式。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
# 传输远程文件到本地 scp 用户名@ip地址:文件名 本地目录 # 递归传输本地文件到远程 scp 本地文件 用户名@ip地址:文件名zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。
# 压缩,将文件B压缩为A.zip zip -r A.zip B # 解压,解压A.zip unzip A.zipTar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。
# 打包,将文件B打包为A.tar tar -cvf A.tar B # 解包,将A.tar解包到当前目录 tar -xvf A.tar # 解包,将A.tar解包到指定目录 tar -xvf A.tar -C 指定目录这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。
# 压缩,将文件B压缩为A.tar.gz tar -zcvf A.tar.gz B # 解压,将A.tar.gz解压到当前目录 tar -zxvf A.tar.gz # 解压,将A.tar.gz解压到指定目录 tar -zxvf A.tar.gz -C 指定目录Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
进入root
su创建名为 db 的新用户:
adduser db 正在添加用户"db"… 正在添加新组"db" (1006)… 正在添加新用户"db" (1006) 到组"db"… 创建主目录"/home/db"… 正在从"/etc/skel"复制文件… 输入新的 UNIX 口令: 重新输入新的 UNIX 口令: 两次输入db的初始密码,出现的信息如下 passwd: password updated successfully Changing the user information for db Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Full Name []:一路回车,然后y, 到此,用户添加成功。
添加root权限: 使用 visudo 打开 sudoers
sudo visudo -f sudoers修改内容如下:
# User privilege specification root ALL=(ALL) ALL db ALL=(ALL) ALL保存退出,db用户就拥有了root权限。 :wq 退出, 或者 ctrl+o,回车,ctrl+x退出
删除用户
userdel 用户名把用户的主目录一起删除。
userdel -r 用户名修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。 用法:
usermod 参数 用户名 参数: -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 用户名: 指定新账号的登录名。用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。 如果默认用户名,则修改当前用户的口令。
# 修改密码 passwd参数
-g GID 指定新用户组的组标识号(GID)。 -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。参数
-g GID 为用户组指定新的组标识号。 -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。 -n新用户组 将用户组的名字改为新名字bin: bin为binary的简写,主要放置系统的必备执行文件,例如: cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/usr/bin: 主要放置应用程序工具的必备执行文件,例如: c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb、wget等。
/sbin: 主要放置系统管理的必备程序,例如: cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
/usr/sbin: 主要放置网路管理的必备程序,例如: dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等.
在 Linux 系统当中:‘触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的使用者与相关属性关系,给予这个 PID 一组有效的权限设定。’ 从此以后,这个 PID 能够在系统上面进行的动作,就与这个 PID 的权限有关了!
其中,PID是进程号,signal有:
1 SIGHUP 启动被终止的程序,可让该 PID 重新读取自己的设定档,类似重新启动 2 SIGINT 相当于用键盘输入 [ctrl]-c 来中断一个程序的进行 9 SIGKILL 代表强制中断一个程序的进行,如果该程序进行到一半, 那么尚未完成的部分可能会有‘半产品’产生,类似 vim会有 .filename.swp 保留下来。 15 SIGTERM 以正常的结束程序来终止该程序。由于是正常的终止, 所以后续的动作会将他完成。不过,如果该程序已经发生问题,就是无法使用正常的方法终止时, 输入这个 signal 也是没有用的。 19 SIGSTOP 相当于用键盘输入 [ctrl]-z 来暂停一个程序的进行杀死进程1234
kill -9 1234https://www.cnblogs.com/chendeqiang/p/12861616.html
apt是Debian系列的Linux操作系统的包管理工具,最近的项目中使用了stretch Linux,它也是使用apt来进行包管理的。
apt采用集中式的软件仓库机制,将各式各样的软件分门别类的放在软件仓库之中,从而进行有效的组织和管理。然后,将软件仓库放置在许多镜像服务器中,并保持基本一致。这样一来,所有的用户都能获取最新的软件安装包。对用户而言,这写镜像就是软件源。 由于用户所处网络的不同,无法随意的访问各个镜像站点。为了能让用户有选择的访问镜像站点,使用了软件源配置文件/etc/apt/sources.list列出最合适访问的镜像站点的地址。
在执行了apt-get update命令后,apt会自动联网寻找source.list.d文件中的list对应的Package/Sources/Release列表文件,如果存在则下载,存放在/var/lib/apt/lists目录中。 然后看一下容器中的/var/lib/apt/lists目录。然后apt-get install相应的包。
apt-get install是下载命令,下载的软件都会存到/var/cache/apt/archives下。 apt还会检查Linux系统的包依赖关系,简化了用户安装和卸载包的过程。 要下载一个软件包时,大概需要4步: 1.扫描本地存放的软件包更新列表,找到最新版本的软件包。 2.进行软件包依赖关系检查,找到支持该软件的所有软件包。 3.从镜像站点中下载相关软件包(包含所依赖的软件包),并存放在/var/cache/apt/archive 4.解压软件包,并自动完成应用程序的安装和配置。
正如前面说的,要想使用apt-get下载安装软件,需要去/etc/apt/source/list中的镜像源地址中去下载,那么我们仅仅是知道去哪里下载,镜像源地址中有什么软件,我们并不清楚,所以需要使用apt-get update来刷新软件的索引,从而确定我们要的软件在镜像站点中是否存在。 apt-get update会扫描每个镜像站点,并为该站点所具有的软件包资源建立索引文件,存放在本地的/var/lib/apt/list中。在使用apt-get命令执行安装或者更新操作时都会依赖这些索引文件,所以在每次更新或者安装前应该使用apt-get update命令来刷新索引,从而获取最新的软件资源。
将系统中所有的软件包一次性升级到最新版本。
提示:如果你和我一样,创建了一个docker镜像文件,建议不要使用apt-get upgrade命令,因为镜像其实就是系统的一个“快照”,这个镜像刚好满足了我们程序的需求,如果使用了apt-get upgrade命令后将会使得镜像变得很大,而且每次构建镜像时也会耗费更多时间。一个优秀的镜像的原则是,在满足程序需求的同时,体积越小越好。
另外,在下载完成后可以删除/var/lib/apt/lists/中索引文件,从而减小镜像的体积。
下载的软件的存放位置:/var/cache/apt/archives 安装后软件的默认位置:/usr/share 可执行文件位置:/usr/bin 配置文件位置:/etc lib文件位置:/usr/lib
参考链接: https://www.jianshu.com/p/c6936efe5b58
以上面的输出为例,表示的意思为: HD硬盘接口的第二个硬盘(b),第二个分区(2),容量是75G,用了75G,可用是0,因此利用率是100%, 被挂载到根分区目录上(/)。
在 Linux 底下如果 df 没有加任何选项,那么预设会将系统内所有的 (不含特殊内存内的档案系统与 swap) 都以 1 Kbytes 的容量来列出来!
由于Linux是多人多工操作系统,所以关机还是需要注意一些问题。
命令作用sync将数据由内存同步到硬盘中。shutdown关机指令,1分钟后关机。shutdown -h now立刻关机shutdown –h10分钟后关机,并且会显示在登陆用户的当前屏幕中。shutdown –h now立马关机shutdown –h 20:25系统会在今天20:25关机shutdown –h +10十分钟后关机shutdown –r now系统立马重启shutdown –r +10系统十分钟后重启reboot重启,等同于 shutdown –r nowhalt关闭系统,等同于shutdown –h now 和 powerofftotal:总内存 used:已使用的内存(包含 shared、buffers、cached) free:未分配的内存 shared:共享内存 buffers:块设备的读写缓冲区 cached:文件系统的cache
系统,主机名,版本号,时间,架构
假设以个人电脑架设的 Linux 主机为例 (先回到第零章计算机概论看看相关的硬件常识喔), 当你按下电源按键后电脑硬件会主动的读取 BIOS 或 UEFI BIOS 来载入硬件资讯及进行硬件系统的自我测试,之后系统会主动的去读取第一个可开机的装置 (由 BIOS 设定的) ,此时就可以读入开机管理程式了。
主机系统开始运作后,此时 Linux 才会呼叫外部程式开始准备软件执行的环境,并且实际的载入所有系统运作所需要的软件程式哩! 最后系统就会开始等待你的登入与操作啦!简单来说,系统开机的经过可以汇整成底下的流程的:
载入 BIOS 的硬件资讯与进行自我测试,并依据设定取得第一个可开机的装置;读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub2, spfdisk 等程式);依据 boot loader 的设定载入 Kernel ,Kernel 会开始侦测硬件与载入驱动程式;在硬件驱动成功后,Kernel 会主动呼叫 systemd 程式,并以 default.target 流程开机; systemd 执行 sysinit.target 初始化系统及 basic.target 准备作业系统;systemd 启动 multi-user.target 下的本机与服务器服务;systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local 档案;systemd 执行 multi-user.target 下的 getty.target 及登入服务;systemd 执行 graphical 需要的服务vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
一般流程: vi runoob.txt,打开文档 进入一般模式. 按下 i 进入输入模式(也称为编辑模式),开始编辑文字,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入。 按下 ESC 按钮回到一般模式 在一般模式中按下 :wq 储存后离开 vi
命令作用:q是离开而不保存:wq是保存并离开:q!不保存退出:set nu显示行号vim .使用vim打开当前目录:%d全部删除:u撤销gg光标回到首行n回车光标跳到n行配置自定义设置,打开 ~/.vimrc,写入命令即可设置自定义配置。
shell用于用户和操作系统内核进行交互。 由于早年的 Unix 年代,发展者众,所以由于 shell 依据发展者的不同就有许多的版本,例如常听到的 Bourne SHell (sh) 、在 Sun 里头预设的 C SHell、 商业上常用的 K SHell、, 还有 TCSH 等等,每一种 Shell 都各有其特点。至于 Linux 使用的这一种版本就称为‘ Bourne Again SHell (简称 bash) ’,这个 Shell 是 Bourne Shell 的增强版本,也是基准于 GNU 的架构下发展出来的呦!
1.查看可用shell
gedit /etc/shells /bin/sh (已经被 /bin/bash 所取代) /bin/bash (就是 Linux 预设的 shell) /bin/tcsh (整合 C Shell ,提供更多的功能) /bin/csh (已经被 /bin/tcsh 所取代)2.查看预设的shell
gedit /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin如上所示,在每一行的最后一个资料,就是你登入后可以取得的预设的 shell 啦!那你也会看到, root 是 /bin/bash ,不过,系统账号 bin 与 daemon 等等,就使用那个怪怪的 /sbin/nologin 啰~
Bash Shell是Linux预设的shell,优点有: 历史命令查找;Tab补全功能;alias别名;工作控制、前景背景控制;程式化脚本;正则表达式等。
在进入 shell 之前,也正如同上面提到的,由于系统需要一些变数来提供他资料的存取 (或者是一些环境的设定参数值, 例如是否要显示彩色等等的) ,所以就有一些所谓的‘环境变数’ 需要来读入系统中了!这些环境变数例如 PATH、HOME、MAIL、SHELL 等等,都是很重要的, 为了区别与自订变数的不同,环境变数通常以大写字元来表示呢!
1.显示变量 显示变量使用 echo $ 方式。
echo ${PATH} echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin2.设置变量 使用等号 =
myname=ala变量设定规则: 1.变数与变数内容以一个等号‘=’来连结,如下所示: ‘myname=VBird’ 2.等号两边不能直接接空白字元,如下所示为错误: ‘myname = VBird’或‘myname=VBird Tsai’ 3.变数名称只能是英文字母与数字,但是开头字元不能是数字,如下为错误: ‘2myname=VBird’ 4.变数内容若有空白字元可使用双引号‘"’或单引号‘'’将变数内容结合起来, 但双引号内的特殊字元如 $ 等,可以保有原本的特性,如下所示: ‘var="lang is $LANG"’则‘echo $var’可得‘lang is zh_TW.UTF-8’ 单引号内的特殊字元则仅为一般字元 (纯文字),如下所示: var='lang is $LANG'’则‘echo $var’可得‘lang is $LANG’ 5.可用跳脱字元‘ \ ’将特殊符号(如 [Enter], \(, \, 空白字元, '等)变成一般字元,如: ‘myname=VBird\ Tsai’ 6.在一串指令的执行中,还需要借由其他额外的指令所提供的资讯时,可以使用反单引号‘`指令`’或 ‘\)(指令)’。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本的设定: ‘version=$(uname -r)’再‘echo \(version’可得‘3.10.0-229.el7.x86_64’ 7.若该变数为扩增变数内容时,则可用 "\)变数名称" 或 \({变数} 累加内容,如下所示: ‘PATH="\)PATH":/home/bin’或‘PATH=${PATH}:/home/bin’ 8.若该变数需要在其他子程序执行,则需要以 export 来使变数变成环境变数: ‘export PATH’ 9.通常大写字元为系统预设变数,自行设定变数可以使用小写字元,方便判断 (纯粹依照使用者兴趣与嗜好) ; 10.取消变数的方法为使用 unset :‘unset 变数名称’例如取消 myname 的设定: ‘unset myname’
绝对路径与相对路径 绝对路径:路径的写法一定由根目录 / 写起,例如: /usr/share/doc 相对路径:路径的写法不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd ../man 这就是相对路径的写法啦!相对路径意指 相对于目前工作目录的路径!
环境变量 我们知道查阅档案属性的指令ls完整档名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:为什么我可以在任何地方执行/bin/ls这个指令呢? ’为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变数 PATH 的帮助所致呀! Linux是一个多用户的操作系统,每个用户登录系统,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,默认环境实际上是一组环境变量的定义。通过相应的系统环境变量,用户可以对自己的运行环境进行个性化设置。 通俗的讲,环境变量就是告诉电脑去哪几个目录寻找可执行程序.环境变量也是全局变量,即在任何界面输入命令都生效. 其中包括:变量HOME(明确定义了用户登录目录的路径名)、变量PATH(指明了用户输入命令后,shell查找与之相应程序时所搜索的目录列表)。
批注:如果一个程序需要引用多个环境变量,那么可以类似于java一样建立一个JAVA_HOME环境变量,后续其他环境变量基于这个环境变量修改。这样做的好处是以后更改时,只需要更改JAVA_HOME环境变量就可以了,非常方便。
显示环境变量
# 显示PATH环境变量 echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin即计算机将在以上目录中寻找可执行程序,其中:是分隔符.
# 显示HOME变量 echo $HOME /Users/abc # 显示所有环境变量 export HOSTNAME=study.centos.vbird <== 这部主机的主机名称 TERM=xterm <== 这个终端机使用的环境是什么类型 SHELL=/bin/bash <== 目前这个环境下,使用的 Shell 是哪一个程式? HISTSIZE=1000 <== ‘记录指令的笔数’在 CentOS 预设可记录 1000 笔 OLDPWD=/home/dmtsai <== 上一个工作目录的所在 LC_ALL=en_US.utf8 <== 由于语系的关系,鸟哥偷偷丢上来的一个设定 USER=dmtsai <== 使用者的名称啊! LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01: or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32: *.tar=01... <== 一些颜色显示 MAIL=/var/spool/mail/dmtsai <== 这个使用者所取用的 mailbox 位置 PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin PWD=/home/dmtsai <== 目前使用者所在的工作目录 (利用 pwd 取出!) LANG=zh_TW.UTF-8 <== 这个与语系有关,底下会再介绍! HOME=/home/dmtsai <== 这个使用者的家目录啊! LOGNAME=dmtsai <== 登入者用来登入的账号名称 _=/usr/bin/env <== 上一次使用的指令的最后一个参数(或指令本身)如新添加的环境变量为/home/xxx/test/bin,则在~/.bashrc中填写:
export PATH=$PATH:/home/xxx/test/bin然后source一下就可以使用了:
source ~/.bashrc这样就将 /home/xxx/test/bin 也添加为了搜索目录,其中 $ 是引用变量, $PATH 即引用PATH变量, : 即分隔符. 整句的意思是:设置环境变量为,原PATH路径以及/home/xxx/test/bin
例程:设置java环境变量
export JAVA_HOME=/home/xxx/soft/jdk1.8.0_231 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib/:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH source ~/.bashrc测试:
$ java -version java version "1.8.0_231" Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)软链接 软链接即Win的快捷方式.因此只要把要搜做的目录做成软链接(快捷方式)放进统一管理的bin目录下即可.
语法:
ln [-sf] 来源档 目标档-s :如果不加任何参数就进行连结,那就是hard link,至于 -s 就是symbolic link -f :如果 目标档 存在时,就主动的将目标档直接移除后再建立!
栗子: 将 /opt/cmake-3.12.2/bin/ 下的所有文件建立软链接放在 /usr/bin/ 目录下.这样计算机就可以在 /usr/bin/ 下搜索到 /opt/cmake-3.12.2/bin/* 了.
ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/还记得在终端机界面 (tty1 ~ tty6) 登入的时候,会有几行提示的字串吗?那就是进站画面啊! 那个字串写在哪里啊?呵呵!在 /etc/issue 里面啊!
cat /etc/issue \S Kernel \r on an \missue 内的各代码意义: \d 本地端时间的日期; \l 显示第几个终端机界面; \m 显示硬件的等级 (i386/i486/i586/i686...); \n 显示主机的网络名称; \O 显示 domain name; \r 操作系统的版本 (相当于 uname -r) \t 显示本地端时间的时间; \S 操作系统的名称; \v 操作系统的版本。
读入环境设定档的指令
由于 /etc/profile 与 ~/.bash_profile 都是在取得 login shell 的时候才会读取的设定档,所以, 如果你将自己的偏好设定写入上述的档案后,通常都是得登出再登入后,该设定才会生效。那么,能不能直接读取设定档而不登出登入呢? 可以的!那就得要利用 source 这个指令了!
source ~/.bashrc管线命令使用的是‘ | ’这个界定符号! 另外,管线命令与‘连续下达命令’是不一样的呦! 假设我们想要知道 /etc/ 底下有多少档案,那么可以利用 ls /etc 来查阅,不过, 因为 /etc 底下的档案太多,导致一口气就将屏幕塞满了~不知道前面输出的内容是啥?此时,我们可以透过 less 指令的协助,利用:
ls -al /etc | less如此一来,使用 ls 指令输出后的内容,就能够被 less 读取,并且利用 less 的功能,我们就能够前后翻动相关的资讯了!
筛选命令 grep 就是将一段资料经过分析后,取出我们所想要的。或者是经由分析关键字,取得我们所想要的那一行!
# 在文件中查找关键字 grep 关键字 文件其他管道命令 cut, grep, sort, wc, uniq, tee, tr, col, join, paste, expand, split, xargs
例如输出到文件:
echo "hello" >~/test.txt重启网络:
sudo /etc/init.d/networking restartUbuntu 18.04的网络管理程序改为netplan了,因此配置方式也需要改喽! 查看ip
ifconfig -a设置静态ip
sudo gedit /etc/netplan/50-cloud-init.yaml # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: enp0s3: addresses: [192.168.199.101/24, ] dhcp4: no dhcp6: no gateway4: 192.168.199.1 nameservers: addresses: [8.8.8.8, 9.9.9.9] version: 2其中,把dhcp4/dhcp6都设为no予以关闭,设上自己的ip地址、网关和域名服务器。 应用网络:
netplan applywww.purethought.cn/40027.html
右上角 -> System Settings... -> User Accounts -> Automatic Login -> ON
将两台电脑的静态ip设置为相同频段即可。如: A电脑
ip地址:192.168.0.2 子关掩码:255.255.255.0 默认网关:192.168.0.1B电脑
ip地址:192.168.0.3 子关掩码:255.255.255.0 默认网关:192.168.0.1然后可以使用ping进行测试。
参考链接: https://www.runoob.com/linux/linux-shell.html https://www.cnblogs.com/nyist-xsk/p/7929859.html https://www.cnblogs.com/sunyllove/p/9772053.html https://linux.vbird.org/linux_basic/centos7/0220filemanager.php https://blog.csdn.net/politefish/article/details/4729551