Linux的安装以及基础命令(下)
对于Linux来说,一切皆文件。整个系统其实就是一个文件夹。不过这个文件夹下面又有很多子文件,这些文件又有各自的特性。那么既然是文件,我们刚进入系统时,是在这个大文件夹的那个位置呢?
(这里所说的都是在无图形化界面)
进入系统后,输入用户名,再输入密码。登陆成功后,我们默认进入的是一个图形化的界面,这时候我们需要调出 命令窗口,方法有两种:
- 如果有快捷图标就点击图标,2、组合键 Ctrl+Alt + t
首先我们肯定知道,刚进入系统我们看到的就是桌面,那么桌面 这个位置对应的路径是什么呢?我们现在桌面上建立两个文件,一个文本文件,一个文件夹。以便等会儿我们来证实我们进入的目录是不是 桌面的目录。创建方式和windows类似。右键 有新建文件夹,和新建文档。
然后 组合键 Ctrl+Alt+ t 打开命令窗口,输入 pwd 然后看到一个路径,这个路径是命令窗口打开时我们所在的默认路径 “/” 是根目录,“/home” 是系统家目录,后面再加上某个用户名 就是某个 特定用户的家目录了。我们的命令窗口默认打开的就是 你所使用的用户的家目录。
然后我们怎么找到桌面呢?
输入 ls 看到可以查看 当前目录下 有哪些文件,我们可以看到就有 桌面 这一文件,然后我们 输入 cd 桌面 就可以进入桌面的目录了。这时候再输入 ls 就可以看到我在桌面上建立的那两个文件了。
(下面就开始 熟悉各种命令)
首先说一下,图形化界面和非图形化的切换。因为我们印象中Linux系统都是黑窗口的,其实为了用户体验,现在大多数Linux都是有图形化界面的。
图形化界面和非图形化界面 切换的命名是用 Ctrl+Alt + F1 --- F9 ,F1 --- F9 每一个都是一个工作平台,你就可以把它当成每一个都是一个独立的桌面一样,不过这个是没有界面的桌面。哈哈。然后F1---F9中 只有F7 是有界面。
我们没必要非得切换到非图形化界面,因为我们刚才也试了,在图形化界面我们也能调出命令窗口。所以以后我们大多数的命令都是在 图形化界面 然后调出命令窗口进行 命令学习。
然后开始学习命令,其实Linux下的命令最常用的分为两类:
对文件进行操作的命令 和 对用户进行操作的命令。
(对应的功能也就是 文件管理 和 用户管理)
他们每一类都有很多命令,这里我们只学习一些常用的即可,不常用的以后可以现查现用。
用户管理
首先是用户管理。
查看当前用户 :whoami 或者 who am i
查看所有登录用户 :who 或者 w
什么叫所有用户呢?就是刚才不是说了吗,Ctrl+Alt+ F1---F9 每一个都是一个工作平台,而每个工作平台都需要独立登陆。这里的 查看所有登陆用户就是说,能查看到所有工作平台上都有哪些登陆的用户。
创建用户,创建用户需要是管理员或者是 有管理员的权限的用户才可以。那么怎么让普通用户拥有管理员权限呢?我们通常采用临时赋权限的方式,就是在输入的命令前面加一个 标识 sudo ,这个标志说明 这一条语句是以管理员的身份执行的。
如: sudo ls 是以管理员的身份查看当前目录下的文件有哪些
或者你不想多输 这个单词,你可以直接切换用户到 管理员用户也可以。
不过新装的系统 管理员用户的密码是需要重置的。(初始密码是一个随机数,不过你不用去管这个随机数,第一次修改密码可以直接修改,不用输入原始密码的)
重置 管理员密码的命令:sudo passwd root 然后直接输入密码即可。(建议密码也设为 root)
然后切换成 管理员用户的命令是 :su 或者 su -
然后输入 管理员的密码,即可切换成功。
(管理员再切换到普通用户的命令是: su +用户名 如:su jq ,不用输入普通用户的密码)
(了解:1、 切换到管理员的时候可以用su和su -,su与su - 的区别(观察实验现象)
用 su 的时候,切换后会保持在原来的目录下,
而用 su - 的时候,切换后会 到root的家目录下
2、 普通用户的标识:$
超级用户的标识:#
)
创建用户的完整命令:
useradd -u 500 -g group01 -G root -d /home/group -c "testUser" -s /bin/bash user1
useradd 添加用户的命令关键字
-u 500 指定用户编号 500
-g group01 指定用户所属组,group01
-G root 指定用户附加组,root 意思是这个用户既属于group01组的也属于root组的
-d /home/group 指定用户的家目录,家目录指 你以这个用户的身份进的时候的初始目录
-c “testUser” 用户描述,需要双引号包起来
-s /bin/bash 指定用户的bash目录,一般统一都是这个目录
user1 用户名,你新建的用户的用户名。
是不是很麻烦,建一个用户?
其实中间的很多参数是可以不写的,
你可以就写一个 useradd user2 ,哈哈,
如果这样的话,和这个用户相关的那些信息都会有默认的设置的。
创建好用户,还得为这个用户设置一个密码才可以,
修改普通用户的密码:passwd + 用户名 如: passwd user2
删除用户: sudo userdel -r test4 [-r表示级联删除家目录]
好了,用户管理咱们就先说到这,下面咱们说 文件管理。
文件管理
ls 查看当前目录的文件(但不会看到隐藏文件)
ls -a 查看当前目录的所有文件 包括隐藏文件
ls -l 查看当前目录的文件详情 不包括隐藏文件
ls -al 查看当前目录的文件详情 包括隐藏文件(如你所见,参数是可以拼接的)
ll 相当于 ls -al
目录间的切换
cd + 目录名 进入每个文件夹 如 : cd aaa (当然前提是,当前目录下得有aaa这个目录)
cd .. 返回上一层
cd / 进入系统根目录
cd ~ 进入当前用户的家目录
例如:想要进入 /home/jq
直接输入 cd /home/jq 即可
mkdir + 自己起的文件夹名字 创建文件夹
touch + 自己起的文件名字 创建文本文件
vi + 文本文件名字 创建文本文件 并编辑(vi是一个文本文件编辑工具,后面会着重说)
删除文件和目录:rm -r aaa (-r 递归删除, -f 强制删除)
创建目录:mkdir aa bb cc , mkdir aa/bb , mkdir -p aa/bb (观察有什么不同,最后我会给出答案)
复制文件:cp 源文件 目标文件 (带路径)
如: cp /home/jq/a1 /home/jq/aaa/ 这条命令会将/home/jq/a1复制到/home/jq/aaa/ 下。(其实路径也可以为相对路径)
再如:cp /home/jq/a1 /home/jq/aaa/a2 这条命令会将/home/jq/a1复制到/home/jq/aaa/ 下并重命名为a2。
(相对路径:
如:cp /home/jq/a1 /home/jq/aaa/a2
如果你当前的路径就是 “/home/jq” (如果你当前用命令pwd ,显示的结果就是 “/home/jq ”),那么用相对路径的写法可以写成:
cp ./a1 ./aaa/a2
因为这个点“ . ”就代表了 “/home/jq”
)
给文件改名或者移动文件:mv 源文件 目标文件(带路径)
和cp原理一样,怎么样是移动,怎么样是改名呢,你移动的时候给它重命令一些,如果移动的目录是别的目录的话,那就是移动,如果你移动的目录是源目录的话,那就成了改名。
如:mv ./aaa/a2 ./ 这就是移动(没有重命名)
mv ./aaa/a2 ./a3 这也是移动(带重命名的)
mv ./aaa/a2 ./aaa/a7 这就是单纯的重命名
如果是当前目录下的文件的重命名,就直接写 mv a2 a7 就好了。
清屏:clear
显示当前绝对路径:pwd
vi的三种状态:命令模式,低行模式,插入模式
vi + 文件名 进入后默认是 命令模式。
命令模式--按下 i或者 o或者 a ---->插入模式----按下 esc--—>命令模式
命令模式--按下 /或者 ?或者 :---->低行模式---按下 enter-->命令模式
命令模式下:
删除一个字符 x
删除当前词 dw
删除三个词 3dw
删除当前行(从光标所在行开始) dd
删除五行(从光标所在行开始) 5dd
替换一个字符 r +新字符 (不用空格) 如 ra 则把当前光标后的字符替换为a
替换一个单词 cw+新字符串 类似r不过替换的是光标后的一串字符(空格结束)
替换一行 cc +新字符串 类似r
拷贝词 yw (空格结束)
拷贝行 yy(或Y)
粘贴 p
改变大小写 ~
按 :进入低行模式后
存盘 w
存成新文件 w newfilename 如 w test2 将文本文件另存为 test2
存盘并退出 wq
强行退出不存盘 q!
其实如果想要编辑文本文件,我们有一个更方便的工具,叫 gedit
gedit + 文本文件名 ,可以打开并编辑一个文本文件。这个工具的界面就比较像windows写的文本编辑器了。只是有的Linux版本没有自带这个文本编辑工具。我给你的带了,嘿嘿。
top : 显示所有进程的内存占用信息,按占用资源的从高到低排序。
ps : 查看系统中正在运行的进程
结束进程:kill + 进程号
查看当前系统时间:date
查看当月月历:cal
管道,将一个命令的输出作为另一个命令的输入:| (可只做了解)
连接文件或标准输入并打印:cat
显式文件的前N行:head + -数字 +文本文件 如:head -5 aa 显示文本文件aa 的前5行。
显式文件的后N行:tail + -数字 +文本文件 如:tail -7 ~/.profile
不加参数默认显式10行,如 :head aa
搜寻指定的文件或目录:find
如:find 查找位置 -name aabb.txt
find /export/home/html -name "*.html"
-print: #find命令将匹配的文件输出到标准输出。
-name filename #按名字查找 名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查
-type b/d/c/p/l/f #按文件类型查找,查是块设备、目录、字符设备、管道、符号链接、普通文件
Mkdir aa bb cc :会在当前目录中同时创建 三个目录 aa bb cc
Mikdr dd/ee :会在 当前目录下的 子目录dd中创建 一个孙子目录 ee(如果当前目录下没有dd 目录,那么创建失败。)
Mkdir -p dd/ee : 也是在当前目录下的子目录dd中创建孙子目录ee,不同的是 如果当前目录下没有dd目录的话,那么会自动先创建dd目录,然后再在其中创建 ee目录。
最后说一个特殊字符的用法 “ & ” ,当你执行一条命令的时候,如果后面加上这个符号,那么你执行的这条命令就会在后台执行,不会一直占用你的命令输入窗口。
比如:当你执行 gedit a1 这条命令的时候,输入完这句话,如果你回来再看 命令窗口,你会发现,现在你没办法在输入其他命令了或者说你输入了其他命令也没有反应,除非你把gedit编辑器关闭才可以,因为这个进程一直在占用着你的这个命令窗口。如下图:
而如果你执行这条命令的时候 在后面加上 & ,gedit a1 & ,你会发现这时候命令窗口是可以正常使用的,没有了占用现象。
好了,Linux的常用的一些基础命令讲的已经差不多了。
最后一部分我给你讲一下 Linux下jdk的搭建,还有就是java程序怎样执行。
Linux 中 java 环境搭建
首先准备好 jdk的压缩文件。
然后我们需要将这个文件夹放到虚拟机里面,怎么放呢?这时候就必须将虚拟机软件上的一个插件安装上了--VMware Tools ,点击虚拟机软件顶部工具栏中 虚拟机-->安装VMware Tools
等虚拟机中出现如下界面,然后将这个文件见关闭即可。
关闭之后,Ctrl+Alt +t 打开命令窗口。然后我们现在需要建两个临时文件夹,我是在/home/solomon/ 下建了一个 tmp 和 tmp2文件夹。
然后我们需要将光驱中的VMware Tools的镜像挂载过来,
用命令: mount /dev/cdrom /home/solomon/tmp
然后将tmp中挂载过来的文件都复制到tmp2中 : cp tmp/* tmp2/
然后进入tmp2 中,解压VMware Tools的安装包,
tar -xzvf VMware (按下Tab键,然后回车)
解压完成后,我们进入文件夹 vmware-tools-distrib中然后执行安装程序 vmware-install.real.pl ,在后面的执行过程中,遇到提示信息就按下回车就行了。
cd vmware-tools-distrib
sudo ./vmware-install.real.pl
最后看见 “enjoy”就可以开心了。说明安装成功。
然后输入 sudo reboot ,重启系统。
这时我们再将我们的jdk1.7解压到当前目录,然后直接将jdk1.7文件夹拖放到虚拟机桌面就行了。(拖到虚拟机的桌面上的时候鼠标多停留一会儿,等鼠标图标变成文件的样子就可以了)
然后我们在打开命令窗口。输入java,可以看到是提示是系统不识别这个命令的。
这时我们需要去配置一下系统的Path路径。
命令窗口下输入 :gedit ~/.profile &
然后会弹出系统的文本编辑器,在这个文档的最后的位置我们添加上一下几句话:
export JAVA_HOME=/home/solomon/software/jdk1.7
export JRE_HOME=${JAVA_HOME}/jre
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
第一行:java_home 配置的是你的jdk1.7 所在的目录路径,后面三行和我的一样就行。
确定没有问题了,重启系统。
重启完成后,在打开命令窗口,输入java就可以看到我们的java已经可以被解析到了。
现在我们就可以写java程序了。
我们在家目录中建立一个文件夹,为一会儿我们写java用。
我创建了一个文件夹aa,又在里面建立了src和bin两个文件夹,然后进入src文件夹,在里面建立了一个后缀名为 .java 的java源文件 Hello.java 然后进行编辑。
javac 是编译,java 是执行。
至此,一个java程序算是执行成功了。
然后我们再写一个,一个类调用另外一个类的方法的实例。
首先说下我准备达到的效果,我准备写一个类Hi.java,里面有一个公共的方法getHi();这个方法可以返回一个字符串 “ Hi ”;
然后我再写一个类Tom.java,里面有主方法main(),这个主方法会获得之前类Hi中的getHi()返回的“Hi” ,然后拼接上一个字符串“Tom”,最后输入 “Hi Tom ”这样的语句。
下面开始写。
这个实例关键就是让你理解 -d 和 -cp 这两个参数的用法的。这里的
-d bin 意思将java源文件编译到bin目录下。
-cp bin 意思是在编译目标java源文件的时候,加载bin目录下已有的.class文件。
好了,Linux先就学这么多吧。
以后的视频和练习还是在windows下学习吧,这个Linux只要以后你对它不陌生就行。以后用的了再来看一下或者百度一下就行了。
纯手敲,如有错误,望大家见谅,也欢迎大佬们批评指正,谢谢!