显示用户当前所在的目录
which 指令 可以查看指令在系统下的路径
alias可以给指令起别名 比如 alias mycmd=‘ls -l -a’
ll是ls -l 的别名
第一个 / 代表根目录
其他的 / 是Linux下的数据分隔符
通过路径的方式找到一个文件是因为:任何一个节点,都只有一个父节点
对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
Linux中,以 . 开头的文件,称为隐藏文件
. 代表当前目录,一个可执行程序要执行 要 加载到内存,首先得找到它在哪,直接 a.out 是不行的,需要 ./a.out
. . 代表上级目录,可以提通过cd … 进行目录的回退
我们用到的指令,工具,可执行程序 本质就是可执行程序(C、C++、其他语言)写的
在当前目录下创建一个名为 “ ” 的目录
mkdir –p test/test1 : 递归建立多个目录
tree 目录(比如叫d) 代表以树状结构把以d为入口以下所有叶子节点全部显示出来
如果tree命令用不了,说明系统默认没有装tree命令
root账号安装:yum install -y tree
如果是普通用户可以su 变成root 再装
如果tree / 碰到一直刷屏的情况可以ctrl+c终止,ctrl+c可以终止命令行中的错误输入或失控输入
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
创建一个空文件,这个文件也会占据磁盘空间,文件包含有内容和属性(本质都是数据),对文件的操作分为:对内容操作/对属性操作(ls就是对属性进行操作)
stat test.c 可以查看文件的更多属性
touch 不存在的文件是新建,如果是已存在的文件,会将一个文件修改,更改,访问等时间改成最新的
linux中有不同账号的家目录
cd ~直接进入当前用户所对应的家目录中
cd -进入最近一次所访问的目录
cd … : 返回上级目录
cd /home/111/test/ : 绝对路径
cd …/day02/ : 相对路径
rmdir 删除空目录
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm命令可以同时删除文件或目录
-f 即使文件属性为只读(即写保护),直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
要把当前目录的所有东西都清除rm -rf ./*
这个*对应的是匹配任意文件,./是当前
访问Linux手册页的命令是
man 语法: man [选项] 命令
如果发现man查找不了,是因为云服务器默认是生产环境,跟开发相关的默认是没有装的。要装可以yum install -y man-pages
要查c++、Java等语言建议直接去官网查
用小的文本编辑器可以在linux中写一些东西,相当于记事本
先创建一个源文件,然后nano test.c打开
nano 安装 yum install -y nano
复制文件或目录
cp test.c test/ 拷贝test.c到test这个目录下,要将test.c以另一个名字放到test的话在/后面加名字
用来移动文件或者将文件改名
查看目标文件的内容,tac可以倒着看
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
cat还有一种用法:后面不跟文件的时候
直接cat跟回车,默认从键盘文件上读取内容,然后显示出来,ctrl+c退出
输入重定向:
查看文本的内容少适合使用cat
功能类似 cat,不过more是查看文本内容多的情况
//在命令行输入可以创建一个大文件
cnt=0; while [ $cnt -le 1000 ]; do echo "hello linux,hello $cnt";let cnt++; done > big.txt
缺点是只能向下查看不能向上查看,更推荐less命令
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
-n<行数> 显示的行数
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件
-n<行数> 显示的行数
想查看中间部分的话:
wc指令可以统计文件的字符数和行数
wc -l big.txt.统计行数
行过滤工具
在文件中搜索字符串,将找到的行打印出来
grep ‘999’ big.txt
后面还可以跟文件,在多个文件里搜索
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
[Tab]按键—具有『命令补全』和『档案补齐』的功能
history可以查看历史命令
ctrl+r可以搜索历史命令,方向键上翻也可以
Alt+Enter可以打开全屏
ctrl+c 让当前的程序『停掉』
ctrl+d 退出登录
将目录或文件压缩成zip格式
-r 递 归处理,将指定目录下的所有文件和子目录一并处理
将当前目录下文件压缩:zip test.zip ./*
解压到上级目录的tmp目录:unzip test.zip -d . ./tmp
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file
如果加 j 参数,则以 .tar.bz2 来作为附档名
tar -czf test.tgz ./* 将当前目录下文件压缩
tar -xzf test.tgz 解压
用来获取电脑和操作系统的相关信息
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
echo指令可以向显示屏打印echo后跟的字符串,printf也是可以的
echo指令可以通过管道和bc指令结合来进行浮点运算
如果想打印到文件中,可以通过>
echo “hello linux” > test.txt
输出重定向:
Linux下一切皆文件
为什么?
硬件在物理上是硬件,文件就是文件,两个是不同的
既然是不同的,那么对于硬件有硬件的操作方法,对于文件就要有文件的操作方法?
电脑上的大部分设备(键盘、磁盘、话筒等)在计算机中要么是我想从它身上读,要么是我想从它身上写,也就是输入输出,对文件的操作也是输入输出,设备在物理上是不一样的,但是在操作思想操作方法上都是要输入输出的,所以Linux要使用一种统一的思想来看待所有的设备,当以一切皆文件的思想认识所有设备,就可以设计出统一的方法来处理所有设备
创建文件可以touch test.txt 也可以 >test.txt(也是清空文件的意思)
追加重定向:
echo “hello linux” >> test.txt
不会清空原始文件,而是会追加内容
写到文件里
#include
int main()
{
FILE*fp=fopen("test.txt","a");// append追加
if(fp==NULL) return 1;
fprintf(fp,"hello: %d,hi: %s\n",12345,"fp");
fclose(fp);
return 0;
}
写到显示器
#include
int main()
{
FILE*fp=fopen("test.txt","a");// append追加
if(fp==NULL) return 1;
fprintf(stdout,"hello: %d,hi: %s\n",12345,"fp");
fclose(fp);
return 0;
}