Linux基本指令(上)【Linux系统编程】
指令本质上就是可执行程序,和我们自己写的代码编译好的程序没有本质区别。指令是在系统中特定的路径下存在的,一定是某种可执行程序。
本文将开启Linux操作系统学习新篇章,欢迎与博主一起交流学习。
目录
一、ls(list)指令
语法:ls 【选项】【目录或文件】
功能: 对于目录,列出该目录下所有子目录与文件。(不带选项默认显示当前目录下的文件名)
对于文件,将列出文件名以及其他信息。
补充:
文件=文件内容+文件的属性
文件的操作=对文件内容的操作+对文件的属性的操作
常用选项:
(1)ls -l
列出文件详细信息。(注意,“-”前面有空格)
可简写为 ll
简写:
(2)ls -a
d 开头表示目录
- 开头表示普通文件
. 开头为隐藏文件,创建文件时在名字前加上一个.即为隐藏文件
要想显示隐藏文件,就用ls -a指令
补充:
多个选项可同时使用
如-a和-l
同时使用时可写成
ls -a -l
ls -al
ls -la
事实上,Linux里任何一个目录下都有两个隐藏文件(一个点和两个点),这两个文件是什么呢?
. .(点点)表示当前路径的上一级路径,用来回退到上一级。
. (点)一个点表示当前路径(点存在的意义是帮助用户定位到当前目录下的一个文件)。
(3)ls -d
将目录像文件一样显示,而不是显示其下的文件。如:ls -d指定目录
(4)ls -F
在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件,“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
二、pwd(print working director)指令
语法:pwd
三、mkdir(make director)与rm(remove)指令
功能:新建目录。
若想创建一串路径,可以这样:
mkdir -p d1/d2/d3
2、rm指令
功能:直接删除普通文件
若想删除目录,则可以用 -r选项
注意:
如果是root账号,在使用rm指令时,可能会问你是否确认要删除,如果不想被询问,可以用 -f选项。相反,普通用户如果想让它问你,可以带 -i选项,表示删除前统一询问。
如果是root账号,在使用-r选项时,会从最后一个文件问你是否确认删除,如果不想,可以用 -rf选项强制删除。
四、cd(change director)指令
(1)Linux中的路径分隔符为 / (Windows里是"\")
(2)Linux中“/”可以表示根目录。
(3)Linux整个目录结构一定是一个多叉树的样子,它的叶子结点一定是一个空目录或者非 目录文件,路上结点一定是非空目录,
所有对文件的增删查改本质上都是对多叉树的增删查改
(4)定位一个文件通常用路径来定位,为什么这种方式能唯一定位到该文件呢?
答案:因为任何一个节点只有唯一一个父结点,所以逆向时路径是唯一的。
(5)绝对路径:从根目录/开始定位到指定位置,具有唯一性的路径。
(6)相对路径:以当前所处的路径为起始参照位置,来进行特定文件的定位。
(7)* 是通配符,作用如下
(8)/root目录就是root用户的家目录,其余普通用户的家目录都在/home/下。
选项:
cd . . 返回上级目录
cd /home/litao/linux/ 绝对路径
cd ~ 进入自己所在的家目录
cd - 返回最近访问目录
功能:进入目录(相当于Windows中双击点进文件夹)
cd ~
五、touch指令
功能:建立一个文本文件
六、man指令(重要)
安装指令:yum install -y man-pages
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法:man【选项】命令
eg:输入 man pwd会显示如下信息(跳转到手册后按q可返回)
如果我们用man去查man,可以看到 ,man手册分为8章:
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread
4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
如果想查C语言里的printf,就应该到3号手册去查
指令:man 3 printf
如果不带章节数,默认从第一章按顺序往下找,如man printf会在第一章里找到printf指令,而不是C语言里的printf函数。
七、cp指令(重要)
介绍该指令前,我们先弄一个有内容的文本文件,再介绍一下输出重定向这个概念。
如上图,当我们用echo+“hello Linux”这样的一句指令时,“hello Linux”会在显示器显示出来,也就是把“hello Linux”写入显示器中
echo "hello Linux">test.txt 这条指令没有将数据写入显示器,而是把数据写到了文件中,这种行为就叫输出重定向。
如果用两个大于号,就可改为追加重定向
通过cat指令可以打印文件内容
输出重定向时,会先将原始文件清空,然后再写入。
语法:cp 【选项】源文件或目录 目标文件或目录
功能:复制文件或目录
选项:
-f(--force)选项表示强行复制文件或目录,不论目的文件或目录是否已存在(不一定生效)
-i 或(--interactive)覆盖文件前先询问用户(也不一定生效)
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
copy文件举例:
如果想复制到上级目录下,可以这样:
cp test.txt ../test_backup.txt
copy目录举例:
cp -r lesson3 lesson3_backup
。
八、mv指令(重要)
功能1:重命名
mv 【原来的名字】 【新的名字】
功能2: 剪切
mv test_backup.txt ../
将test_backup.txt这个文件移动到上一级
本质上:是剪切并重命名
mv 【原来的文件名】 【新路径】+【新名字】
如果没有【新路径】,就是在当下这个路径重命名
如果没有【新名字】,就是单纯剪切到新路径。
Ctrl+C:终止因程序或指令指令异常而导致无法输入的行为。
九、cat指令
前面我们提过,通过cat指令可以输出文件内容
如:cat 【文件名】就是从文件中读取数据输出到显示器
如果cat后面什么都没有,则默认从输入设备中读取数据并输出
前面既然提到有输出重定向,那也一定有输入重定向。
如下,本来应该重键盘文件读取数据,现改成从指定的文件读取,这种行为叫输入重定向。
选项:
-n 对输出的所有行进行编号
-b 对非空输出行进行编号
-s 不输出多行空行(把多行转成一行输出)
十、more指令
cat指令并不适合看大文本,而more指令则比较合适。
more 【文件名】显示完整个屏幕后按回车键可下翻,退出按q。
-500带选项可指定输出行数,-500就是500行。
只能下翻(回车),无法上翻
/999可跳到999行来显示
十一、less指令
less 【文件名】显示完整个屏幕后可按上下键来显示上下文。
/999可跳到999行来显示
可以进行文本查找,【文本】+回车:显示对应的文本行。
按q(quit)可以退出。
十二、haed指令
head -n 【文件名】
打印前n行
十三、tail指令
tail -n 【文件名】
打印后n行
取中间段怎么取呢?
如1000-1020
head -1020 【test.txt】 | tail -20
( | 是一种符号,后面会被“系统”解释为管道文件)
上面这句指令就可以将文件test.txt中第1000-1020行打印出来。
cat test.txt | head -50 | tail -20
功能:将test.txt文件中30-50行内容打印出来
cat test.txt | head -50 | tail -20 | wc -l
(wc -l)统计行数。
总结
指令本质上就是可执行程序,和我们自己写的代码编译好的程序没有本质区别。
指令是在系统中特定的路径下存在的,一定是某种可执行程序。
更多推荐
所有评论(0)