1.操作系统是什么?
是一款进行软硬件zi'yuan'guan
1.ls
ls -l:显示详细信息,包括权限、大小、时间等(长格式显示)→ 看详情

注:4096是大小
ls -a:显示所有文件,包括隐藏文件(以 . 开头的文件) → 看全部(包括隐藏文件(下图红框里的文件))
一个点 .;在linux 中代表的是当前目录;
两个点..;在linux中代表的是上级目录;

常一起用:ls -la 显示所有文件的详细信息
ls -l\root : 显式指定目录下的内容

**注意:**①ll 是ls -l的别名
②\root,这里的 \ 它就叫做根目录
③以d开头的是目录,以-开头的为普通文件类型
ls -d 和 ls -ld 前面的不详细显示自己,后面的详细显示自己;

2.pwd
pwd 显示的是你当前所在的「工作目录」的完整路径,不是某个文件的地址。

3.mkdir 和 touch的区别:
touch:创建文件(普通文件)
mkdir:创建目录(文件夹)
mkdir -p /dir1/dir2/dir3 :可以创建嵌套目录;
在 /tmp 下创建目录
mkdir -p /tmp/newdir/subdir
在 /var 下创建
mkdir -p /var/www/html
4.cd (charge ar)
cd可以更改路径;cd..也就是进入上级目录的意思;cd. 的作用就是显示当前路径;

cd - :跳转到最近的上一次路径;
cd ~ :跳转到家目录;(首次登陆时默认的目录就是家目录)

5.tree
tree后面跟指定目录可以以树状结构呈现linux目录;
多叉树的叶子节点一定是空目录或者是普通文件;

6.删除命令
① rmdir:只删除空目录 (路径必须在要删除目录的上级目录)

② rm test.c :删除普通文件
③ rm -r dir1 :递归删除目录下的所有文件 //但会一直询问你

④ rm -rf dir1 :加了f之后就不会询问了;
⑤ rm -f fire* :这里的*是通配符,匹配任意只要有带有file的文件;
注意:一定不要随便敲 rm -rf / :不会删除根目录,但是会把根目录以后的所有文件全部删除,并且无法撤销;
7. man命令 (yum install -y man-pages)
可以调出linux系统内置的使用手册;
man 3 printf : 意思是查C语言中的printf函数(在linux中printf也是一个命令)

man 2 fork :意思是查2号手册的创建进程;
默认查的是一号手册;
8.nano(yum install -y nano)
nano:是Linux环境下的记事本,可以直接打开test.c,也就是普通文件;推出按ctrl x;
使用方式如下

步骤1:编译时指定文件名
gcc test.c -o mytest # 👈 这里就指定了可执行文件名叫 mytest,
步骤2:运行时直接执行
./mytest # 👈 直接运行可执行文件
注意 : ①-o 是 output(输出) 的缩写,用于指定生成的可执行文件的名称。
②cat可以用来查看test.c中的文件内容;

9.cp
作用是拷贝;
cp test.c hello.c :意思是拷贝 test.c 给 hello.c

cp test.c ../ :意思是把test.c文件拷贝的上级目录


呢么怎么拷贝到指定目录呢?
cp -r test.c dir ,这样就可以将test.c拷贝到指定的dir目录下了;

值得注意的是,Linux同一个目录不允许出现相同文件名的文件;
10.mv
作用:① 对文件进行重命名;
mv dir mydir ;就是把文件名从dir改为mydir; 
②剪切文件目录;下图的hello.c本来是在112_class文件中,但是使用命令 mv hello.c ../ ,也就是将hello.c文件移动到了其上级目录;

11.cat
显示文件内容,一般用来打印短文件,<100行
cat -n hello.c,可以给每一行代码带上编号;

12.tac
逆序打印文件;但就是不能再使用 -n输出行号了;

13.echo
起打印作用,在显示器上打印,你敲什么显示器就会显示什么,
又因为Linux下一切皆文件,所以你 键盘、显示器都是文件,所以你其实是在往键盘这个文件中写东西,然后显示器这个文件会自动拷贝一份你写的文件,然后输出;
这样看来echo好像没什么用,其实不然,比如你前面用nano打开的写的文件你需要补充一点短小的内容,就可以用echo "hello"> hello.c 就做到了吧hello写进hello.c文件中,如果没有hello.c这个文件会直接创建;这样的一个过程实现了"输出重定向"

输出重定向:>hello.c 每次写入都是从头开始,并且将原来的内容清空,从头写入;
如果不想被清空,就要使用>>符号 注意:echo自带换行;

呢既然有了输出重定向(输出"显示屏" 变成输出在**"text.txt"**文件中),呢是不是应该也有输入重定向呢?
答案是有的,就是将原来应该从键盘上得到的内容,从文件中获取;
即 cat < text.txt,就会显示txt中的内容,虽然看起来是一样的,但是底层不一行,具体可以参考链接下的我的另一篇文章;
14.大文件查看方式
①查看文件开头:
head test.txt;
②查看文件结尾:
tail test.txt
③只想查看文件的前n行
head -n5 test.txt;
值得注意的是,more命令让打印满一屏就不再打印了,但是能向下翻阅,使用less可以上下翻阅;
使用方法就是 more +文件名

④查看区间的文件内容[2,6]
head -6 test.txt | tail -5; (中间的这个|叫做管道)

14.wc -l
用于统计输出了多少行:

15.与时间有关的指令
date :直接显示英文格式的时间
date +"%Y -%m -%d -%H -%M -%S";以中文的格式显示时间;
date +%s :让时间以时间戳(统计从1970年1月1日凌晨到现在过去了多好秒)的形式显示

如何进行时间戳转时间呢?
date +"%Y -%m -%d -%H -%M -%S" -d &

16.cal(calender:日历)
cal 2026 :在命令行显示任意年份的日期,早期因为用linux的时候程序员没法看时间用的,现在大家都有手机了,就用不到了;

17.find (很重要!)
find /home/gy/112_class-name: name后面指定文件名,前面的是路径,然后查找这个路径下有没有此文件;
find /home/gy/112_class -name test.c -o -name test.cpp; 查找该路径下有没有文件名为test.c的文件或者test.cpp的文件;

18.alias(给长的命令起别名)
alias aa='ls -a -l' ;就是给ls -a -l取别名为aa;

19.bin ls 和 ls 的区别
lls :带颜色
ls:不带颜色