Linux常见命令

目录操作命令

ls

ls [选项] [文件名或目录名] 选项:

-a: 显示所有文件

--color=when: 支持颜色输出,when的值默认是always(总显示颜色),也可以是 never(从不显示颜色)和auto(自动)

-d: 显示目录信息,而不是目录下的文件

-h: 人性化显示,按照我们习惯的单位显示文件大小

-i: 显示文件的i节点号

-l: 长格式显示

cd

cd -:上次所在目录

cd ~:当前用户的家目录

cd .:去到当前目录

cd ..:退到上级目录

cd /:退到根目录

pwd

pwd 显示当前的绝对路径

mkdir

mkdir -p /111/myconf/

递归的创建目录111和111里的myconf

rmdir

rmdir -p /111/myconf/

递归的删除目录111和111里的myconf

rmdir命令的作用十分有限,因为只能删除空目录,所以一旦目录中有内容,就会报错

一般都会使用rm 命令

文件操作命令

touch

创建或修改文件

stat

stat是查看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下。

cat

cat命令用来查看文件内容。

cat [选项] 文件名 选项:

-A: 相当于-vET选项的整合,用于列出所有隐藏符号

-E: 列出每行结尾的回车符$

-n: 显示行号

-T: 把Tab键用^I显示出来

-v: 列出特殊字符

wc

可以通过wc命令统计文件的行数,单词数量等

wc [-c -m -l -w] 文件路径
-c    统计bytes数量
-m    统计字符数量
-l    统计行数
-w    统计单词数量

more

more是分屏显示文件的命令

more命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一些交互命令。常 用的交互命令如下。

 空格键:向下翻页。                                    b:向上翻页。

 回车键:向下滚动一行。                             /字符串:搜索指定的字符串。

 q:退出。

less

less命令和more命令类似,只是more是分屏显示命令,而less是分行显示

head

head是用来显示文件开头的命令,其基本信息如下

 head [选项] 文件名 选项:

-n 行数: 从文件头开始,显示指定行数

-v: 显示文件名

tail

就会有显示文件结尾的命令

一般用于检测日志文件

tail [选项] 文件名 选项:

-n 行数: 从文件结尾开始,显示指定行数

-f: 监听文件的新增内容

ln

在文件之间建立链接

ln [选项] 源文件 目标文件 选项:

-s: 建立软链接文件。如果不加“-s”选项,则建立硬链接文件

-f: 强制。如果目标文件已经存在,则删除目标文件后再建立链接文件

如果创建硬链接

ln /root/cangls /tmp/

#建立硬链接文件,目标文件没有写文件名,会和原名一致

#也就是/root/cangls和/tmp/cangls是硬链接文件

创建软链接

ln -s /root/bols /tmp/

硬链接与软连接的特征

硬链接特征

 源文件和硬链接文件拥有相同的Inode和Block

 修改任意一个文件,另一个都改变

 删除任意一个文件,另一个都能使用

 硬链接标记不清,很难确认硬链接文件位置,不建议使用

 硬链接不能链接目录

 硬链接不能跨分区

软链接特征

 软链接和源文件拥有不同的Inode和Block

 两个文件修改任意一个,另一个都改变

 删除软链接,源文件不受影响;删除源文件,软链接不能使用

 软链接没有实际数据,只保存源文件的Inode,不论源文件多大,软链接大小不变

 软链接的权限是最大权限lrwxrwxrwx.,但是由于没有实际数据,最终访问时需要参考源文 件权限

 软链接可以链接目录

 软链接可以跨分区

 软链接特征明显,建议使用软连接

目录和文件都能操作的命令

rm

rm是强大的删除命令,不仅可以删除文件,也可以删除目录。

rm [选项] 文件或目录 选项:

-f: 强制删除(force)

-i: 交互删除,在删除之前会询问用户

-r: 递归删除,可以删除目录(recursive)

cp

cp是用于复制的命令

 cp [选项] 源文件 目标文件 选项:

-a: 相当于-dpr选项的集合,这几个选项我们一一介绍

-d: 如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接

-i: 询问,如果目标文件已经存在,则会询问是否覆盖

-p: 复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)

-r: 递归复制,用于复制目录

mv

mv是用来剪切的命令,其基本信息如下。

 mv [选项] 源文件 目标文件 选项:

-f: 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖

-i: 交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)

