前面我们已经学习了关于云服务器搭建的过程,下面,我们来正式开始操作指令。
开始之前,我们来了解几个概念。
操作系统处于软硬件之间,起承上启下的效果。对上给应用提供接口,所以软件可以被编写出来。
操作系统是管理软件,管理软硬件 对上:提供良好稳定安全的运行环境 对下:管理软硬件资源
学习命令行指令是我们学习操作系统非常重要的手段
在发展上,我们是先有键盘然后才有鼠标的,这也就意味着先有的命令行式才有的图形界面化式
下面,我们来登录我们的Xshell
目录和文件是在磁盘上建立的,空文件是在磁盘上占用空间的(文件包括文件内容和文件的各种属性/元数据)即使本身没有内容,文件的各种属性也要占用空间。既文件等于文件内容数据加上文件属性数据
目录——>文件夹——>保存其他文件
登录指令 ssh root@+IP
现在,输入我们设置的密码
登录完成
如果要退出的话:Ctrl+d
怎么去查看当前的用户❓whoami
[root@VM-8-3-centos home]# whoami
root
语法: pwd 功能:显示用户当前所在的目录
[root@VM-8-3-centos ~]# pwd
//显示当前用户所在的路径
/root
在Windows下,我们很容易就能够找到路径:在这里\就是路径分隔符
而在Linux下,是以/作为路径分隔符。
那为什么要以路径标识一个文件❓从根目录到所在文件的路径具有唯一性
说到路径,这就要说到绝对路径和相对路径了
绝对路径:从根目录开始,依次按树状结构向后进行查找定义称为绝对路径 相对路径:相对于当前所处的路径,当前的相对位置查找所处的位置
语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
[root@VM-8-3-centos ~]# ls
//显示当前路径下的文件或目录名称
106 a dir test.c thj
而一条命名除了本身,还可以携带选项
常用选项: -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d 将目录象文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录 -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件 -k 以 k 字节的形式表示文件的大小。 ls –alk 指定文件 -l 列出文件的详细信息。 -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID) -F 在每个文件名后附上一个字符以说明该文件的类型, “*”表示可执行的普通文件; “/”表示目录; “@”表 示符号链接; “|”表示FIFOs; “=”表示套接字(sockets)。(目录类型识别) -r 对目录反向排序。 -t 以时间排序。 -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件) -R 列出所有子目录下的文件。 (递归) -1 一行只输出一个文件。
这里的携带选项比较多,我们可以选几个出来看一看。
[root@VM-8-3-centos ~]# ls -l
//显示当前路径下的文件或者目录的更详细的属性信息
total 16
drwxr-xr-x 2 root root 4096 Sep 18 12:28 106
drwxr-xr-x 3 root root 4096 Sep 18 12:11 a
-rw-r--r-- 1 root root 0 Sep 17 19:32 dir
-rw-r--r-- 1 root root 105 Sep 17 23:08 test.c
drwxr-xr-x 3 root root 4096 Sep 19 09:56 thj
[root@VM-8-3-centos ~]# ls -al
total 92
dr-xr-x---. 11 root root 4096 Sep 19 10:04 .
dr-xr-xr-x. 20 root root 4096 Sep 19 15:31 ..
drwxr-xr-x 3 root root 4096 Sep 19 15:28 106
drwxr-xr-x 3 root root 4096 Sep 18 12:11 a
-rw------- 1 root root 13170 Sep 19 15:31 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
drwxr-xr-x 3 root root 4096 Sep 6 23:14 .cache
drwxr-xr-x 3 root root 4096 Sep 6 23:14 .config
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
-rw-r--r-- 1 root root 0 Sep 17 19:32 dir
-rw-r--r-- 1 root root 0 Sep 17 19:27 .file
drwxr-xr-x 2 root root 4096 Sep 17 19:33 .hello
drwxr-xr-x 2 root root 4096 Jul 25 17:53 .pip
-rw-r--r-- 1 root root 73 Sep 6 22:36 .pydistutils.cfg
drwx------ 2 root root 4096 Sep 6 22:36 .ssh
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
-rw-r--r-- 1 root root 105 Sep 17 23:08 test.c
我们看到ls如果带-a选项,会出现一个点和两个点。在这里
一个点表示当前路径,两个点表示上级路径。比如下面的cd …返回上级路径。
在Linux中,以点开头的文件我们叫做隐藏文件 ls -a:显示所有文件,包括隐藏文件。也就是说,ls不显示隐藏文件
其实,也就相当于windows下的查看隐藏文件
除ls - l之外,linux下还有特定的指令:ll显示的结果是一样的
而对于ls -Rl,就是展开子目录下的文件
[root@VM-8-3-centos ~]# ls -Rl
.:
total 16
drwxr-xr-x 3 root root 4096 Sep 19 15:28 106
-rw-r--r-- 1 root root 0 Sep 19 16:13 106.txt
drwxr-xr-x 3 root root 4096 Sep 18 12:11 a
-rw-r--r-- 1 root root 0 Sep 17 19:32 dir
-rw-r--r-- 1 root root 105 Sep 17 23:08 test.c
drwxr-xr-x 3 root root 4096 Sep 19 09:56 thj
./106:
total 4
drwxr-xr-x 2 root root 4096 Sep 19 15:28 106
./106/106:
total 0
./a:
total 4
drwxr-xr-x 3 root root 4096 Sep 17 23:10 b
./a/b:
total 4
drwxr-xr-x 3 root root 4096 Sep 17 23:10 c
./a/b/c:
total 4
drwxr-xr-x 2 root root 4096 Sep 17 23:10 d
./a/b/c/d:
total 0
./thj:
total 4
drwxr-xr-x 2 root root 4096 Sep 19 10:04 test
./thj/test:
total 16
-rwxr-xr-x 1 root root 8968 Sep 19 09:58 a.out
-rw-r--r-- 1 root root 99 Sep 19 10:04 test.cpp
cd 指令,在Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
类似于树形结构,分为叶子节点和路上节点。对于叶子节点,既最后一层,可以有普通文件或者空目录,而路上节点只能是目录。
说到这里,我们可以通过指令tree .(安装命令: yum install -y tree)来显示树状目录
语法:cd 目录名 功能:改变工作目录。将当前工作目录改变到指定的目录下。 举例:
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
cd就简单的就是带上你想去的路径
[root@VM-8-3-centos ~]# cd 106
//切换路径,进入不同的路径下操作
[root@VM-8-3-centos 106]# pwd
/root/106
cd…回退上级路径(如果一直回退,最终会无法回退,只会到根目录/)
[root@VM-8-3-centos ~]# pwd
/root
[root@VM-8-3-centos ~]# cd ..
//返回到根目录
[root@VM-8-3-centos /]# pwd
/
[root@VM-8-3-centos /]#
下面我们来看一看cd -指令:进入当前用户的工作目录。即默认登陆所处的目录(这里我提前登录到了自己创建的用户,自己创建了不止一个用户哟)
我们先进入一个目录,然后进行cd -,就会返回到最近的访问目录,然后在cd -,就又会返回到刚刚进入的目录。也就是说,会进行来回切换。
touch是一个Linux下创建普通文件的命令
语法:touch [选项]… 文件… 功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。 常用选项:
-a 或–time=atime或–time=access或–time=use只更改存取时间。 -c 或–no-create 不建立任何文档。 -d 使用指定的日期时间,而非现在的时间。 -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 -m 或–time=mtime或–time=modify 只更改变动时间。 -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 -t 使用指定的日期时间,而非现在的时间。
除此之外,我们还可以去查看文件时间
查看时间之外我们可以利用touch去更新时间:
语法: mkdir [选项] dirname… 功能:在当前目录下创建一个名为 “dirname”的目录 常用选项: -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
mkdir只能创建一个空目录
想创建一串路径需要带-p,最后我们来看看是否成功了:
我们也可以创建一个空的目录:
rmdir是一个与mkdir相对应的命令。 mkdir是建立目录,而rmdir是删除命令。所以rmdir是用来删除空目录的。
语法: rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
rm默认删除普通文件
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。rm命令可以同时删除文件或目录
语法: rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
删库跑路:rm -rf /
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是
man 语法: man [选项] 命令
开始之前,记得确认自己是否有安装man手册(在root用户下:yum install -y man-pages)
常用选项
1 是普通的命令 2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件) 3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件 5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义 6 是给游戏留的,由各个游戏自己定义 7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明 8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
举个简单的例子:
[root@VM-8-3-centos test]# man 3 printf
[root@VM-8-3-centos test]#
语法: cp [选项] 源文件或目录 目标文件或目录
cp[选项] src dest
功能: 拷贝文件或目录(拷贝不是剪切)
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户.同rm
[root@VM-8-3-centos test]# tree .
.
|-- cp_file
| `-- file.txt
|-- file1.txt
|-- file2.txt
|-- file3.txt
|-- file.txt
`-- toot4
1 directory, 6 files
[root@VM-8-3-centos test]# cp file1.txt cp_file/
[root@VM-8-3-centos test]# cp -i file1.txt cp_file/
cp: overwrite ‘cp_file/file1.txt’? n
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理