Linux基本命令回顾与总结

本文提供了Linux常用命令的快速查阅表,涵盖了文件管理、系统监控、用户管理等核心内容。介绍了如何使用find、grep等工具进行文件搜索,以及如何利用top、ps等命令监控系统资源。

which

显示一个可执行文件的完整路径

按照alias -> $PATH的顺序查找

whereis

搜索一个可执行工具以及相关配置、帮助

相对于which更全,更详细,更完整

slocate   [关键字段]

所有文件名及其所在路径包含关键字段的文件与目录都会显示

slocate先将当前目录结构做成一个数据库,然后再在此数据库中搜索匹配记录。

find  [路径]  [参数]   [表达式]

从指定路径下递归向下搜索文件

支持

[参数] type(f,c,l,d), user, group, name,nouser, nogroup,perm(根据权限)

-exec 指令 {} /;

-{}find找到的文件

-/禁止转意

-;表示本行指令结束

举例:

find . -perm 6000 -exec chown lybing.lybing {} /; 表示把找到的文件,放到chown指令里执行改变文件的拥有者为lybing.lybing

wc (-l(),w(单词),c(字符))统计文件的行数,单词数,字符数

grep(-n(行号), -v(反向选择))在文件中查找包含指定字符串或不包含指定字符串的行

sort (-t,-k,-r) 按序重排文本并送显示

diff A B 用于比较两个文件的不同(与位置有关),报告文本差异内容

compare  A B 报告文本差异位置

uniqu  去除文件中重复的行

cut     显示文件中的某一列 cut –c4-8 cut1(显示第四到第八个字符)   cut –f2 –d.(.分栏显示第二栏)

 

paste    文本按列拼接 paste abc ABC > merge ()

                                              cat   abc ABC > merge(连接两个文件)

 

查看磁盘的情况 df –h(G为单位)

du –h(G为单位)查看文件的占用空间

head 查看文件的前几行内容

tail 显示文件的后几行内容

在系统中默认有12个虚拟控制台,默认情况下可以使用6个虚拟控制台,切换方式:Alt+F(n)(n=1,2,3,4,5,6)

su (-,-完全切换) + 用户名

file 查看文件的类型

ln –s(软连接) 源文件  新建连接名