-v: 显示详细信息

基本权限管理

长格式显示的第一列就是文件的权限

lrwxrwxrwx

第一位:

- :普通文件

l :软链接

d :目录

第2~4位代表文件所有者的权限。

- r:代表read,是读取权限。

- w:代表write,是写权限。

- x:代表execute,是执行权限。 如果有字母,则代表拥有对应的权限;

如果是“-”,则代表没有对应的权限。

 第5~7位代表文件所属组的权限,同样拥有“rwx”权限。

 第8~10位代表其他人的权限,同样拥有“rwx”权限

chmod

修改文件的权限模式。

chmod [选项] 权限模式 文件名 选项:

-R: 递归设置权限,也就是给子目录中的所有文件设定权限

权限模式

 用户身份。

- u:代表所有者(user)。

- g:代表所属组(group)。

- o:代表其他人(other)。

- a:代表全部身份(all)。

 赋予方式。

+:加入权限。

-:减去权限。

=:设置权限。

 权限。 - r:读取权限(read)。

- w:写权限(write)。

- x:执行权限(execute)。

数字模式

4:代表“r”权限。  2:代表“w”权限。  1:代表“x”权限

644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。 更多 755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组 和其他人拥有读和执行权限。

777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这 会造成一定的安全隐患。

二进制数相加减

  • chmod u+x file:给文件所有者添加执行权限。
  • chmod g-w file:删除文件所属组的写权限。
  • chmod o-rwx file:删除其他用户的所有权限。
  • chmod a=rwx file:给所有用户设置读、写和执行权限

chgrp

chgrp是修改文件和目录的所属组的命令,其基本信息如下。

即5-7位

chgrp staff *.txt

这将把当前目录下所有 .txt 文件的组改为 staff

chown

chown是修改文件和目录的所有者的命令,其基本信息如下。

 chown [选项] 所有者:所属组 文件或目录 选项:

-R: 递归设置权限,也就是给子目录中的所有文件设置权限

普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。

普通用户可以修改所有者是自己的文件的权限。

chown user:group example.txt

将把 example.txt 文件的所有者改为 user,组改为 group

帮助命令

man

 man [选项] 命令 选项:

-f: 查看命令拥有哪个级别的帮助

-k: 查看和命令相关的所有帮助

info

info命令的帮助信息是一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一 个小章节。

help

help只能获取Shell内置命令的帮助

--help

绝大多数命令都可以使用“--help”选项来查看帮助,这也是一种获取帮助的方法。

例如: [root@localhost ~]# ls --help

这种方法非常简单,输出的帮助信息基本上是man命令的信息简要版。

搜索命令

whereis

whereis是搜索系统命令的命令

whereis cd

which

which也是搜索系统命令的命令。和whereis命令的区别在于:

 whereis命令可以在查找到二进制命令的同时,查找到帮助文档的位置;

 而which命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令。

locate

locate命令才是可以按照文件名搜索普通文件的命令

优点:按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db, 可以使用updatedb命令强制更新数据库。

 缺点:只能按照文件名来搜索文件,而不能执行更复杂的搜索,比如按照权限、大小、修改 时间等搜索文件。

find

功能描述:在目录中搜索文件

find 搜索路径 [选项] 搜索内容 选项:

-name: 按照文件名搜索

-iname: 按照文件名搜索,不区分文件名大小写

-inum: 按照inode号搜索

find 搜索路径 [选项] 搜索内容 选项:

-size [+|-]大小: 按照指定大小搜索文件

这里的“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定大小还要小的文 件。

find 搜索路径 [选项] 搜索内容 选项

-atime [+|-]时间: 按照文件访问时间搜索

-mtime [+|-]时间: 按照文件数据修改时间搜索

-ctime [+|-]时间: 按照文件状态修改时间搜索

访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)

find 搜索路径 [选项] 搜索内容 选项:

-perm 权限模式: 查找文件权限刚好等于“权限模式”的文件

-perm -权限模式: 查找文件权限全部包含“权限模式”的文件

-perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件

find 搜索路径 [选项] 搜索内容 选项:

-type d: 查找目录

-type f: 查找普通文件

-type l: 查找软链接文件

find 搜索路径 [选项] 选项:

-a: and逻辑与

-o: or逻辑或

-not: not逻辑非

find . -size +2k -a -type f #在当前目录下搜索大于2KB,并且文件类型是普通文件的文件

