Linux - 命令(一)(上)

简介: Linux - 命令(一)(上)

一、Linux命令——命令基本格式

1.起始符:

[root@localhost ~]#

root 当前登录用户

localhost 主机名

~ 代表用户的“家”目录

超级用户(管理员)为 /root

普通用户为 /home/user,即普通用户为home下的二级目录

pwd可直接显示当前所在位置(显示完整绝对路径)

#代表超级用户,$代表普通用户

2.ls命令选项:

命令 [选项] [参数]

(简化选项)-a == --all(完整选项)

ls -a 显示所有文件,包括隐藏文件

ls -l 显示详细信息

ls -d 查看目录属性

ls -h 人性化显示文件大小

ls -i 显示inode(每个文件对应的id号)

3.文件权限(10位),第一位为文件类型,后面每3位一组

-rw-r--r--

-文件类型(-文件 d目录 l软链接目录)

rw- u所有者

r-- g所属组

r-- o其他人

r读 w写 x执行

例如:-rw-rw----.(ACL权限) 1(引用计数) root(所有者) root(组权限) 4.0K(大小) 2010-05-07 14:38(最后一次修改时间) abc(文件名)

Ps:在Linux中“.”开头的文件是隐藏文件。

二、Linux命令——文件处理命令

(Linux中一切皆文件。目录为目录文件。普通文件用来保存数据,目录文件用来保存文件。这里的文件也包含目录,因为一切皆文件的概念)

