热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux篇【1】:入门与基本指令详解(上)

目录1、如何使用Xshell远程访问云服务器1.1、方法一1.2、方法二2、云服务器的账号用户管理3、Linux下常用的基本指令3.1、ls指令3.2、pwd指令3

目录

1、如何使用 Xshell 远程访问云服务器

1.1、方法一

1.2、方法二

2、云服务器的账号/用户管理

3、Linux下常用的基本指令

3.1、ls 指令

3.2、pwd 指令

3.3、cd 指令

3.4、touch 指令

3.5、mkdir 指令

3.6、rmdir指令 && rm 指令




1、如何使用 Xshell 远程访问云服务器


1.1、方法一

1.2、方法二





2、云服务器的账号/用户管理

adduser Hjm //用户名为Hjm
passwd Hjm //为用户Hjm设置密码 123456exit // exit 和 logout 均为退出或退出用户,当出现 [C:\~]$ 时,说明未链接云服务器、

    此时,已经在云服务器上创建了一个除 root 之外的用户,当再次打开 Xshell 时,在链接云服务器时,除了 root 用户之外,还可以使用刚创建的用户去登录,即,同一个云服务器可以具有多个用户,可以实现云服务器账号共享,多个用户之间不会产生冲突、

[Hjm@hjmlcc ~]$ whoami //查看当前用户
Hjm

 当新建或者删除用户时,只能通过用户 root 去操作,如下:

[root@hjmlcc ~]# whoami //查看当前正在使用的用户
root
[root@hjmlcc ~]# ls /home //查看该云服务器中存在的所有用户
hjm HJM
[root@hjmlcc ~]# userdel -r HJM //删除该云服务器中的某一个用户
[root@hjmlcc ~]# ls /home //查看该云服务器中存在的所有用户
hjm

当通过用户 root 删除某一个用户后,就不能再通过该用户再次连接该云服务器、


拓展:

一、

XShell 下的复制与粘贴:
复制:  ctrl + insert (有些同学的 insert 需要配合 fn 来按)
粘贴:  shift + insert
ctrl + c / ctrl + v 是不行的、
二、

[root@hjmlcc ~]# uname -r
3.10.0-1160.62.1.el7.x86_64 // Linux 内核版本为 3.10.0





3、Linux下常用的基本指令


3.1、ls 指令


语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件等等,对于文件,将列出文件名以及其他信息,用于显示当前目录下所有的(可见)内容,包括普通文件,子目录和可执行程序等等:

[HJM@hjmlcc code]$ ls
hjm test.c

若当前目录下没有任何可见内容,则显示为:

[HJM@hjmlcc code]$ ls
[HJM@hjmlcc code]$ //此处等待输入指令

    但要注意的是,此时显示的都只是普通文件的文件名,子目录的目录名和可执行程序的名字,显示的内容均属于属性,而使用指令 ls -l 则可以在指令 ls 的基础上再显示出当前目录下所有的(可见)内容的更多的属性,如下所示:

[HJM@hjmlcc code]$ ls -l // -l这就是指令ls的选项
total 4
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 0 Oct 1 14:51 test.c

拓展:

     若在磁盘中创建了一个空文件,则在磁盘中也会占据内存空间,因为,即使该文件是空文件,但该空文件也具有属性数据,包括文件名,文件的创建时间,文件的大小等等,而属性数据也是数据,属性数据需要被保存起来,所以在磁盘中创建一个空文件,是需要占据磁盘的内存空间的,由此可得:文件 = 文件内容 + 文件属性,文件属性本质上也是数据,需要被保存,则在以后所学的文件操作就包括对文件的内容进行操作和对文件的属性进行操作、

常用的指令的选项:
-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  一行只输出一个文件、

[HJM@hjmlcc code]$ touch test.c //在当前目录下创建一个普通文件,
//注意:touch和test.c中间存在一个空格,当使用ls指令查看当前目录下所有的(可见)内容时,普通文件默认为黑色,子目录默认为蓝色,可执行程序默认为绿色、

