linux常用操作命令
Posted wpbing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux常用操作命令相关的知识,希望对你有一定的参考价值。
linux的两种硬盘类型,一种IDE,一种SCSI
一块硬盘最多有四个主分区(扩展分区算一个分区),即主分区和扩展分区总数不超过4,
扩展分区上有逻辑分区,总数不超过12
linux的分区命名,xxyN
xx:硬盘类型,hd为IDE,sd为SCSI
yy:表示第几块硬盘(a,b,c...)
N:表示第几个分区,逻辑分区从5开始,主分区和扩展分区1-4
例如sdb5:第二块(b)SCSI硬盘(sd)的第一个逻辑分区
关于磁盘的挂载, 下面转载自 https://blog.csdn.net/qq_39521554/article/details/79501714
1.提一句Windows下,mount挂载,就是给磁盘分区提供一个盘符(C,D,E,...)。比如插入U盘后系统自动分配给了它I:盘符其实就是挂载,退优盘的时候进行安全弹出,其实就是卸载unmount。
2.Linux下,不像Windows可以有C,D,E,多个目录,Linux只有一个根目录/。在装系统时,我们分配给linux的所有区都在/下的某个位置,比如/home等等。
3.提问者插入了新硬盘,分了新磁盘区sdb1。它现在还不属于/。
4.我们虽然可以在一些图形桌面系统里找到他的位置,浏览管理里面的文件,但在命令行却不知怎么访问它的目录,比如无法使用cd或者ls。也无法在编程时指定一个目录对它操作。
5.这时提问者使用了 mount /dev/sdb1 ~/Share/ ,把新硬盘的区sdb1挂载到工作目录的~/Share/文件夹下,之后访问这个~/Share/文件夹就相当于访问这个硬盘2的sdb1分区了。对/Share/的任何操作,都相当于对sdb1里文件的操作。
6.所以Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。
7.linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。
8.我们不是有/dev/sdb1 吗,直接对它操作不就行了?这不是它的目录吗?
9.这不是它的目录。虽然/dev是个目录,但/dev/sdb1不是目录。可以发现ls/dev/sdb1无法执行。/dev/sdb1,是一个类似指针的东西,指向这个分区的原始数据块。mount前,系统并不知道这个数据块哪部分数据代表文件,如何对它们操作。
10.插入CD,系统其实自动执行了 mount /dev/cdrom /media/cdrom。所以可以直接在/media/cdrom中对CD中的内容进行管理。
Linux的七级运行级别(运行状态)
【0】关机
【1】单用户模式,少数进程,用于维护系统
【2】多用户,除未开启NFS服务外,其他与【3】相同
NFS:network file system(网络文件系统),让不同操作系统之间可以共享文件
【3】完整的多用户模式,正常的文字界面
【4】未定义
【5】完整的图形界面
【6】重新引导计算机
1. 默认运行级别,配置文件/etc/inittab
最后一行为id:5:initdefault,其中“5”表示默认运行级别为5,即完整的图形界面级别,可修改此数字更改默认运行级别
chkconfig,可以设置自启动
chkconfig --list 列出所有的系统服务
chkconfig --add httpd 增加httpd服务
chkconfig --del httpd 删除httpd服务
chkconfig --level httpd 2345 on 把httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
chkconfig命令提供了一种简单的方式来设置一个服务的运行级别。例如,为了设置mysql服务器在运行级别3和4上运行,你必须首先将MySQL添加为受chkconfig管理的服务:
chkconfig --add mysql
现在,我们在级别3和5上设定服务为“on”
chkconfig --level 35 mysql on
在其他级别上设为off
chkconfig --level 01246 mysql off
shutdown
① shutdown –k 45
提示当前时间,并指出45分钟后关机(-k参数不能由-c参数撤销,因为此参数并只是发出警告信息,并不是真正关机)
② shutdown –h 45
shutdown –h now
③ shutdown –c
取消关机,此命令无法在当前终端中发出,应再打开一个终端,重新登录root,发出此命令
④ shutdown –r now “警告信息”
发出警告信息,关机并重启
locate
locate(locate) 命令用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地所有文件信息。
后面跟的名字可以是名字的一部分,如果没有找到,使用updatedb命令升级数据库
查看命令帮助
man ls
ls --help
ls
ls –R #递归显示目录的所有内容(包括子目录中的内容)
ls –a /root #显示/root目录下所有文件
ls -i file1 #显示file1的inode号
touch创建文件
touch –t 10010900 file #把file文件的时间改为10月1日9点
touch –t 10012600 file #错误!时间格式不对,没有“26”时
touch –r file1 file #把file的时间改为file1的时间(以file1为参考)
ln 创建文件的软链接或硬链接
- 1. ln:创建文件链接
ln file linkFile
ln –s file linkFile
★ 硬链接 .vs. 软链接:
在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。
①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。
②硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,
③ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。
④删除软链接文件,对源文件和硬链接文件无任何影响。
⑤删除文件的硬链接文件,对源文件及软链接文件无任何影响。
⑥删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。
⑦同时删除源文件及其硬链接文件,整个文件才会被真正的删除
关于inode的讲解,推荐阮一峰的(写的太好了) http://www.ruanyifeng.com/blog/2011/12/inode.html
mkdir:创建目录
-p:后跟路径名,若路径中某些目录不存在,则系统将自动创建这些目录,即一次可以创建多个目录
-m:对新建目录设置存取权限,不加此选项时,默认权限为755
mkdir –p a/b/c/d
mkdir –m 777 b #创建目录b,权限为777
cp复制命令
-r:若源文件是目录,则递归复制该目录下所有子目录和文件
cp –r a/b w #把a下的b目录复制到w目录
cp /etc/*.conf a #把/etc目录下所有后缀为conf的文件复制到a目录
more 分页显示文本文件
-num:一次显示的行数
-s:多个空白行替换为一个空白行
+num:从第num行开始显示
管道命令
Command1|Command2
管道:将Command1命令的输出作为Command2命令的输入
① ls /etc|grep ab #grep表示筛选,筛选出符合后面条件的内容
② ls /etc和ls /etc|more的输出做对比
命令替换
Command1 `Command2`
or
Command1 $(Command2)
Command2的输出作为Command1的参数。
① 方法一:gedit $(locate inittab)
② 方法二:gedit `locate inittab`
查看文件
head -10 file1 | tail -6 #“head -10 file1”表示file1文件的前10行,“tail -6”表示在上一步的基础上读最后6行,最后结果是读取源文件的5~10行
more 分页显示文本文件
-num:一次显示的行数
-s:多个空白行替换为一个空白行
+num:从第num行开始显示
① more -s file2
② more -20 +10 file2 #从第10行开始,每次显示20行
cat 显示文本
-n:由1开始对所有行编号
-b:空白行不编号
-s:两个以上的空白行替换为1行显示
chown #更改文件拥有者
① chown rjxy file #把文件file的所有者改为rjxy
② chown –R rjxy dir #把目录dir及该目录下的所有文件和子目录的所有者都改为rjxy
chgrp 用法同chown#更改组群
更改文件权限
1) 符号模式
chmod a、u、g、o+-=rwx 文件名1 文件名2 ……
a、u、g、o表示要赋予权限的用户的类,a代表所有的用户,u代表文件的所有者自身,g代表和所有者同组群的用户,o代表组外的其他用户
+-=用来增加、删除或设置权限,+表示增加权限,-表示删除权限,=表示设置权限
-R:对目录及该目录下的所有文件和子目录都进行相同的操作;
① chmod 744 file #把文件file的读写权限改为744,即rwxr--r—
② chmod -R 744 dir #把目录dir及该目录下的所有文件和子目录的读写权限改为744
umask 设置文件默认权限
umask二进制1:代表要去掉这个权限,不管你原来有没有权限,你最终一定没有这个权限。
umask二进制的0:代表我不关心对应位的权限,你原来有权限就有权限,没有就没有, 我不影响你
umask #查看
umask xxx #更改umask
setuid和setgid:让普通用户在执行该文件时拥有“文件所有者”的权限
查看/usr/bin/passwd和/etc/passwd的权限
/usr/bin/passwd的读写权限中的“s”,即setuid,表示普通用户执行此命令时暂时拥有“此文件所有者”的权限(对/usr/bin/passwd来说即root权限)。当此命令执行完,权限也随之失去。
Linux中的命令默认所有者都是root。
类似的,setgid则表示让执行文件的用户以该文件所属组的权限去执行。
setuid和setgid权限只对可执行文件有意义。
chmod 4644 file #修改文件file的读写权限为644,并设置setuid
chmod 2644 file #修改文件file的读写权限为644,并设置setgid
chmod g+s file #设置setgid
chmod o+t directory #设置stick bit
which:搜索系统可执行文件(命令)的详细路径
whereis:搜索可执行文件(命令)、源代码文件、帮助文件及其他文件。
-b:定位可执行文件
-m:定位帮助文件
-s:定位源代码文件
-u:搜索默认路径下除可执行文件、源代码文件和帮助文件外的其他文件
find:在系统特定目录下,查找名字具有某种特征或其具有某种属性的文件。
语法:find 【path】 -option 【-print】 【-exec –ok command】 \;
path:搜索范围,即指出要查找的目录,缺省为当前目录。例如,用“/”表示根目录;
-exec command \;:将查到的文件执行command命令,“”和“\;”之间有空格,“\;”的“;”为半角分号;
【常用选项】
-name:按文件名查找
-perm:按执行权限来查找
-user:按文件所有者查找
-newer file1 !file2:查找更改时间比file1新,但比file2旧的文件
-type b/d/c/p/l/f:查找块设备、目录、字符设备、管道、符号链接和普通文件
-size n[ckMG]:查长度为n块的文件(c表示字节B,k表示kB,M表示MB,G表示GB)
-mtime -n +n n:按文件更改时间查找文件,-n表示n天以内,+n表示n天以前,n表示确切n天
-atime -n +n n:按文件访问时间查找文件,-n表示n天以内,+n表示n天以前,n表示确切n天
-ctime -n +n n:按文件创建时间查找文件,-n表示n天以内,+n表示n天以前,n表示确切n天
① find -name abc #在当前目录下查找名字为abc的文件
② find -name abc’*’ #在当前目录下查找名字以abc开头的文件,注意通配符“*”用半角单引号括起来
③ find -name ‘*’abc’*’ #在当前目录下查找名字中包含abc的文件
④ find /etc -perm 644 #在/etc目录中查找权限为644的文件
⑤ find -type f -exec ls -l \; #在当前目录下查找所有的普通文件,并在-exec选项中使用ls -l命令将它们列出
1. 分区知识
1) 不同的操作系统原则上采用不同的文件系统;
若操作系统支持相同的文件格式,为了避免同一个分区下有相同的系统目录——不同的操作系统要安装在不同的磁盘分区
2) 一个硬盘最多只能有4个主分区(1个扩展分区相当于1个主分区);
扩展分区最多1个,逻辑分区可以有多个,但逻辑分区最多不超过12个,扩展分区相当于逻辑分区的容器;
3) 分区操作不能产生任何文件系统,只是保留了磁盘空间,要使用必须格式化来创建文件系统
windows→format;
Linux→mkfs;
du命令
显示文件和目录的磁盘使用空间。
语法:du [选项] [文件]
-a或-all:每个指定文件显示磁盘使用情况,或者为目录中每个文件和子目录显示各自磁盘使用情况
-b或-byte:显示目录或文件大小时,以byte 为单位
-c或--total:除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总用量
-s:只显示总用量
-k或--kilobytes:以KB(1024bytes)为单位输出
-m或--megabytes:以MB 为单位输出
df命令 用于显示指定磁盘的文件可用空间。如果没有指定文件名,则所有当前被挂载的文件系统的可用空间将被显示。
语法:df [选项] [文件]
u -a:全部文件系统列表
u -h:以常用容量单位显示
u -i:显示inode信息
u -k:区块为1K字节
u -l:只显示本地文件系统
u -m:区块为1M字节
u -T:显示文件系统类型
挂载和卸载文件系统
① 把/dev/sda5挂载到/mnt/kk目录
mkdir /mnt/kk
mount /dev/sda5 /mnt/kk
df #查看所有的挂载信息
ls /mnt/kk #查看挂载的目录
② 以只读方式挂载/dev/sda5到/mnt/kk
mount -o ro /dev/sda5 /mnt/kk #提示/dev/sda5已经挂载,需要先卸载
umount /dev/sda5 #卸载
mount -o ro /dev/sda5 /mnt/kk
mkdir /mnt/kk/a #报错,因为/dev/sda5是只读的
③ 查看分区挂载情况
mount –s #查看所有已经挂载的分区情况
cat /etc/mtab
以上是关于linux常用操作命令的主要内容,如果未能解决你的问题,请参考以下文章