1.mkdir:建立目录(make directories

mkdir -p [目录名]

-p :递归创建,当创建多级目录时需加

例:

mkdir light

mkdir -p imooc/linux/light

Ps:如果第二条命令不加 -p 则报错,因为找不到imooc文件夹无法继续创建。

2.cd [目录] :切换目录(change directory

简化操作

cd ~或者cd:进入当前用户的家目录

cd -:进入上次目录

cd ..:进入上一级目录

cd .:进入当前目录

3.路径

相对路径:参照当前所在目录,进行查找

绝对路径:从根目录开始制定,一级一级递归,进行查找

4.pwd:查询所在目录位置(print working directory

5.删除空目录(几乎不用了)

rmdir [目录名] (remove empty directories)

只能删除空目录

6.删除文件或目录(推荐)

rm -rf [文件或目录]

选项 -r:删除目录

选项 -f:强制

rm [文件名]:提示是否删除

rm -r [目录]:删除目录需加 -r ,目录中含有子文件,将持续询问是否删除

rm -rf [目录]:删除目录, 不会询问是否删除而直接进行

Linux是纯字符界面没有回收站。注意自杀指令:rm -rf /

Linux中的root是真正的root,而Win系统下的Admin权限只是个表面管理员,因为真正意义上没有root权限高

例子1:rm -rf /tmp/* :删除tmp目录下的内容

例子2:rm -rf /tmp/ :删除tmp目录

7.复制命令

cp [选项] [原文件或目录] [目标目录]

选项 -r:复制目录

选项 -p:连带文件属性复制

选项 -d:若原文件是链接文件,则复制链接属性

选项 -a:相当于 -pdr 全选

例子:

cp abc /tmp/ 若目标目录不加文件名,则为原名复制

cp abc /tmp/ana 若目标目录后加入文件名,则为改名复制

cp -r japan/ /tmp/ 复制目录

cp -a japan/ /tmp/ 完全复制,包括所有属性

被复制文件的时间为执行复制命令的时间,若要使被复制的文件与原文件属性完全一致,需加 -a

8.剪切或改名命令

注意:看使用这命令时,当前在哪个目录下进行操作

mv [原文件或目录] [目标目录] (move)

mv japan/ /tmp/ 剪切目录时不需加 -r

mv abc longls 当原文件与目标目录,在同一目录下,则为改名命令

9.当前系统时间命令:date

10.常用目录的作用

10.1、/bin 命令保存目录(普通用户就可以读取的命令)

根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令。其中,bin目录下的命令任何用户都可以执行,sbin目录下只有root才可以执行。linux使用此方式来区分用户权限。

10.2、/lib 系统库保存目录

操作系统中并没有把所有功能都写入linux中,而将常用的功能写成一个个程序库,此些库保存在lib中,当需要时调用即可。避免全部写入linux中,使其无比庞大且运行缓慢。

10.3、/media 挂载光盘目录

10.4、/misc 外接磁带机挂载目录

10.5、/mnt 系统挂载U盘、移动硬盘目录

推荐习惯于在mnt下创建CD-ROM来挂载光盘,在mnt下创建USB来挂载U盘。原因在于老式的linux中不存在media、misc目录。

10.6、/proc、/sys 直接写入内存的

该目录同sys目录不能直接操作,这两个目录保存的是内存的挂载点。其中的数据直接写在内存中。避免数据丢失或由于内存溢出导致系统崩溃。

Ps:可以在家目录root或home,以及tmp目录下随便放内容,其他目录不要随便动(包括在根目录下)。但是tmp目录下有些Linux系统会定时自动清空该目录里的内容,所以也推荐不要把持久化的数据放进去。

11.链接文件

ln -s [原文件] [目标文件]

功能描述:生成链接文件,默认不加-s为硬链接

选项 -s 创建软链接

硬链接特征

(0)类似于C++当中的引用,只是换了个名字而已

(1)拥有相同的i节点和存储block块,可以看做是同一个文件。(在格式化时,第一将分区划分为等大小的block数据块,该数据块通常为4KB。第二建立分区表,并为每个文件建立一个相关数据。当用户搜索某个文件时,会先到分区表中查找文件所对应的block存储位置,接着到相应位置取出,并返回给用户。)硬链接与原文件拥有相同的i节点。因此,与原文件非常相似。当删除原文件或硬链接文件的任何一文件,不影响文件索引操作。可看做,同一个文件的不通进入点。它是同样的存储空间。

(2)可通过i节点识别

(3)不能跨分区建立

(4)不能针对目录使用,只有文件才可以创建

(5)例子:ln ./source/abc ./target/bcd.hard 创建后,引用计数+1

ls -i ./source/abc ./target/bcd.hard 可使用ls -i 来查看文件i节点号

(6)不建议创建硬链接文件

文件太过隐蔽,除了有i节点这样一个标识之外,很难区分它是不是硬链接

硬链接限制较多,不能跨分区,不能针对目录,使用当中容易出现错误使用方法

软链接特征

(0)类似于C语言中的指针

(1)类似于Windows快捷方式

(2)软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据。(拥有自己的分区表中索引数据,通过索引找到分区表中文件的目标索引数据,再通过目标索引数据,查找数据)

(3)lrwxrwxrwx l软链接, 软链接文件权限都为rwxrwxrwx, 虽然权限显示为777,但实际权限需要看原文件权限

(4)修改任意文件,另一个都改变

(5)删除原文件,软链接不能使用

(6)创建软链接,原文件一定要写绝对路径。否则,软链接会到它所在的同一目录去找原文件

三、Linux命令——文件搜索命令

1、locate 文件名

在后台数据库中按文件名搜索,搜索速度更快

对于新建的文件,由于数据库没有更新,使用locate 不能查到。可以使用 updatedb强制更新数据库后即可查到。

可使用 locate locate 搜索locate相关文件,可看到locate数据库。

在不同linux中,该数据库名字稍微不同,例如,locatedb、slocate、mlocate。

2、/var/lib/mlocate (保存的搜索数据库)

#locate 命令所搜索的后台数据库

数据库不是实时的,更新频率大概一天更新一次

3、updatedb

更新数据库

4、缺点:只能按照文件名进行搜索,但常用。

5、配置文件

touch /root/cangls

touch /tmp/cangls

updatedb

locate cangls

显示为 /root/cangls 只有一条,而/tmp下的cangls没有显示出来,原因在于locate搜索遵循配置文件 /etc/updatedb.conf, 在PRUNEPATHS 中配置了/tmp/目录不进行搜索。所以没有进行查找。

/etc/updatedb.conf 配置文件

PRUNE_BIND_MOUNTS = "yes"

#开启搜索限制,yes为后面三项都生效。no为 后面三项都不生效

PRUNEFS =

#搜索时,不搜索的文件系统

PRUNENAMES =

#搜索时,不搜索的文件类型

PRUNEPATHS =

#搜索时,不搜索的路径

6、whereis (只能搜索系统命令,不能搜索自己凭空创建的普通文件)

whoami显示当前操作用户 //who am i 显示登录用户

whatis ls的作用

选项:

-b:只查找可执行文件

-m:只查找帮助文件

7、文件搜索命令:which(不仅能看到命令的路径,如果有别名,还能看到别名)

ls =‘ls --color=auto’(ls显示颜色,设置为自动)

whereis和which不能看到shell的默认命令(如:cd),只能看到外部安装的命令。

8、echo $PATH说明:不光是Linux专有的,Windous重也有,类似于Windows中的环境变量,执行命令的时候都要在path定义的目录中去寻找。

所以像ls这样的命令就可以不用加路径(/bin/ls)执行了。如果自己写的脚本 在运行时不想要具体的目录 需要在path设置目录。

9、find搜索(避免大范围的搜索,会非常浪费系统资源,建议不在直接在“/”目录下搜索)

格式:find 【搜索范围】【搜索条件】;

例:find /home -name 文件名;

注意:find搜索默认是完全匹配。

如果需要进行模糊查询,需要添加通配符,通配符有以下3种

“*”匹配任意字符,例:find /home -name “*test*”,显示所有名字带test的文件;或例:find /home -name “*”,home目录下的所有文件,包括隐藏文件。

“?”匹配任意一个字符,

“【】”匹配任意一个中括号内的字符,例:find /home -name “test【12】”,显示test1和test2文件;或find /home -name “【12】*”,显示以1和2开头的文件。

组合使用:例:find /home -name “*【12】”,显示所有1和2结尾的文件

10、find 按文件时间来搜索

find /home -mtime +10 在home目录下,查找10天前修改的文件

find /home -mtime 10 在home目录下,查找10天前当天修改的文件

find /home -mtime -10 在home目录下,查找10天内修改的文件

atime 文件访问时间

ctime 改变文件属性

mtime 修改文件内容

11、find搜索

find /root -iname test 不区分要搜索的test大小写格式

find /root -user root 搜索root目录下的所有属于root用户的文件

find /root -nouser 没有所属者的文件,liunx中,每个文件都有所属者,如果没有,那么一般都是垃圾文件,但还是有特例的,比如内核产生的文件,就没有所属者,一般在proc和sys目录下;还有外来文件,也就是U盘拷入的文件也会忽略所有者。

12、find . -size 25k #查找文件大小是25KB的文件

-25k 小于25KB的文件、25k 等于25KB的文件、+25k 大于25KB的文件

搜索千字节用小写k,搜索兆字节用大写M。

文件的默认单位是数据块(与分区使用的块不同,分区的数据块每个大小为4KB)是按照硬盘的扇区分的数据块,每个扇区的大小512个字节。如果搜索时不加单位,则认为搜索25个扇区大小的文件,25*512字节这么大的文件,计算过程耗时久,所以搜索时一定要加单位。

13、find . -inum 262422 #查找i节点是262422的文件

知道文件名查i节点用ls -i,知道i节点查文件名用find . -inum (i节点)。

14、find /etc -size +20k -a -size -50k #查找/etc/目录下,大于20KB并且小于50KB的文件

-a and 逻辑与,两个条件都满足

-o or 逻辑或,两个条件满足一个即可

15、find /etc -size +20k -a -size -50k -exec ls -lh {} \

#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息

#-exec/ -ok 命令 {} \;对搜索结果进行操作

能处理第一个搜索出来的结果的命令,才能放在“命令”处

16、grep [选项] 字符串 文件名 (字符串使用 "" 包围,结果为行记录)

-i 忽略大小写

-v 排除指定字符串

17、find 命令与 grep 命令的区别

find:在 系统 中搜索符合条件的 文件名,使用 通配符(完全)匹配

grep:在 文件 当中搜索符合条件的 字符串,使用 正则表达式 (包含)匹配

目录
相关文章
|
4天前
|
NoSQL 关系型数据库 MySQL
Linux学习记录---(1、基本命令)
该博客文章提供了Linux系统中基本命令的使用记录,包括文件和目录操作、Redis服务管理、MySQL数据库操作以及Tomcat服务器的启动和检查。
Linux学习记录---(1、基本命令)
|
5天前
|
运维 Ubuntu Linux
Linux系统之ncdu命令的基本使用
【8月更文挑战第8天】Linux系统之ncdu命令的基本使用
13 2
Linux系统之ncdu命令的基本使用
|
11天前
|
数据可视化 Linux 测试技术
7zip压缩工具的Linux命令
本文介绍了如何在Linux系统中使用7zip压缩工具,包括通过brew安装、使用基本命令进行文件压缩、解压、列出存档内容、测试存档完整性以及进行性能基准测试等操作。
44 3
7zip压缩工具的Linux命令
|
1天前
|
安全 Linux 开发者
Linux笔记之ldd命令详解
`ldd`命令是Linux环境下一个非常实用的工具,用于显示一个程序运行时所需的共享库依赖。它帮助开发者和系统管理员快速诊断程序运行问题,特别是在处理"找不到库文件"或者"错误的库文件版本"等错误时。然而,出于安全的考虑,对于不信任的可执行文件,应该慎用 `ldd`命令,可以考虑使用其他工具如 `objdump`。总的来说,懂得如何妥善且安全地使用 `ldd`,对于维护一个稳定和高效的Linux系统来说,是非常重要的。
15 9
|
2天前
|
Linux Shell
linux命令
linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
3天前
|
移动开发 运维 网络协议
运维必备 | Linux netstat命令详解
运维必备 | Linux netstat命令详解
|
3天前
|
Linux
真香~ Linux vi常用命令汇总!
真香~ Linux vi常用命令汇总!
|
3天前
|
Linux Shell
linux命令
linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
6天前
|
运维 安全 Linux
【超实用秘籍】Linux文件传输新高度:10个scp命令让你瞬间变身文件传输达人,从此告别繁琐操作!
【8月更文挑战第13天】文件传输是运维工作的核心部分,尤其对Linux用户来说,了解高效且安全的传输方法非常重要。本文介绍10种scp命令的应用技巧,涵盖基础文件传输、密钥认证、目录复制等场景,助你灵活运用这一基于SSH协议的安全工具。从简单的文件传输到复杂的多主机文件迁移,scp都能轻松应对。通过本文的学习,你将能更熟练地使用scp命令,提高工作效能。
24 6
|
2天前
|
SQL 存储 分布式计算
Linux退出Hive命令
【8月更文挑战第14天】