[HJM@hjmlcc code]$ mkdir hjm //在当前目录下创建一个目录,类似于Windows下的一个文件夹,
//注意:mkdir和hjm中间存在一个空格,当使用ls指令查看当前目录下所有的(可见)内容时,普通文件默认为黑色,子目录默认为蓝色,可执行程序默认为绿色、

[HJM@hjmlcc code]$ pwd // pwd指令可以查看当前所处的目录(路径)、
/home/HJM/code

[HJM@hjmlcc code]$ ls
hjm test.c
[HJM@hjmlcc code]$ ls -a //再显示出当前目录下隐藏的内容(主要指文件),即,以 . 开头的隐藏文件,Window下也存在隐藏文件、
. .. hjm test.c[HJM@hjmlcc code]$ ls
hjm test.c
[HJM@hjmlcc code]$ ls -a
. .. hjm test.c//以下两种方法的效果是一样的、
[HJM@hjmlcc code]$ ls -a -l //再显示出当前目录下隐藏的内容(主要指文件)的更多属性、
total 12
drwxrwxr-x 3 HJM HJM 4096 Oct 1 14:53 .
drwx------ 6 HJM HJM 4096 Oct 1 14:17 ..
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 0 Oct 1 14:51 test.c
[HJM@hjmlcc code]$ ls -al
total 12
drwxrwxr-x 3 HJM HJM 4096 Oct 1 14:53 .
drwx------ 6 HJM HJM 4096 Oct 1 14:17 ..
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 0 Oct 1 14:51 test.c[HJM@hjmlcc code]$ touch .cannotseeme.txt //在当前目录下创建一个以 . 开头的隐藏的普通文件
[HJM@hjmlcc code]$ ls
hjm test.c
[HJM@hjmlcc code]$ ls -l
total 4
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 0 Oct 1 14:51 test.c
[HJM@hjmlcc code]$ ls -a -l
total 12
drwxrwxr-x 3 HJM HJM 4096 Oct 1 15:41 .
drwx------ 6 HJM HJM 4096 Oct 1 14:17 ..
-rw-rw-r-- 1 HJM HJM 0 Oct 1 15:42 .cannotseeme.txt
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 0 Oct 1 14:51 test.c
[HJM@hjmlcc code]$ ls -al
total 12
drwxrwxr-x 3 HJM HJM 4096 Oct 1 15:41 .
drwx------ 6 HJM HJM 4096 Oct 1 14:17 ..
-rw-rw-r-- 1 HJM HJM 0 Oct 1 15:42 .cannotseeme.txt
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 0 Oct 1 14:51 test.c//在任意目录下,都存在两个隐藏文件, .(当前路径) 和 .. (上级路径) 这两者都是以 . 开头的隐藏(普通)文件、