find 搜索路径 [选项] 搜索内容 -exec 命令2 {} \;

其次,这个选项的作用其实是把find命令的结果交给由“-exec”调用的命令2来处理。“{}”就 代表find命令的查找结果。

  1. 搜索当前目录下所有 .txt 文件

    find . -name "*.txt"

grep

grep的作用是在文件中提取和匹配符合条件的字符串行。

grep [选项] "搜索内容" 文件名 选项:

-i: 忽略大小写

-n: 输出行号

-v: 反向查找

--color=auto: 搜索出的关键字用颜色显示

1) find命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,通配符 是完全匹配(find命令可以通过-regex选项,把匹配规则转为正则表达式规则,但是不建议如此)。

2) grep命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配, 正则表达式是包含匹配。

通配符:用于匹配文件名,完全匹配

通配符作用
匹配一个任意字符
*匹配0个或任意多个任意字符,也就是可以匹配任何内容
[]匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c
[.]匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母
[^]逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符

正则表达式:用于匹配字符串,包含匹配

正则符作用
匹配前一个字符重复0次,或1次(?是扩展正则,需要使用egrep命令)
*匹配前一个字符重复0次,或任意多次
[]匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c
[.]匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母
[^]逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符
^匹配行首
$匹配行尾

管道符: |

命令格式: 命令1 | 命令2 命令1的正确输出作为命令2的操作对象

ll -a /etc/ > /root/testfile

#用输出重定向,把ll命令的输出保存到/root/testfile文件中

ll -a /etc/ | grep yum

令ll /etc/的结果中搜索yum的文件名,

常用快捷键

压缩和解压缩命令

“.zip”格式的压缩命令

压缩命令就是zip

# zip [选项] 压缩包名 源文件或源目录 选项:

-r: 压缩目录

例如: zip ana.zip anaconda-ks.cfg

.zip”格式的解压缩命令是unzip

unzip [选项] 压缩包名 选项:

-d: 指定解压缩位置

例如: unzip -d /tmp/ ana.zip

#把压缩包解压到指定位置

“.gz”格式 不会打包

“.gz”格式是Linux中最常用的压缩格式,使用gzip命令进行压缩

gzip [选项] 源文件 选项:

-c: 将压缩数据输出到标准输出中,可以用于保留源文件

-d: 解压缩

-r: 压缩目录

gzip -c anaconda-ks.cfg > anaconda-ks.cfg.gz

#使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中

#这样可以在压缩文件的同时不删除源文件

如果要解压缩“.gz”格式,那么使用“gzip -d 压缩包”和“gunzip 压缩包”命令都可以。我们 先看看gunzip命令的基本信息。

gunzip install.log.gz

gzip -d anaconda-ks.cfg.gz

“.bz2”格式 不能压缩目录

bzip2 [选项] 源文件 选项:

-d: 解压缩

-k: 压缩时,保留源文件

-v: 显示压缩的详细信息

例如:

bzip2 anaconda-ks.cfg

#压缩成.bz2格式

bzip2 -k install.log.syslog

#保留源文件压缩

bz2”格式可以使用“bzip2 -d 压缩包命令来进行解压缩,也可以使用“bunzip2 压缩包”命 令来进行解压缩。

bunzip2 anaconda-ks.cfg.bz2

 bzip2 -d install.log.syslog.bz2

“.tar”格式 打包不会压缩

“.tar”格式的打包和解打包都使用tar命令,区别只是选项不同

tar [选项] [-f 压缩包名] 源文件或目录

选项:

-c: 打包

-f: 指定压缩包的文件名。压缩包的扩展名是用来给管理员识别格式的,所以一定 要正确指定扩展名

-v: 显示打包文件过程

 tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg

#打包,不会压缩

“.tar”格式的解打包命令 “.tar”格式的解打包也需要使用tar命令,但是选项不太一样。

tar [选项] 压缩包 选项:

-x: 解打包

-f: 指定压缩包的文件名

-v: 显示解打包文件过程

-t: 测试,就是不解打包,只是查看包中有哪些文件

-C(大) 目录: 指定解打包位置

tar -xvf anaconda-ks.cfg.tar

#解打包到当前目录下

关机和重启命令

sync

sync数据同步.

刷新文件系统缓冲区。

reboot

重启

shutdown