硬链接:不能跨越文件系统,不能为目录建立硬链接(源文件删除,则链接依然有效,相当于源文件的一个copy

软链接(相当于快捷方式,源文件删除,则链接失效)

硬链接和软链接都会自动保持同步。

ext2/ext3文件格式的文件有Blocks Inode两部分组成

一旦用rm指令删除文件中的inode记录,文件无法被找回

可以用stat指令查看文件组成情况

chgrp  改变文件的所属组

文件名以.开头的文件是隐藏文件,隐藏文件可以用ls –a查看

...文件分别是当前文件和父文件的硬链接

对于目录的写权限:单独使用没有作用,必须同时具有执行权限才可以删除和增加

强制位与冒险位

除了读写执行权限以外,ext2文件系统还支持强制位(setuidsetgid)冒险位(sticky)的特别权限。

强制位与冒险位添加在执行权限的位置上。如果该位置上原已经有执行权限,则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。

set uidset gidugx位置上各采用一个s,sticky使用一个t

set gid 对目录的作用

默认情况下,用户建立的文件属于用户当前所在的组。

在目录上设置了setgid,表示在此目录中,任何人建立的文件,都会属于目录所属的组

冒险位对目录的作用

默认情况下,如果一个目录上有wx权限,则任何人可以在此目录中建立和删除文件

一旦目录上设置了冒险位,则表示在此目录中,只有文件的用户者目录的拥有者系统管理员可以删除文件

强制位对文件的作用:

在可执行文件上,用户可以添加set uid set gid

默认情况下,用户执行一个指令,会以该用户的身份来运行进程。

指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程

强制位与冒险位的设定:

强制位与冒险位的设定也可以通过数字加和,在读写执行的前面。

4(set uid)   2 (set gid)  1(sticky)

chmod 4777 test

注:setuid只能用于文件上,setgid可以在目录上也可以在文件上,冒险为只能在目录上设定。

umask

0022

[root@centos /]# umask -S

u=rwx,g=rx,o=rx

每个用户建立文件时,此文件都会有默认的权限。

默认权限的值是由环境中的umask来确定的

用户可以自主改动umask的指,并在改动后建立的文件上得到体现。

一般用户的默认umak值为002,系统用户的默认umask值为022.

系统用户:目录:755 文件644

一般用户 目录:775 文件 664

这与umask值有关,默认权限减去umask即的建立文件与目录默认权限。

Linux中的应用工具分为三种:

交互工具    过滤器   编辑器

能够接收数据,过滤再输出的工具, 称为过滤器

对过滤器和进程,存在着输入源与输出对象

重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向。

ls -l /dev/std*

lrwxrwxrwx  1 root root 15 Jun 23 23:47 /dev/stderr -> /proc/self/fd/2(标准错误输出)

lrwxrwxrwx  1 root root 15 Jun 23 23:47 /dev/stdin -> /proc/self/fd/0(标准输入)

lrwxrwxrwx  1 root root 15 Jun 23 23:47 /dev/stdout -> /proc/self/fd/1(标准输出)

输入从定向:使用“<”来重定向输入源   大多数工具都会以其后的文件名为输入源    有一些过滤器一定需要添加 < 以明确输入源

从当前文档输入:使用 <<让系统将一次键盘的全部输入,先送入虚拟的“当起文档”,然后一次性输入    需要一对字母、符号或字符串作为起始终结标识符     可以选择任意符号作为起始终结标识符

cat > cat.file <<!

> this is test

> !

[root@centos test]# cat cat.file

this is test

输出重定向:

使用>改变数据输出目标:  ls –l  > listfile,将当前目录下的文件以长模式显示,然后写入listfile文件,文件已有内容会被消除

使>>,可以将输出追加进入文件

错误输出重定向

系统错误与标准输出使用的I/O管道不同,默认情况下,系统报错会显示到终端屏幕上

使用2>将报错讯息重定向入一个文件  find / -type s 2>/dev/null

使用2>>将报错讯息追加入一个文件

双重输出重定向:使用>2>可以将一次操作的正确、错误输入,被单独地送到不同的地方

find / -perm -2 2> error > results

使用&> 将所有输入都送向同一个地方

find / -perm +6000 &> file

管道:

使用 | 将前一个过滤器的输出直接送入后一个过滤器的输入:

ls –l | grep pass

允许多重管道,两个管道的类型应该匹配。

拷贝文件的内容 cat< filea > fileb

cat file.* > file

将数个小文件合并成一个打文件

压缩:

gzip, gunzip(只能压缩文件)  Linux 标准压缩工具,对文本文件可以达到75%的压缩率, gzip (-d,解压) 文件名  gunzip(解压) 文件名, zcat 文件名(查看压缩文件的内容)

compress, uncompress  旧的Unix压缩工具

bzip2, bunzip2(只能压缩文件) 更新的Linux压缩工具,比gzip有着更高的压缩率。bzip2(-d,解压)  文件名  bunzip2(解压) 文件名   bzcat 文件名(查看压缩文件的内容)

tar: 用于在磁带机、软盘、zip设备上做备份。也可以备份在一个硬盘文件上(不提供压缩功能)

主要参数:

c: 将文件备份出来

v: 将过程输出

x: 从一个文件中接备份出来。

备份: tar cvf backup.tar  * .txt

解开: tar xvf backup.tar –C (解压缩路径)back/

tar打包并用gzip压缩: tar –zcvf test.tar.gz test –C /

tar解包用gzip压缩的文件: tar –zxvf test.tar.gz.test –C /

tar打包并用bzip2压缩:tar –jcvf test.tar.bz2 test –C /

tar解包用bizp2压缩的文件: tar –jxvf tar.bz2 test –C /

dump/restore  备份与还原ext2/3文件系统,不可以在其他文件系统上使用,可以选择进行完全备份或增量备份

dump -0(0,表示完全备份)u(将备份记录到/etc/dump/dates) –f指定备份路径  /var/tmp/hda2dump  /dev/hda1(要备份的分区)

restore –r(还原操作)f(文件) /var/tmp/hda2dump(还原到当前路径)

Shell: 命令解释器,是用户与系统沟通时的媒介。

Unix系统中有各种Shell, Linux 采用bash为其默认shell,系统可以使用的shell记录在/etc/shells中。

bash : Bourne Again Shell 的缩写。

环境变量:

定义: a= boobke  显示: echo $a eho ${a}   删除:unset a

常用的预定义环境变量:

HOME: 当前用户的主目录

PATH:当前用户的可执行文件搜索路径

LANG: 程序应该使用的默认语言(locale –a 查看系统支持的语系)

PS1: 行提示符 [/u@/h /W]/$

用户可以用set(显示本地变量和环境变量)或env(环境变量)查询当前的环境变量

将本地变量转换为环境变量的方式 export 变量名

history:bash中输入history指令可以查询用户的过往操作,内存中记录的过往指令数根据环境变量中HISTSIZE而定。history表存储在内存中,在用户logout时会记录入用户主目录下的.bash_history文件中。在下次login时载入

.bash_history中的指令数根据环境变量中的HISTFILESIZE而定。

history –w 强制把用过的指令写入.bash_history文件

使用!来调用过往的指令:

!!: 重复执行上一条指令

!a: 重复执行上一条以a为首的指令

!number重复执行上一条在history表中记录号码为number的指令。

!-number:重复执行前第number条指令

!$ 截取上一条命令的参数

别名:alias可以查看shell的别名.

定义: alias la=’ls –al’  取消别名: unalias la

alias记录在shell中总是在最先行

命令行表达式:

“”将一串字符当成一个字符串来对待,如果字符川中包含特殊含义的字符,则转义$,/~!

‘’将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,也不转义

执行引用号——`` 引用命令的执行结果

ls –al ‘PWD’ 

数学运算——$[],在中括号内的表达式会被数学计算。

逸托付——/

用于取消命令行中字符的特殊含义用于表示一行未结束

用于分割多个指令,则同时执行多个指令。表示一行已结束,相当于回车键。

shell激活——()

在小括号内的命令行表示激活一个子shell在子shell中运行

并且子shell中不会传递给当前shell

shell命令行支持在同一行的两条命令中插入&&(逻辑与)||(逻辑或);&& 当前一条指令执行成功时再执行后一条指令

|| 当前一条指令执行失败时再执行后一条指令。

ls /test &&  echo "exist" || echo "no exist" 文件存在,则print exit,否则print “no exist”,

在默认情况下,在shell中设置变量,设置umask和别名,当退出shell时,改变则无效

一个通过登录而得到的shell,一般是用户的初始shell,在登录shell下激活的shell采用登录shell的环境设定

登录shell从配置文件中读取其环境变量

图形界面下的终端,及通过su都是非登录shell.

bash 在用户登录时从四个文件中读取环境设定:

全局设置文件(对所有用户生效):

/etc/profile(设置PATH, MAIL    /etc/bashrc(设置UMASK, PS1,自定义变量) 

用户设置文件(只对特定用户有效):

~/.bashrc (设置别名和一些函数,以及)         ~/.bash_profile (环境变量)

~/.bah_logout: 在用户logout的时候自动执行。

~/.bash_history: 用户login时自动读取其内容并加载到内存history记录中,logout时将内存history记录写入。

/etc/profile.d/*.sh:/etc/profile中被执行,其中的环境设定,也会被全局引用。

登录shell  : /etc/profile   /etc/profile.d/*.sh   ~/.bash_profile 

~/.bashrc   /etc/bashrc(有些版本可能不存在这个文件) su - lybing

注:先设置的环境变量值会被后设置的环境变量值所覆盖

非登录shell: ~/.bashrc   /etc/bashrc(有些版本可能不存在这个文件):  /etc/profile.d/*.sh  su lybing

从上看出:当重新登录开启登录shell时,才会执行profile文件(包括家目录中的),而bash文件,则在登录和非登录中都会执行。

ctrl + d: 输入已结束。在shell下相当于一个exit

ctrl+c:  键盘中断请求

ctrl + s & ctrl + q:暂停/恢复屏幕输出

Tab双击可以列出所有可能匹配的选择。

系统监控:

uname(-a完整信息): 显示系统信息  hostname :  显示主机名

last: 列出最近的用户登录  lastlog: 列出每一个用户的最近登录情况  free,vmstat 显示内存的情况(Linux充分利用内存)   top 系统监视器(5秒更新一次)top –d 3(3秒更新一次)top –b(批处理)n(更新次数)top -b -n 2 > test.top top时按下大写P,cpu使用率排序,按下M,以内存的,系统的原始进程是init,initPID总是1,一个进程可以产生另一个进程,除了init以外,所有的进程都有父进程。 top & 以后台执行

ps: 查询进程的指令 _Ae(显示所有的) -a(列出所有与,但不包含中断的)

-l(长模式,当前登录用户的)  –f(完整方式)  -x  -u(有效的)ps 后加不加(-)包含不同的含义 ps aux stat S(睡眠进程) S<(高优先级) SN(低优先级) Z(僵死进程,父进程已死的进程) R(运行进程) VSZ(虚拟内存占用量),(RSS,固定内存占有量)WCHAN 当前进程状态, F4超级用

pstree可以用来以树状方式表现进程关系-a, -aux

gnome-system-monitor  gnome下的图形监视工具

kill: 语法: kill [-signal]  PID, z向进程传递一个讯号(kill –l 查看所有讯息) SIGHUP(1,重启进程) , SIGINT(2,以前台方式终止进程) SIGKILL(9,强制终止进程)  SIGTERM(15,正常方式结束进程),查看每个讯号的作用 man 9 sinal

killall 根据名称

进程的优先级:用nice值来表示,nice:以一个不同的nice值来运行指令, nice –n(-20()19(),默认是0,一般用户只能降低优先级)num command  nice –n -2 top &

renice: 改变一个运行进程的nice renice –6 pid 

同时,在top命令时,也可以按r,然后改变nice

前台和后台

默认情况下,一个命令执行后,此指令将独占shell,并拒绝其他输入。我们称之为前台进程。反之,则称为后台进程。

对每一个控制台,都允许多个后台进程。

对前台/后台进程的控制与调度,被称为任务控制。

将进程送去后台执行: command &: 将一个进程直接丢入后台运行。

nohup command &: 将一个进程直接丢入后台运行,而且在该控制台退出后,进程仍不挂断。

ctrl +z:将一个正在运行的前台进程暂停,并丢入后台。

作业控制:即控制进程执行与挂起。

jobs: 列出系统当前的后台进程

fg:将后台进程拉回前台 fg jobid(作业号)

bg激活后台暂停的进程

/prof目录是一个虚拟的文件系统,包含了来自正在运行着的核心的信息,用户可以通过cat /etc/proc/下的文件,来获得系统的信息。

这些信息包含系统硬件,网络设置,内存使用,及其它一些东西

proc/sys目录下的文件,允许系统管理员更动,这些变动直接影响当前核心内核参数。

每一个进程在该文件夹下都对应一个目录,并且以pid作为文件夹名。

系统日志记录着系统运行中的记录信息,在服务或系统发生故障的时候,通过查询系统日志,可以帮助我们诊断。

系统日志可以预警安全问题

系统日志一般都存放在/var/log目录下。

var/log/dmesg 核心启动日志(或直接输入dmesg查看)

var/log/messages 系统报错日志  tail -f /var/log/messages(查看最近写入日志的信息,并动态更新)

/var/log/maillog  邮件系统日志

/var/log/xferlog  FTP服务用日志

/var/log/secure   安全信息  系统登录与网络连接的信息

/var/log/wtmp(二进制文件)  登录记录,last, lastlog 从此获得信息

用户管理

用户可以使用下列指令了解用户

who: 查询当前在线的用户

groups: 查询用户所属的组 groups  查看当前用户  groups lybing 查看指定用户

id:     显示当前用户信息

finger: 查询用户信息

whoami : 查询当前用户

用指令添加命令:

useradd  <username>     passwd <password>

系统添加用户的标准步骤:

编辑/etc/passwd/etc/group

创建用户主目录

/etc/skel拷贝文件与目录

让新用户获得其主目录与文件的拥有权限

给新用户一个密码

usermod -c lybing lybing 更改用户的全名

usermod –d /home/lybing lybing(只是指定家目录为相应目录,并不建立目录,要手动创建,并改变权限拥有者的信息)

usermod –e “2009-01-01”  修改用户的过期时间

usermod –G 添加用户到指定组里面(实际上是更改用户所属的组)

usermod –g 更改用户的gid

usermod –s  更改用户的默认shell

usermod –u  更改用户的uid

usermod –p  更改用户的密码

usrmod –L   锁定用户 pssswd –S 查看用户密码状态

usermod –U  锁定用户解锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值