[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ cd .. // cd 可理解为更改路径的意思,更改到某一路径(某一目录之下), .. 代表上级路径、
[HJM@hjmlcc ~]$ pwd
/home/HJM[HJM@hjmlcc code]$ pwd
/home/HJM/code // Windows的路径分隔符是: \ , Linux的路径分隔符为: /
[HJM@hjmlcc code]$ cd ..
[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ cd ..
[HJM@hjmlcc home]$ pwd
/home
[HJM@hjmlcc home]$ cd ..
[HJM@hjmlcc /]$ pwd
/
[HJM@hjmlcc /]$ cd ..
[HJM@hjmlcc /]$ pwd
/ //注意: / 代表根目录, 当已经回退到根目录 / 时,就不能再进行回退了,此时的 / 代表的是根目录,而不是指Linux的路径分隔符、[HJM@hjmlcc /]$ cd /home/HJM/code //直接更改到某一路径(某一目录之下)、
[HJM@hjmlcc code]$ pwd
/home/HJM/code// . 代表当前路径、

[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ touch Test.c
[HJM@hjmlcc code]$ ls
a.out hjm test.c Test.c TEST.c
[HJM@hjmlcc code]$ nano Test.c
[HJM@hjmlcc code]$ cat Test.c //打印出 Test.c 普通文件中的内容、
#include
int main()
{printf("Hello,Linux\n");return 0;
}[HJM@hjmlcc code]$ gcc Test.c //当再一次 gcc Test.c 时,会再次生成一个a.out可执行程序,会把之前生成的a.out可执行程序覆盖掉、
[HJM@hjmlcc code]$ ls
a.out hjm test.c Test.c TEST.c // 此处的a.out覆盖了前一个a.out、
[HJM@hjmlcc code]$ ./a.out // . 代表当前路径,起限定作用, / 为Linux下的路径分隔符,即代表要执行当前路径下的 a.out 可执行程序、
Hello,Linux
[HJM@hjmlcc code]$ //************* Linux下编译C++ **************[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ ll
total 16
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 67 Oct 1 16:08 test.c
-rw-rw-r-- 1 HJM HJM 91 Oct 1 16:32 Test.c
-rw-rw-r-- 1 HJM HJM 0 Oct 1 16:15 TEST.c
-rw-rw-r-- 1 HJM HJM 88 Oct 1 16:39 Test.cpp
[HJM@hjmlcc code]$ clear
[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ ls
hjm test.c Test.c TEST.c Test.cpp
[HJM@hjmlcc code]$ touch test.cpp
[HJM@hjmlcc code]$ ls
hjm test.c Test.c TEST.c test.cpp Test.cpp
[HJM@hjmlcc code]$ nano test.cpp
[HJM@hjmlcc code]$ cat test.cpp
#include
using namespace std;
int main()
{cout<<"Hello,Linux!"<}
[HJM@hjmlcc code]$ gcc test.cpp
/tmp/ccEkRSud.o: In function `main&#39;:
test.cpp:(.text+0xa): undefined reference to `std::cout&#39;
test.cpp:(.text+0xf): undefined reference to `std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)&#39;
test.cpp:(.text+0x14): undefined reference to `std::basic_ostream >& std::endl >(std::basic_ostream >&)&#39;
test.cpp:(.text+0x1c): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))&#39;
/tmp/ccEkRSud.o: In function `__static_initialization_and_destruction_0(int, int)&#39;:
test.cpp:(.text+0x4a): undefined reference to `std::ios_base::Init::Init()&#39;
test.cpp:(.text+0x59): undefined reference to `std::ios_base::Init::~Init()&#39;
collect2: error: ld returned 1 exit status[HJM@hjmlcc code]$ g++ test.cpp
[HJM@hjmlcc code]$ ./a.out
Hello,Linux!
[HJM@hjmlcc code]$

[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ ls
a.out hjm test.c Test.c TEST.c test.cpp Test.cpp
[HJM@hjmlcc code]$ ls -l
total 32
-rwxrwxr-x 1 HJM HJM 8968 Oct 1 16:41 a.out
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 67 Oct 1 16:08 test.c
-rw-rw-r-- 1 HJM HJM 91 Oct 1 16:32 Test.c
-rw-rw-r-- 1 HJM HJM 0 Oct 1 16:15 TEST.c
-rw-rw-r-- 1 HJM HJM 101 Oct 1 16:41 test.cpp
-rw-rw-r-- 1 HJM HJM 88 Oct 1 16:39 Test.cpp
[HJM@hjmlcc code]$ ls -i
656264 a.out 656258 hjm 656257 test.c 656262 Test.c 656261 TEST.c 656260 test.cpp 656263 Test.cpp //在文件系统中会对656264这些数字再进行阐述、
[HJM@hjmlcc code]$ ls -il
total 32
656264 -rwxrwxr-x 1 HJM HJM 8968 Oct 1 16:41 a.out
656258 drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
656257 -rw-rw-r-- 1 HJM HJM 67 Oct 1 16:08 test.c
656262 -rw-rw-r-- 1 HJM HJM 91 Oct 1 16:32 Test.c
656261 -rw-rw-r-- 1 HJM HJM 0 Oct 1 16:15 TEST.c
656260 -rw-rw-r-- 1 HJM HJM 101 Oct 1 16:41 test.cpp
656263 -rw-rw-r-- 1 HJM HJM 88 Oct 1 16:39 Test.cpp
[HJM@hjmlcc code]$

[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ ls -l
total 32
-rwxrwxr-x 1 HJM HJM 8968 Oct 1 16:41 a.out
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 HJM HJM 67 Oct 1 16:08 test.c
-rw-rw-r-- 1 HJM HJM 91 Oct 1 16:32 Test.c
-rw-rw-r-- 1 HJM HJM 0 Oct 1 16:15 TEST.c
-rw-rw-r-- 1 HJM HJM 101 Oct 1 16:41 test.cpp
-rw-rw-r-- 1 HJM HJM 88 Oct 1 16:39 Test.cpp
[HJM@hjmlcc code]$ ls -n
total 32
-rwxrwxr-x 1 1002 1002 8968 Oct 1 16:41 a.out
drwxrwxr-x 2 1002 1002 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 1002 1002 67 Oct 1 16:08 test.c
-rw-rw-r-- 1 1002 1002 91 Oct 1 16:32 Test.c
-rw-rw-r-- 1 1002 1002 0 Oct 1 16:15 TEST.c
-rw-rw-r-- 1 1002 1002 101 Oct 1 16:41 test.cpp
-rw-rw-r-- 1 1002 1002 88 Oct 1 16:39 Test.cpp
[HJM@hjmlcc code]$ ls -n -l //等价于 [HJM@hjmlcc code]$ ls -nl
total 32
-rwxrwxr-x 1 1002 1002 8968 Oct 1 16:41 a.out
drwxrwxr-x 2 1002 1002 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 1002 1002 67 Oct 1 16:08 test.c
-rw-rw-r-- 1 1002 1002 91 Oct 1 16:32 Test.c
-rw-rw-r-- 1 1002 1002 0 Oct 1 16:15 TEST.c
-rw-rw-r-- 1 1002 1002 101 Oct 1 16:41 test.cpp
-rw-rw-r-- 1 1002 1002 88 Oct 1 16:39 Test.cpp
[HJM@hjmlcc code]$ ls -l -n //等价于 [HJM@hjmlcc code]$ ls -ln
total 32
-rwxrwxr-x 1 1002 1002 8968 Oct 1 16:41 a.out
drwxrwxr-x 2 1002 1002 4096 Oct 1 14:53 hjm
-rw-rw-r-- 1 1002 1002 67 Oct 1 16:08 test.c
-rw-rw-r-- 1 1002 1002 91 Oct 1 16:32 Test.c
-rw-rw-r-- 1 1002 1002 0 Oct 1 16:15 TEST.c
-rw-rw-r-- 1 1002 1002 101 Oct 1 16:41 test.cpp
-rw-rw-r-- 1 1002 1002 88 Oct 1 16:39 Test.cpp
[HJM@hjmlcc code]$ //将用户名HJM变成了数字,在Linux系统中,标识一个用户本质上用的是编号进行标识的,使得编号与用户名对应在一起、

[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ ls -F
a.out* hjm/ test.c Test.c TEST.c test.cpp Test.cpp
[HJM@hjmlcc code]$ ls -Fl
total 32
-rwxrwxr-x 1 HJM HJM 8968 Oct 1 16:41 a.out* // 这里的*代表是一个可执行程序(可执行的普通文件)、
drwxrwxr-x 2 HJM HJM 4096 Oct 1 14:53 hjm/ // 这里的/代表是目录、
-rw-rw-r-- 1 HJM HJM 67 Oct 1 16:08 test.c // 什么都不带,则代表的是普通文本文件、
-rw-rw-r-- 1 HJM HJM 91 Oct 1 16:32 Test.c
-rw-rw-r-- 1 HJM HJM 0 Oct 1 16:15 TEST.c
-rw-rw-r-- 1 HJM HJM 101 Oct 1 16:41 test.cpp
-rw-rw-r-- 1 HJM HJM 88 Oct 1 16:39 Test.cpp
[HJM@hjmlcc code]$

https://view.inews.qq.com/k/20221002A00KX800?web_channel=wap&openApp=false//上述是腾讯新闻中的某一个新闻的网址,也叫作URL,其中,view.inews.qq.com为域名,也是腾讯新闻的官网,
//其次,/k/20221002A00KX800?web_channel=wap&openApp=false 中的/也是路径分隔符,而我们又知道,在
//Linux系统下的路径分隔符也是/,由此可知,企业的后端是Linux操作系统、Windows:
D:\微信\WeChat Files\wxid_p9w279f894r222
//由上也可得知: Windows系统下的路径分隔符是\




3.2、pwd 指令


语法 : pwd

功能 :显示用户当前所处的目录(路径),即:查看用户当前所处的目录(路径)、



拓展:

切换用户:

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ su - root //用法:su - 用户名
Password:
Last login: Sat Oct 1 17:41:00 CST 2022 on pts/0
[root@hjmlcc ~]# pwd
/root
[root@hjmlcc ~]# ls
code mytest.c test.c
[root@hjmlcc ~]#




3.3、cd 指令


语法:   cd 目录名

功能:改变工作目录,将当前工作目录改变到指定的目录下、

Linux系统的入口目录是根目录 / ,Linux系统的目录结构本质上是一颗多叉树(Windows系统的目录结构本质上也是多叉树):

    每一个子节点,既可以是一个目录(该目录中可以存在普通文件和目录等等,属于递归式的定义),也可以是普通文件,这颗多叉树的每一个叶子结点一定是一个普通文件或者是是一个空目录,可执行程序本质上也属于普通文件,即,可执行程序又称为可执行的普通文件、


为什么所有的操作系统在进行路径定位时都采用目录的形式呢?

    因为,每一个子节点仅有一个父节点,所以从根目录开始往下,路径一定是唯一的,具有唯一性,也就具有辨别资源所在路径的能力、


   把从根目录开始的,路径具有唯一性的这种路径称为Linux系统下的绝对路径,绝对路径永远有效:

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ cd code
[HJM@hjmlcc code]$ ls
a.out code code1 hjm test.c Test.c TEST.c test.cpp Test.cpp
[HJM@hjmlcc code]$ cd code
[HJM@hjmlcc code]$ ls
[HJM@hjmlcc code]$ pwd
/home/HJM/code/code
[HJM@hjmlcc code]$ touch lcc.c
[HJM@hjmlcc code]$ ls
lcc.c
[HJM@hjmlcc code]$ ls /home/HJM/code/code/lcc.c //其中,/home/HJM/code/code/lcc.c 是绝对路径,并且该绝对路径中的/code/code是合法的,不会造成冲突,绝对路径是相对于根目录 / 的路径、
/home/HJM/code/code/lcc.c
[HJM@hjmlcc code]$

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ cd 104
[HJM@hjmlcc 104]$ pwd
/home/HJM/104
[HJM@hjmlcc 104]$ ls ../code/code/lcc.c //其中,../code/code/lcc.c 为相对路径,并且该绝对路径中的/code/code是合法的,不会造成冲突,相对路径即指,相对于当前所处的路径,比较容易失效、
../code/code/lcc.c
[HJM@hjmlcc 104]$ pwd
/home/HJM/104
[HJM@hjmlcc 104]$ cd .. //返回上级目录
[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ cd code
[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ cd code
[HJM@hjmlcc code]$ pwd
/home/HJM/code/code
[HJM@hjmlcc code]$ ls
lcc.c
[HJM@hjmlcc code]$ //若在平常使用,推荐相对路径---简单,若对某些路径进行添加配置文件,则推荐绝对路径---不会出错、

[HJM@hjmlcc code]$ pwd
/home/HJM/code/code
[HJM@hjmlcc code]$ cd ../.. //本质上使用的就是相对路径、
[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ cd /home/HJM/code/code
[HJM@hjmlcc code]$ pwd
/home/HJM/code/code
[HJM@hjmlcc code]$ cd ../../
[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ cd -
/home/HJM/code/code
[HJM@hjmlcc code]$ cd ../../../
[HJM@hjmlcc home]$ pwd
/home
[HJM@hjmlcc home]$ cd -
/home/HJM/code/code
[HJM@hjmlcc code]$ cd ../../..
[HJM@hjmlcc home]$ pwd
/home
[HJM@hjmlcc home]$ cd /home/HJM/code/code
[HJM@hjmlcc code]$ pwd
/home/HJM/code/code
[HJM@hjmlcc code]$ cd /home
[HJM@hjmlcc home]$ pwd
/home
[HJM@hjmlcc home]$ // cd后面可以跟任何以绝对路径或相对路径构建的路径、
[HJM@hjmlcc home]$ pwd
/home
[HJM@hjmlcc home]$ ls
hjm HJM
[HJM@hjmlcc home]$ cd HJM
[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ cd ..
[HJM@hjmlcc home]$ pwd
/home
[HJM@hjmlcc home]$ cd HJM/
[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$

[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ cd ~ //显示出当前用户的家目录,对于非root用户而言,所谓的家目录即为:/home/XXX(用户名) ,,而对于root用户而言,家目录即为: /root 、
[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ cd code
[HJM@hjmlcc code]$ pwd
/home/HJM/code
[HJM@hjmlcc code]$ cd -
/home/HJM
[HJM@hjmlcc ~]$ cd - //返回到最近一次访问的目录、
/home/HJM/code
[HJM@hjmlcc code]$ cd -
/home/HJM
[HJM@hjmlcc ~]$ cd -
/home/HJM/code
[HJM@hjmlcc code]$

拓展:

除了 root 用户外的其他用户,都存在于 home 目录下面,即 /home/xxx(用户名)、





3.4、touch 指令


语法:   touch [选项]... 文件...

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件,但目前可以先不考虑这些功能,在后期再进行阐述、


常用选项:
-a   或--time=atime或--time=access或--time=use只更改存取时间、
-c   或--no-create  不建立任何文档、
-d    使用指定的日期时间,而非现在的时间、
-f     此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题、
-m   或--time=mtime或--time=modify  只更改变动时间、
-r     把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同、
-t     使用指定的日期时间,而非现在的时间、

[HJM@hjmlcc 104]$ pwd
/home/HJM/104
[HJM@hjmlcc 104]$ ls
105 2 lesson
[HJM@hjmlcc 104]$ touch file.txt //在当前目录下创建一个普通文件,
//注意:touch和file.txt中间存在一个空格,当使用ls指令查看当前目录下所有的(可见)内容时,普通文件默认为黑色,子目录默认为蓝色,可执行程序默认为绿色、
[HJM@hjmlcc 104]$ ls
105 2 file.txt lesson
[HJM@hjmlcc 104]$ touch mytest.c
[HJM@hjmlcc 104]$ ls
105 2 file.txt lesson mytest.c
[HJM@hjmlcc 104]$

拓展1:

    若Linux系统下不存在nano指令,则先切换到root用户(以非root用户为例),然后输入指令:yum install -y nano ,便可装上nano指令,若gcc没安装的话,则执行指令:yum install -y gcc-c++ ,注意:必须在root用户下进行上述操作,则在root和除root之外的用户下都可以使用nano和gcc指令了、



拓展2:

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ ls -l //指令ls -l是指令ll的别名,两者的效果是一样的、
total 32
drwxrwxr-x 4 HJM HJM 4096 Oct 1 20:15 104
-rwxrwxr-x 1 HJM HJM 8360 Oct 1 14:16 a.out
drwxrwxr-x 5 HJM HJM 4096 Oct 1 17:05 code
-rw-rw-r-- 1 HJM HJM 94 Oct 1 10:30 mytest.c
-rw-rw-r-- 1 HJM HJM 0 Oct 1 14:06 test.c
-rw-rw-r-- 1 HJM HJM 99 Oct 1 14:15 Test.c
-rw-rw-r-- 1 HJM HJM 76 Oct 1 14:06 test.cw
[HJM@hjmlcc ~]$ ll
total 32
drwxrwxr-x 4 HJM HJM 4096 Oct 1 20:15 104
-rwxrwxr-x 1 HJM HJM 8360 Oct 1 14:16 a.out
drwxrwxr-x 5 HJM HJM 4096 Oct 1 17:05 code
-rw-rw-r-- 1 HJM HJM 94 Oct 1 10:30 mytest.c
-rw-rw-r-- 1 HJM HJM 0 Oct 1 14:06 test.c
-rw-rw-r-- 1 HJM HJM 99 Oct 1 14:15 Test.c
-rw-rw-r-- 1 HJM HJM 76 Oct 1 14:06 test.cw
[HJM@hjmlcc ~]$




3.5、mkdir 指令


语法:mkdir [选项] dirname...


功能:在当前目录下创建一个名为 &#39;&#39;dirname&#39;&#39; 的目录、


常用选项:


-p :--parents  可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录、

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code LCC lcc.c mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ mkdir LCCHJM
[HJM@hjmlcc ~]$ ls
104 a.out code LCC lcc.c LCCHJM mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ //在当前目录下创建一个目录,类似于Windows下的一个文件夹,
//注意:mkdir和LCCHJM中间存在一个空格,当使用ls指令查看当前目录下所有的(可见)内容时,普通文件默认为黑色,子目录默认为蓝色,可执行程序默认为绿色、

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code LCC lcc.c mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ mkdir LCCHJM
[HJM@hjmlcc ~]$ ls
104 a.out code LCC lcc.c LCCHJM mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ cd LCCHJM
[HJM@hjmlcc LCCHJM]$ ls
[HJM@hjmlcc LCCHJM]$ mkdir -p hjm1/hjm2/hjm3 //在当前目录下创建一串目录,递归建立多个目录、
[HJM@hjmlcc LCCHJM]$ pwd
/home/HJM/LCCHJM
[HJM@hjmlcc LCCHJM]$ ls
hjm1
[HJM@hjmlcc LCCHJM]$ cd hjm1
[HJM@hjmlcc hjm1]$ pwd
/home/HJM/LCCHJM/hjm1
[HJM@hjmlcc hjm1]$ ls
hjm2
[HJM@hjmlcc hjm1]$ cd hjm2
[HJM@hjmlcc hjm2]$ pwd
/home/HJM/LCCHJM/hjm1/hjm2
[HJM@hjmlcc hjm2]$ ls
hjm3
[HJM@hjmlcc hjm2]$ cd hjm3
[HJM@hjmlcc hjm3]$ pwd
/home/HJM/LCCHJM/hjm1/hjm2/hjm3
[HJM@hjmlcc hjm3]$ ls
[HJM@hjmlcc hjm3]$

http://www.ibm.com/developerworks/cn/aix/library/au-badunixhabits.html //参考文档、



3.6、rmdir指令 && rm 指令


rmdir是一个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除目录(空)、


语法: rmdir [-p][dirName]

适用对象:具有当前目录(空)操作权限的所有使用者、

功能:删除空目录、

常用选项:

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除、
rm命令可以同时删除普通文件或目录、
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者、
功能:删除文件或目录、        
常用选项:
-f  即使属性为只读(即写保护),亦直接删除、
-i  删除前逐一询问确认、
-r  删除目录及其下所有文件、 

//rmdir xxx(用户名):只能删除空目录,不常用,并且需要在该被删除的空目录的上一级目录中进行该指令操作、[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code LCC lcc.c LCCHJM mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$ rmdir LCC //LCC目录是空目录,在该空目录LCC的上一级目录HJM中进行的操作、
[HJM@hjmlcc ~]$ ls
104 a.out code lcc.c LCCHJM mytest.c test.c Test.c test.cw
[HJM@hjmlcc ~]$

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code lcc.c LCCHJM
[HJM@hjmlcc ~]$ touch test.c
[HJM@hjmlcc ~]$ ls
104 a.out code lcc.c LCCHJM test.c
[HJM@hjmlcc ~]$ nano test.c
[HJM@hjmlcc ~]$ cat test.c
#include
[HJM@hjmlcc ~]$ rm test.c //删除普通文件,不管该文件是否为空文件,均可删除、
[HJM@hjmlcc ~]$ ls
104 a.out code lcc.c LCCHJM
[HJM@hjmlcc ~]$ //由于可执行程序本质上是可执行的普通文件,所以删除可执行程序也是使用指令rm a.out

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
104 a.out code lcc.c LCCHJM
[HJM@hjmlcc ~]$ mkdir 11
[HJM@hjmlcc ~]$ ls
104 11 a.out code lcc.c LCCHJM
[HJM@hjmlcc ~]$ cd 11
[HJM@hjmlcc 11]$ ls
[HJM@hjmlcc 11]$ mkdir 22
[HJM@hjmlcc 11]$ ls
22
[HJM@hjmlcc 11]$ pwd
/home/HJM/11
[HJM@hjmlcc 11]$ cd ..
[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ rmdir 11
rmdir: failed to remove ‘11’: Directory not empty //不可删除
[HJM@hjmlcc ~]$ rm -r 11 //可删除,删除目录11(非空目录)及其下所有内容,递归删除目录11(非空目录),即使目录11(非空目录)不为空目录,也可以删除掉,但需要在该被删除的目录11(非空目录)的上一级目录HJM中进行该指令操作、
[HJM@hjmlcc ~]$ ls
104 a.out code lcc.c LCCHJM
[HJM@hjmlcc ~]$ //rm -rf 11:在有的地方可能会提示:是否确定要删除,加上f的话,就不会再提示,而是直接删除、
//rm -rf 11 等价于 rm -r -f 11 ,其中,f是force的首字母,强制、
//rm -rf和rm -r,也可以删除普通文件,以后不管是删除普通文件(包括可执行程序)还是目录(包括空和非空目录),都常使用rm -rf指令、//在root用户中,一定不要使用指令rm -rf / ,否则系统可能会挂掉、

[root@hjmlcc ~]# pwd
/root
[root@hjmlcc ~]# ls
a.out code mytest.c test.c
[root@hjmlcc ~]# rm -rf *
[root@hjmlcc ~]# ls
[root@hjmlcc ~]# //rm -rf * 相当于 rm -rf ./* 删除当前目录下的所有内容,*是通配符,和谁都能匹配,所以可以达到全部删除的目的、

拓展:

[HJM@hjmlcc ~]$ pwd
/home/HJM
[HJM@hjmlcc ~]$ ls
code1
[HJM@hjmlcc ~]$ tree code1
code1
`-- code2`-- code32 directories, 0 files
[HJM@hjmlcc ~]$



 


推荐阅读
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文介绍了C函数ispunct()的用法及示例代码。ispunct()函数用于检查传递的字符是否是标点符号,如果是标点符号则返回非零值,否则返回零。示例代码演示了如何使用ispunct()函数来判断字符是否为标点符号。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 本文介绍了一种解决PyQt界面在高分辨率下字体显示不完全的方法。通过设置High_DPI属性或应用自适应字体,可以解决在更高分辨率电脑上字体被控件遮挡的问题。同时,还提供了判断Qt版本和设置字体大小的代码示例。 ... [详细]
author-avatar
爱她一生2502876055
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有