shutdown [选项] 时间 [警告信息] 选项:

-c: 取消已经执行的shutdown命令

-h: 关机

-r: 重启

half和poweroff

这两个都是关机命令,直接执行即可。这两个命令不会完整关闭和保存系统的服务,不建议使用

init

init是修改Linux运行级别的命令,也可以用于关机和重启。这个命令并不安全,不建议使用。

init 0

关机,也就是调用系统的0级别

[root@localhost ~]# init 6

重启,也就是调用系统的6级别

常用网络命令

ifconfig命令

命令最主要的作用就是查看IP地址的信息

ping命令

ping [选项] IP 选项:

-b: 后面加入广播地址,用于对整个网段进行探测

-c 次数: 用于指定ping的次数

-s 字节: 指定探测包的大小

例子:探测网段中的可用主机 在ping命令中,可以使用“-b”选项,后面加入广播地址,探测整个网段。我们可以使用这个选项知道整个网络中有多少主机是可以和我们通信的,而不用一个一个IP地址地进行探测。例如:

ping -b -c 3 192.168.103.255

netstat命令

netstat是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接

netstat [选项] 选项:

-a: 列出所有网络状态,包括Socket程序

-c 秒数: 指定每隔几秒刷新一次网络状态

-n: 使用IP地址和端口号显示,不使用域名与服务名

-p: 显示PID和程序名

-t: 显示使用TCP协议端口的连接状况

-u: 显示使用UDP协议端口的连接状况

-l: 仅显示监听状态的连接

-r: 显示路由表

例子1:查看本机开启的端口

这是本机最常用的方式,使用选项“-tuln”。因为使用了“-l”选项,所以只能看到监听状态的 连接,而不能看到已经建立连接状态的连接。例如:

netstat -tuln

例子2:查看本机有哪些程序开启的端口

如果使用“-p”选项,则可以查看到是哪个程序占用了端口,并且可以知道这个程序的PID。例 如:

netstat -tulnp

例子3:查看所有连接

使用选项“-an”可以查看所有连接,包括监听状态的连接(LISTEN)、已经建立连接状态的 连接(ESTABLISHED)、Socket程序连接等。因为连接较多,所以输出的内容有很多。例如:

netstat -an

write命令

向其他用户发送信息。

#write user1 pts/1 hello I will be in 5 minutes to restart, please save your data

#向在pts/1(远程终端1)登录的user1用户发送信息,使用“Ctrl+D”快捷键保存发送的数据

wall命令

write命令用于给指定用户发送信息,而wall命令用于给所有登录用户发送信息,包括你自己。

执行时,在wall命令后加入需要发送的信息即可,例如:

wall "I will be in 5 minutes to restart, please save your data"

mail命令

mail是Linux的邮件客户端命令,可以利用这个命令给其他用户发送邮件。mail命令的基本信息 如下。

例子1:发送邮件

如果我们想要给其他用户发送邮件,则可以执行如下命令:

 mail user1

Subject: hello <- 邮件标题

Nice to meet you! <- 邮件具体内容

. <- 使用“.”来结束邮件输入

#发送邮件给user1用户

我们接收到的邮件都保存在“/var/spool/mail/用户名”中,每个用户都有一个以自己的用户名命名 的邮箱。

例子2:发送文件内容

如果我们想把某个文件的内容发送给指定用户,则可以执行如下命令:

 mail -s "test mail" root < /root/anaconda-ks.cfg

选项: -s: 指定邮件标题

#把/root/anaconda-ks.cfg文件的内容发送给root用户 我们在写脚本时,有时需要脚本自动发送一些信息给指定用户,把要发送的信息预先写到文件中, 是一个非常不错的选择。

查看已经接收的邮件

我们可以直接在命令行中执行mail命令,进入mail的交互命令中,可以在这里查看已经接收到 的邮件。

系统痕迹命令

w命令

w命令是显示系统中正在登陆的用户信息的命令,这个命令查看的痕迹日志是/var/run/utmp。

who命令

who命令和w命令类似,用于查看正在登陆的用户,但是显示的内容更加简单,也是查看 /var/run/utmp日志。

last命令

last命令是查看系统所有登陆过的用户信息的,包括正在登陆的用户和之前登陆的用户。这个命 令查看的是/var/log/wtmp痕迹日志文件。

lastlog命令

