目录
5. ls -l ——以列表形式打印该目录下文件的属性编辑
2. nano test.c 进入test.c文件进行代码编写
一,前提
1. 服务器: 一台云服务器(阿里云先嫖一个月),本文配置选centos7.6。
2. 重设root密码:当我们购买好云服务器后(这里以阿里云为例),重置为较为复杂的密码(我们拷贝一份所买云服务器的公网IP)。
3. 下载Xshell: 方便远程访问服务器
4. 安装Xshell:跟着默认走就行,安装成功后开始
(注:XShell 下的复制粘贴:
二, 在root身份下,管理用户
目的:作为小白的我们,root身份权限太大了,出错容易导致服务器崩溃,所以需要创建子用户。
1. whoami——判断身份
2. 创建用户
步骤如下:
3. 销毁用户
步骤如下:
三,文件增,删,移动指令
1. pwd——查看路径
2. ls ——打开当前目录
我们如果发现没有出现目录,那是因为内部没有创建文件,所以就显示没有。
3. touch——创建文件
touch [文件名]
4. nano——打开文件
比如:这里有一个test.c文件,我们打开指令是:
用法: nano test.c
(注意:如果一次使用nano 会发现找不到文件,我们需要切换root身份去输入
Ubuntu / Debian:
apt-get install nano -y
CentOS / Fedora:
yum -y install nano
等待安装成功即可。)
5. ls -l ——以列表形式打印该目录下文件的属性
6. ls -a ——显示隐藏文件
(注意:linux不是通过文件名的后缀进行文件类型区分,而是文件属性开头的第一个字母,-表示普通文件,d表示目录文件)
-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 一行只输出一个文件。
7. cd ——更改路径
1. cd + 新路径(绝对路径)
2. 通过回退机制, cd + .. (相对路径)
这里用上我们前面发现的"." ''..''的隐藏文件
总结:.与..这两个隐藏文件每个目录下都会存在,以便于我们回退路径——当然我们回退到根目录下就不能再回退了。
其他的指令:
cd /home/litao/linux/ : 绝对路径 ————从根目录开始的索引(唯一性)cd ../day02/ : 相对路径 ————以当前目录开始索引 (多样性)cd ~ :进入用户家目(root用户,对应的工作用户一定是root;普通用户,对应的一定是/home/xxxx)cd - :返回 最近访问目录
8. 写一段简单的c程序
1. 创建一个test.c 文件
touch test.c // 感兴趣可以 ls 验证一下
2. nano test.c 进入test.c文件进行代码编写
3. 执行生成的可执行文件
9. which + 指令 ——找到指令所在的路径
这里我们不禁会想,指令有其路径,那么一定有他的文件。 指令本身是linux自带的可执行程序,那么指令也是文件。
这里我们顺便了解一下alias
1. alias ——取别名
功能:将复杂的指令修改,方便使用。
作用周期:登陆修改持续到退出服务器,退出即重置修改,一方面原因是防止指令名污染
10 . touch 指令
语法: touch [选项] [文件名]
功能:
1. 创建普通文件,同时记录创建时间。
2. 更新创建时间和修改时间。
-a 或 --time=atime 或 --time=access 或 --time=use 只更改存取时间。-c 或 --no-create 不建立任何文档。-d 使用指定的日期时间,而非现在的时间。-f 此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题。-m 或 --time=mtime 或 --time=modify 只更改变动时间。-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-t 使用指定的日期时间,而非现在的时间
11. mkdir —— 创建目录
-p , --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在 , 加上此选项后 , 系统将自动建立好那些尚不存在的目录 , 即一次可以建立 多个目录 ;
如:
图中操作,我们用到了tree -a的操作,这个不是linux默认的指令,需要安装。详细步骤可以参考这位大佬的文章:(3条消息) Linux下tree命令安装及使用_安装tree命令_wangqingchuan92的博客-CSDN博客
12. rmdir & rm
1. rmdir ——删除空目录
-p 当子目录被删除后如果父目录也变成空目录的话,就连带 父目录 一起删除。
2. rm——删库跑路
-f 即使文件属性为只读 ( 即写保护 ) ,亦 直接 删除文件(无法删除目录)。-i 删除前逐一询问确认-r 删除目录及其下所有文件(递归删除)
(1) rm -r
(2) rm -rf
13 . man——手册指令
我们知道在过去我们需要查某些库函数,我们都会去网上或者是MSDN上查,而在linux 上我们可以问这个man。
一般我们需要去root 身份下输入指令安装:(centos7.6)
yum intstall -y man-ages
假如说我们想查询 C语言的printf函数使用:
因此 我们查找手册时需要指定对应的手册页数。
14. cp —— 拷贝指令
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在-i 或 --interactive 覆盖文件之前先询问用户-r 递归处理,将指定目录下的 文件与子目录一并处理 。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
1. 拷贝单个文件
2. 拷贝目录 cp -rf
-r :是递归的意思,-f是强制的意思跟前面的删除目录意思一致
15. mv——剪切
功能:
1. 移动文件
语法:mv [文件名或者目录] [路径]
2. 对文件重命名
语法:mv [文件或者目录名] [新的文件名或者目录名]
四, 查看,文件处理指令
16. 查看指令
1. cat
语法:cat [文件] 或者是 cat 不加文件(数据输入是键盘也就是标准输入)
功能:只查看文件
缺点:文件一次性全部输出。
常见选项:
- -b 对非空输出行编号
- -n 对输出的所有行编号
- -s 不输出多行空行
(注: tac 指令——逆序输出内容,cat指令——正序输出内容)
2. more 指令
跟cat类似,具有查看功能,但more 能分批查看。
缺点:只能下翻不能回头
常见选项:
- -n 对输出的所有行编号, 比如:-10,一次输出10行,回车键再显示下面的(默认设置,是填满整个页面)
- q 退出more
3. less 指令(推荐)
语法:less [参数] 文件名
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- q:quit (退出查看)
4. 总结
当我们查看比较少的内容时,可以使用cat 打印出来; 查看比较大的文件时,如查看日志,别人大量代码时,我们用 more / less,其中Less更方便,推荐用less。
休息一下
17. 局部查看
1. head ——查看前面10(默认)行内容
语法: head -n [文件名]
2. tail —— 查看后10(默认)行内容
语法: tail -n [文件名]
3. 查看中间数据
前提须知——重定向
了解:输入,输出,追加重定向
假设有10行数据,我想要看3到5行的数据。
方法一: 提取1~5的数据,重定向到新文件中,然后我们取后2行数据;
方法二:通过数据管道
管道传数据可以灵活组合(流水线功能)。比如:cat -n hi.txt | head -5 | tail -2
18.时间相关的指令
date显示
date 用法: date [OPTION]... [+FORMAT]
常见选项:
- %H : 小时(00..23)
- %M : 分钟(00..59)
- %S : 秒(00..61)
- %X : 相当于 %H:%M:%S
- %d : 日 (01..31)
- %m : 月份 (01..12)
- %Y : 完整年份 (0000..9999)
- %F : 相当于 %Y-%m-%d
2.在设定时间方面
- date -s //设置当前时间,只有root权限才能设置,其他只能查看。
- date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
- date -s 01:01:01 //设置具体时间,不会对日期做更改
- date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
- date -s “01:01:01 20080523″ //这样可以设置全部时间
- date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
- date -s “20080523 01:01:01″ //这样可以设置全部时间
3.时间戳
19. cal —— 日历指令
功能: 查看日期
语法: cal [参数][月][年]
常见搭配:
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
比如:
cal -y 2023
20. find——查找文件(重要)
语法: find [选项] [文件名]
功能:从文件树中寻找目标文件,可能访问磁盘。
特点:
- Linux下find命令在目录结构中搜索文件,并执行指定的操作。
- Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
- 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
- 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)
这里仅了解一个常见的用法:
find -name [文件名]
21. grep——文件行查找指令
语法: grep [选项] “字符串” 文件名
功能: 从文件中查找符合条件的行,并输出出来
常见选项:
- -i :忽略大小写的不同,所以大小写视为相同
- -n :顺便输出行号
- -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
借用正则表达式
22. zip & unzip
1. zip —— 压缩
语法: zip [选项] [压缩名+zip] [文件名或者目录]
实践:
2. unzip —— 解压
语法:
1. unzip [压缩文件名]
2. unzip [压缩文件名] -d [指定解压到地址]
23. tar ——打包 & 解包
1. 打包与压缩的区别
打包:把一堆文件或者目录,集合在一个文件中,大小不改变。
压缩:通过压缩算法将文件进行压缩,大小可能是原来的一半甚至是更少。
选项:
简单用法:
2. 打包: tar -czf [打包名压缩名] [目标文件]
3. 解包: tar -xzf [文件名.tgz] -C [目录或路径]
24. 热键
结语
本小节就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区评论;如果给小伙伴带来一些收获请留下你的小赞,你的点赞和关注将会成为博主创作的动力。