目录
前言
一、操作系统
二、基本指令
1.ls
2.mkdir
3.cd
4.touch filename
5.whoami
6.stat
7.rm filename
8.man
9.cp指令
10.mv指令
11.cat
12.wc
13.more
14.less 按上下键逐行显示 分批显示
15.head命令
16.tail命令
17.统计文件的行数 wc -l
18.date命令 查看时间
19.cal 查看日历
19.sort
21.which
22.whereis
23.alias 起别名
23.grep文本行过滤工具
24.zip/unzip指令
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
操作系统存在的意义:操作系统对软硬件进行合理管理,以达到为上层用户提供良好的,稳定的,安全的运行环境的目的。
显示当前目录下的文件列表(包括目录,普通文本文件),只显示文件名。
命令选项:ls -l
以list的形式,显示文件更多的属性
ls -l -a // ls -la
命令选项:显示隐藏文件
在linux下,文件/目录以 .开头,就是一个隐藏文件
在windows创建一个文件 这个文件在磁盘中存储,即使是空文件,文件存在属性数据,所以需要占据磁盘空间的大小。文件==内容+属性
在当前路径下,创建一个目录/文件夹
语法: cd 目录
进入指定的目录
# .当前路径
# ..上级路径
windows下:D:\sust2A_\test.c --wins下的路径,:\ 路径分隔符
linux下: /home/lib/test.c --linux下的路径, /路径分隔符
linux中 / 为linux的根目录
windows下:文件夹可以有新的文件夹
linux:目录里面可以有新的目录,linux的目录结构,整体是一个多叉树的样子
windows下找一个文件夹或者文件,用路径去定位,Linux也是如此,因为路径具备唯一性
/usr/lib
/home/bit/test.c --从根目录开始,定位文件的路径,称为绝对路径
/usr/bin/me.txt /usr/lib/you.txt 假设当前是在bin目录, ../lib/you.txt --相对路径 相对于你当前所处的路径 如果当前路径变了,无法找到
绝对路径:在哪里都可以找到,但是麻烦,一般是在某些配置文件中,进行对某种文件进行配置的时候采用
相对路径:相对路径用起来简单,后续指令操作的时候,常用的路径定位方案
cd ~ :直接进入当前用户(whoami)的家目录
windows里面的家目录:C:\用户\user
cd - :回到最近上一次所处的路径
在当前路径下,创建指定的普通文件
touch ../test.c 在上级路径下,创建指定的普通文件
查看当前的用户
查看文件的所有的属性
任何一个文件,都会有三种时间,Access time Modify time Change time
只能删除空目录
rm -r 删除目录及其下所有文件
rm -f (force) 强制删除
rm-rf ./* 删除当前路径下的所有内容
查找系统调用接口
安装man指令 yum install -y man-pages
cp filename dir
cp -r dir 拷贝整体文件夹和里面的文件
cp -f (force)强制执行
mv src(文件或目录) dst(一定是一个目录)
mv file.txt name.txt //文件重命名
mv name.txt ../newname.txt //文件剪切+重命名
mv name.txt .. //文件剪切(后面跟的是路径)
如何看待工作目录:默认登录linux,所处的目录就是家目录 /home/xxx ;root->/root。普通用户一般而言只能在自己的家目录下畅通无阻
显示文本内容
echo 输出重定向 echo "hello" 显示到显示器上(向显示器打印,可以理解成为向显示器写入,可以把显示器也看成一种“文件”,C程序获取数据scanf,cin,都是从键盘获取,也可以看成是一种文件)
echo "字符串" >文件名 添加字符串到文件中
echo "aaa" >mylog.txt 输出重定向,如果目标文件不存在,会自动创建,并把“aaa"添加,并把本来应该显示到显示器上的文本,写入到文件中(覆盖以前的内容)
echo "bit tech">>mylog.txt //追加重定向,不断的向目标文件新增内容
cat < mylog.txt 输入重定向
cat 后面不跟文件,输入什么打印什么
wl -l mylog.txt 统计文件有多少行
默认按照屏幕大小显示文本内容
-N 显示每行的行号
head -5 mylog.txt 打印文本的前5行 head mylog.txt 打印文本的前10行 (默认)
head -n mylog.txt 打印文本的前n行
tail -3 mylog.txt 打印文本的后3行
tail -n mylog.txt 打印文本的后n行
// cat mylog.txt | wc -l 显示文件并统计文件的行数
命令行管道 | 管道 有入口 也有出口 cat mylog,txt 管道 wc -l cat输出的数据输入到管道 wc从管道中读取数据
如果想提取文件的500 - 520行,即文件的中间 cat mylog.txt | head -520 | tail -20 | wc-l
取mylog中的前520行,再取前520行的后20行,最后再统计
管道的作用就是级联多个命令 ,让命令组合完成批量化文本处理
date +%s 显示时间戳 格林威治时间 1970年到现在累计的秒数
date -d @时间戳 转化为年月日显示
daye +%Y-%m-%d:%H:%M:%S -d %时间戳 转化为当前格式的时间数据
cal -3 查看本月 上月 下一月的时间
sort my.txt 对文本做升序排序
sort -r my.txt 对文本做降序排序
sort my.txt | uniq 去重 把相同的文本去掉
sort mt.txt | uniq | wc -l 统计不同的行有多少行
20.find命令 -name
find pathname -options
用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)
alias myls = 'ls -a -l -i -n' 执行myls 和后面的作用相同
grep 'a' 文件名 显示出所有带a的行
grep -n 'a' 文件名 显示出带行号的所有带a的行
>my.txt 清空文件 (空 重定向到文件)
grep -v 'a' 文件名打印不带a
grep -i 'a' 文件名 不区分大小写的打印a
打包并压缩 打包 所有的东西装在一起 防止丢失 压缩 传输更多的文件
zip dst src
zip -r 文件夹.zip 文件夹名 压缩
unzip 文件名.zip 解压文件夹
25.tar指令 :打包、解包,不打开它,直接看内容
tar[-cxtzjvf] 文件与目录 ...参数
-c 简历一个压缩文件的参数指令
-x 解开一个压缩文件的参数指令
-t查看tarfile中的文件
-z是否同时具有gzip属性
-v压缩的过程显示文件
-f使用文档名
-C 解压到指定目录
范例一:将整个 /etc 目录下的文件全部打包成为 `/tmp/etc.tar`
[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
上述指令在执行的时候,会显示一个警告讯息:
『`tar: Removing leading `/" from member names`』那是关於绝对路径的特殊设定。
范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数了!这很重要的!
范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!
范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home
范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -
这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
这分别代表 standard output, standard input 与管线命令啦!