lastlog命令是查看系统中所有用户最后一次的登陆时间的命令,他查看的日志是/var/log/lastlog 文件。

lastb命令

lastb命令是查看错误登陆的信息的,查看的是/var/log/btmp痕迹日志:

挂载命令

mount命令基本格式

linux所有存储设备都必须挂载使用,包括硬盘

例1: 
[root@localhost ~]# mount  
#查看系统中已经挂载的文件系统,注意有虚拟文件系统 
/dev/sda3 on / type ext4 (rw) 
proc on /proc type proc (rw) 
sysfs on /sys type sysfs (rw) 
devpts on /dev/pts type devpts (rw,gid=5,mode=620) 
tmpfs on /dev/shm type tmpfs (rw) 
/dev/sda1 on /boot type ext4 (rw) 
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) 
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 
#命令结果是代表:/dev/sda3分区挂载到/目录,文件系统是ext4,权限是读写 
 
例2:修改特殊权限 
[root@localhost ~]# mount  
#我们查看到/boot分区已经被挂载,而且采用的defaults选项,那么我们重新挂载分区,并采用noexec 
#权限禁止执行文件执行,看看会出现什么情况(注意不要用/分区做试验,#不然系统命令也不能执行了)。 
…省略部分输出… 
/dev/sda1 on /boot type ext4 (rw) 
…省略部分输出… 
[root@localhost ~]# mount -o remount,noexec /boot 
#重新挂载/boot分区,并使用noexec权限 
[root@localhost sh]# cd /boot/ 
[root@localhost boot]# vi hello.sh 
#写个shell吧 
#!/bin/bash 
echo "hello!!" 
[root@localhost boot]# chmod 755 hello.sh  
[root@localhost boot]# ./hello.sh -bash: ./hello.sh: 权限不够 
#虽然赋予了hello.sh执行权限,但是任然无法执行 
[root@localhost boot]# mount -o remount,exec /boot 
#记得改回来啊,要不会影响系统启动的

如果我们做试验修改了特殊选项,一定要记得住,而且确定需要修改,否则非常容易出现系统问题,而且还找不到哪里出现了问题。

光盘挂载

光盘挂载的前提依然是指定光盘的设备文件名,不同版本的Linux,设备文件名并不相同:

 CentOS 5.x以前的系统,光盘设备文件名是/dev/hdc

 CentOS 6.x以后的系统,光盘设备文件名是/dev/sr0

不论哪个系统都有软连接/dev/cdrom,与可以作为光盘的设备文件名

挂载U盘

U盘会和硬盘共用设备文件名,所以U盘的设备文件名不是固定的,需要手工查询,查询命令:

挂载NTFS分区

Linux的驱动加载顺序

驱动直接放入系统内核之中。这种驱动主要是系统启动加载必须的驱动,数量较少。

驱动以模块的形式放入硬盘。大多数驱动都已这种方式保存,保存位置在 /lib/modules/3.10.0-862.el7.x86_64/kernel/中。

驱动可以被Linux识别,但是系统认为这种驱动一般不常用,默认不加载。如果需要加载这 种驱动,需要重新编译内核,而NTFS文件系统的驱动就属于这种情况。

硬件不能被Linux内核识别,需要手工安装驱动。当然前提是厂商提供了该硬件针对Linux 的驱动,否则就需要自己开发驱动了。

使用NTFS-3G安装NTFS文件系统模块

 下载NTFS-3G插件

我们从网站http://www.tuxera.com/community/ntfs-3g-download/下载NTFS-3G插件到Linux 服务器上。

 安装NTFS-3G插件

在编译安装NTFS-3G插件之前,要保证gcc编译器已经安装。具体安装命令如下:

[root@localhost ~]# tar -zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz 
#解压 
[root@localhost ~]# cd ntfs-3g_ntfsprogs-2013.1.13 
#进入解压目录 
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# ./configure 
#编译器准备。没有指定安装目录,安装到默认位置中 
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# make 
#编译 
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# make install 
#编译安装

安装就完成了,已经可以挂载和使用Windows的NTFS分区了。不过需要注意挂载分区时的文件 系统不是ntfs,而是ntfs-3g。挂载命令如下:

[root@localhost ~]# mount -t ntfs-3g 分区设备文件名 挂载点 
 
例如: 
[root@localhost ~]# mount –t ntfs-3g /dev/sdb1 /mnt/win 

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值