Linux常用的命令总结

  • ls [选项] [目录名 | 列出相关目录下的所有目录和文件
-a  列出包括.a开头的隐藏文件的所有文件
-A  通-a,但不列出"."".."
-l  列出文件的详细信息
-c  根据ctime排序显示
-t  根据文件修改时间排序
---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是'never''always''auto'其中之一
   白色:表示普通文件
   蓝色:表示目录
   绿色:表示可执行文件
   红色:表示压缩文件
   浅蓝色:链接文件
   红色闪烁:表示链接的文件有问题
  • mv [选项] 源文件或目录 目录或多个源文件 | 移动或重命名文件
-b  覆盖前做备份
-f  如存在不询问而强制覆盖
-i  如存在则询问是否覆盖
-u  较新才覆盖
-t  将多个源文件移动到统一目录下,目录参数在前,文件参数在后
eg:
   mv a /tmp/ 将文件a移动到 /tmp目录下
   mv a b 将a命名为b
   mv /home/zenghao test1.txt test2.txt test3.txt
  • cp [选项] 源文件或目录 目录或多个源文件 | 将源文件复制至目标文件,或将多个源文件复制至目标目录。
-r -R 递归复制该目录及其子目录内容
-p  连同档案属性一起复制过去
-f  不询问而强制复制
-s  生成快捷方式
-a  将档案的所有特性都一起复制
  • scp [参数] [原路径] [目标路径] | 在Linux服务器之间复制文件和目录
-v  详细显示输出的具体情况
-r  递归复制整个目录
(1) 复制文件:  
命令格式:  
scp local_file remote_username@remote_ip:remote_folder  
或者  
scp local_file remote_username@remote_ip:remote_file  
或者  
scp local_file remote_ip:remote_folder  
或者  
scp local_file remote_ip:remote_file  
第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名  
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名   
(2) 复制目录:  
命令格式:  
scp -r local_folder remote_username@remote_ip:remote_folder  
或者  
scp -r local_folder remote_ip:remote_folder  
第1个指定了用户名,命令执行后需要输入用户密码;  
第2个没有指定用户名,命令执行后需要输入用户名和密码;
eg:
   从 本地 复制到 远程
   scp /home/daisy/test.txt
   root@10.55.130.213:/home/root 
   从 远程 复制到 本地
   scp root@10.55.130.213:/home/root/test.lua /home/daisy/test.lua
  • rm [选项] 文件 | 删除文件
-r  删除文件夹
-f  删除不提示
-i  删除提示
-v  详细显示进行步骤
  • touch [选项] 文件 | 创建空文件或更新文件时间
-a  只修改存取时间
-m  值修改变动时间
-r  eg:touch -r a b ,使b的时间和a相同
-t  指定特定的时间 eg:touch -t 201804261053.40 log.log 
   -t time [[CC]YY]MMDDhhmm[.SS],C:年前两位
  • pwd 查看当前所在路径
[root@10.25.130.177 lua]# pwd
/opt/soft/nginx/conf/lua
  • cd 改变当前目录
cd - :返回上层目录
cd .. :返回上层目录
cd 回车  :返回主目录
cd /   :根目录
  • mkdir [选项] 目录… | 创建新目录
-p  递归创建目录,若父目录不存在则依次创建
-m  自定义创建目录的权限  eg:mkdir -m 777 pain
-v  显示创建目录的详细信息
  • rmdir 删除空目录
-v  显示执行过程
-p  若自父母删除后父目录为空则一并删除
  • echo:显示内容
-n  输出后不换行
-e  遇到转义字符特殊处理  
   eg:
       echo "enh\enh"   显示eng\enh
       ehco -e "he\nhe"    显示he(换行了)he
  • .cat [选项] [文件]..| 一次显示整个文件或从键盘创建一个文件或将几个文件合并成一个文件
-n  编号文件内容再输出
-E  在结束行提示$

tac | 反向显示

  • less | 可前后移动地逐屏查看文章内容,在查看前不会加载整个文件
-m  显示类似于more命令的百分比
-N  显示行号
/   字符串:向下搜索“字符串”的功能
?   字符串:向上搜索“字符串”的功能
n   重复前一个搜索(与 / 或 ? 有关)
N   反向重复前一个搜索(与 / 或 ? 有关)
b   向后翻一页
d   向后翻半页
  • nl [选项]… [文件]… | 将输出内容自动加上行号
 -b 
-b a 不论是否有空行,都列出行号(类似 cat -n) 
-b t 空行则不列行号(默认) 
-n 有ln rn rz三个参数,分别为再最左方显示,最右方显示不加0,最右方显示加0
  • head [参数]… [文件]… | 显示档案开头,默认开头10行
-v  显示文件名
-c number   显示前number个字符,若number为负数,则显示除最后number个字符的所有内容
-number/n (+)number     显示前number行内容,
-n numbernumber为负数,则显示除最后number行数据的所有内容
  • tail [必要参数] [选择参数] [文件] | 显示文件结尾内容
-v  显示详细的处理信息
-q  不显示处理信息
-num/-n (-)num      显示最后num行内容
-n +num 从第num行开始显示后面的数据
-c  显示最后c个字符
-f  循环读取
  • vi 编辑文件 可以创建一个文件
:w filename 将文章以指定的文件名保存起来  
:wq 保存并退出
:q! 不保存而强制退出
命令行模式功能键
1)插入模式
   按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;
   按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
   按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2)从插入模式切换为命令行模式
 按「ESC」键。
3)移动光标
  vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
  按「ctrl」+「b」:屏幕往"后"移动一页。
  按「ctrl」+「f」:屏幕往"前"移动一页。
  按「ctrl」+「u」:屏幕往"后"移动半页。
  按「ctrl」+「d」:屏幕往"前"移动半页。
  按数字「0」:移到文章的开头。
  按「G」:移动到文章的最后。
  按「$」:移动到光标所在行的"行尾"。
  按「^」:移动到光标所在行的"行首"
  按「w」:光标跳到下个字的开头
  按「e」:光标跳到下个字的字尾
  按「b」:光标回到上个字的开头
  按「#l」:光标移到该行的第#个位置,如:5l,56l。

4)删除文字
  「x」:每按一次,删除光标所在位置的"后面"一个字符。
  「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。
  「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。
  「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。
  「dd」:删除光标所在行。
  「#dd」:从光标所在行开始删除#行

5)复制
  「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  「#yw」:复制#个字到缓冲区
  「yy」:复制光标所在行到缓冲区。
  「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
  「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

6)替换
  「r」:替换光标所在处的字符。
  「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

7)回复上一次操作
  「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。

8)更改
  「cw」:更改光标所在处的字到字尾处
  「c#w」:例如,「c3w」表示更改3个字

9)跳至指定的行
  「ctrl」+「g」列出光标所在行的行号。
  「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
  • which 可执行文件名称 | 查看可执行文件的位置,在PATH变量指定的路径中查看系统命令是否存在及其位置

  • whereis [-bmsu] [BMS 目录名 -f ] 文件名| 定位可执行文件、源代码文件、帮助文件在文件系统中的位置

-b   定位可执行文件。
-m   定位帮助文件。
-s   定位源代码文件。
-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B   指定搜索可执行文件的路径。
-M   指定搜索帮助文件的路径。
-S   指定搜索源代码文件的路径。
  • locate | 通过搜寻数据库快速搜寻档案
-r  使用正规运算式做寻找的条件
  • find find [PATH] [option] [action] | 在文件树种查找文件,并作出相应的处理

`选项与参数:
1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime 和-amin,-cmin与-mmin,以 -mtime 说明 -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的档案; -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的档案档名; -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的档案档名。
-newer file :file 为一个存在的档案,列出比 file 还要新的档案档名

  1. 与使用者或组名有关的参数: -uid n :n 为数字,这个数字是用户的账号 ID,亦即 UID -gid n :n 为数字,这个数字是组名的 ID,亦即 GID -user name :name 为使用者账号名称!例如 dmtsai
    -group name:name 为组名,例如 users ; -nouser :寻找档案的拥有者不存在 /etc/passwd 的人! -nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案!

  2. 与档案权限及名称有关的参数: -name filename:搜寻文件名为 filename 的档案(可使用通配符) -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有:
    c: 代表 byte
    k: 代表 1024bytes。所以,要找比 50KB还要大的档案,就是『 -size +50k 』 -type TYPE :搜寻档案的类型为 TYPE 的,类型主要有:
    一般正规档案 (f)
    装置档案 (b, c)
    目录 (d)
    连结档 (l)
    socket (s)
    FIFO (p) -perm mode :搜寻档案权限『刚好等于』 mode的档案,这个mode为类似chmod的属性值,举例来说,-rwsr-xr-x 的属性为4755! -perm -mode
    :搜寻档案权限『必须要全部囊括 mode 的权限』的档案,举例来说,
    我们要搜寻-rwxr–r– 亦即 0744 的档案,使用-perm -0744,当一个档案的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr–r– 的属性了。 -perm
    +mode :搜寻档案权限『包含任一 mode 的权限』的档案,举例来
    说,我们搜寻-rwxr-xr-x ,亦即 -perm +755 时,但一个文件属性为 -rw——-也会被列出来,因为他有 -rw…. 的属性存在!

  3. 额外可进行的动作: -exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的结果。 -print :将结果打印到屏幕上,这个动作是预设动作! eg:
    find / -perm +7000 -exec ls -l {} \; ,额外指令以-exec开头,以\;结尾{}代替前面找到的内容 | xargs
    -i 默认的前面输出用{}代替
    eg:
    find . -name “*.log” | xargs -i mv {}
    test4`
  • grep ‘正则表达式’ 文件名 | 用正则表达式搜索文本,并把匹配的行打印出来(这个是最常用的查询命令一定要记住咯)
-c  只输出匹配行的计数。
-I  不区分大小写(只适用于单字符)。
-l  只显示文件名
-v  显示不包含匹配文本的所有行。
-n  显示匹配行数据及其行号
  • gzip [-cdtv#] 檔名 | 压缩、解压缩,源文件都不再存在
-d  进行解压缩
-c  将压缩的数据输出到屏幕上
-v  :显示原档案/压缩文件案的压缩比等信息
-#  :压缩等级,-1最快,但压缩比最差,=9最慢,但压缩比最好
  • gunzip | 解压缩
  • bzip2 | 压缩、解压缩
-d  :解压
-z  :压缩
-k  :保留源文件
-c :将压缩的过程产生的数据输出到屏幕上!
-v :可以显示出原档案/压缩文件案的压缩比等信息;
-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
  • bzcat 读取数据而无需解压

  • .tar [主选项+辅选项] 文件或者目录 | 多个目录或档案打包、压缩成一个大档案

主选项:
   -c  建立打包档案,可搭配 -v 来察看过程中被打包的档名(filename)
   -t  察看打包档案的内容含有哪些档名,重点在察看『档名』就是了;
   -x  解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
辅选项:
   -j  透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
   -z  透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
    -v  在压缩/解压缩的过程中,将正在处理的文件名显示出来!
   -f filename -f 后面要立刻接要被处理的档名!
   -C 目录   这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
   --exclude FILE:在压缩打包过程中忽略某文件 eg: tar --exclude /home/zenghao -zcvf myfile.tar.gz /home/* /etc
   -p  保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
   -P(大写)  保留绝对路径,亦即允许备份数据中含有根目录存在之意;
   eg:解压到 opt/soft/apollo/ 
   tar -zxvf xxx.tzr.gz -C ../opt/soft/apollo/
  • exit 退出当前shell
  • logout 退出登录shell
  • users 显示当前登录系统地用户
  • who 登录在本机的用户与来源
-H或--heading  显示各栏位的标题信息列。
  • w 登录在本机的用户及其运行的程序
-s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-h  不显示各栏位的标题信息列。
  • finger [选项] [使用者] [用户@主机] | 查看用户信息
-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息
-l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
-p 除了不显示.plan文件和.project文件以外,与-l选项相同
  • hostname 查看主机名
  • unalias ii | 清除别名
  • useradd [-u UID] [-g 初始群组] [-G 次要群组] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名 | 新增用户
-M  不建立用户家目录!(系统账号默认值)
-m  建立用户家目录!(一般账号默认值)
-r  建立一个系统的账号,这个账号的 UID 会有限制 
-e  账号失效日期,格式为『YYYY-MM-DD-D  查看useradd的各项默认值
  • passwd | 修改密码
-l  使密码失效
-u  与-l相对,用户解锁
-S  列出登陆用户passwd文件内的相关参数
-n  后面接天数,shadow 的第 4 字段,多久不可修改密码天数
-x  后面接天数,shadow 的第 5 字段,多久内必须要更动密码
-w  后面接天数,shadow 的第 6 字段,密码过期前的警告天数
-i  后面接『日期』,shadow 的第 7 字段,密码失效日期
使用管道刘设置密码:echo "zeng" | passwd --stdin zenghao
  • userdel 删除用户
-r  用户文件一并删除
  • chage [-ldEImMW] 账号名 | 修改用户密码的相关属性
-l  列出该账号的详细密码参数;
-d  后面接日期,修改 shadow 第三字段(最近一次更改密码的日期),格式YYYY-MM-DD
-E  后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
-I  后面接天数,修改 shadow 第七字段(密码失效日期)
-m  后面接天数,修改 shadow 第四字段(密码最短保留天数)
-M  后面接天数,修改 shadow 第五字段(密码多久需要进行变更)
-W  后面接天数,修改 shadow 第六字段(密码过期前警告日期)
  • usermod [-cdegGlsuLU] username | 修改用户的相关属性
-c  后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d  后面接账号的家目录,即修改 /etc/passwd 的第六栏;
-e  后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!
-f  后面接天数为 shadow 的第七字段。
-g  后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是GID的字段!
-G  后面接次要群组,修改这个使用者能够支持的群组
-l  后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
-s  后面接 Shell 的实际档案,例如 /bin/bash 或 /bin/csh 等等。
-u  后面接 UID 数字啦!即 /etc/passwd 第三栏的资料;
-L  冻结密码
-U  解冻密码
  • id [username] | 查看用户相关的id信息,还可以用来判断用户是否存在
  • groups 查看登陆用户支持的群组, 第一个输出的群组为有效群组
  • newgrp 切换有效群组
  • groupadd [-g gid] 组名 | 添加组
-g  设定添加组的特定组id
  • groupmod [-g gid] [-n group_name] 群组名 | 修改组信息
-g  修改既有的 GID 数字
-n  修改既有的组名
  • groupdel [groupname] | 删除群组
  • gpasswd | 群组管理员功能
root管理员动作:
   -gpasswd groupname 设定密码
   -gpasswd [-A user1,...] [-M user3,...] groupname
       -A  将 groupname 的主控权交由后面的使用者管理(该群组的管理员)
       -M  将某些账号加入这个群组当中
   -gpasswd [-r] groupname
       -r  将 groupname 的密码移除
群组管理员动作:
 - gpasswd [-ad] user groupname 
       -a  将某位使用者加入到 groupname 这个群组当中
       -d  将某位使用者移除出 groupname 这个群组当中
  • df [选项] [文件] | 显示指定磁盘文件的可用空间,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示
-a  显示全部文件系统
-h  文件大小友好显示
-l  只显示本地文件系统
-i  显示inode信息
-T  显示文件系统类型
  • diff [参数] [文件1或目录1] [文件2或目录2] | 比较单个文件或者目录内容
-b  不检查空格字符的不同。
-B  不检查空白行。
-i  不检查大小写
-q  仅显示差异而不显示详细信息
eg: diff a b > parch.log 比较两个文件的不同并产生补丁
  • cal [参数] 月份] [年份] | 查看日历
-1  显示当月的月历
-3  显示前、当、后一个月的日历
-m  显示星期一为一个星期的第一天
-s  (默认)星期天为第一天
-j  显示当月是一年中的第几天的日历
-y  显示当前年份的日历
  • ps | 列出当前进程的快照
a   显示所有的进程
-a  显示同一终端下的所有程序
e   显示环境变量
f   显示进程间的关系
-H  显示树状结构
r   显示当前终端的程序
T   显示当前终端的所有程序
-au 显示更详细的信息
-aux    显示所有包含其他使用者的行程 
-u  指定用户的所有进程
  • top [参数] | 显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
  • kill [参数] [进程号] | 杀死进程
  • free [参数] | 显示linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer
  • at [参数] [时间] | 在一个指定的时间执行一个指定任务,只能执行一次
  • ping [参数] [主机名或IP地址] | 测试与目标主机的连通性
  • netstat | 显示与IP、TCP、UDP和ICMP协议相关的统计数据
  • rcp [参数] [源文件] [目标文件] | 远程文件拷贝
-r  递归复制
-p  保留源文件的属性
usage: rcp –r remote_hostname:remote_dir local_dir
  • awk
-F 分隔符  以分隔符分隔内容
{}  要执行的脚本内容 eg:cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'
  • sed 对数据行进行替换、删除、新增、选取等操作
a   新增,在新的下一行出现
c   取代,取代 n1,n2 之间的行 eg: sed '1,2c Hi' ab
d   删除
i   插入,在新的上一行出现
  • paste 合并文件,需确保合并的两文件行数相同
-d  指定不同于空格或tab键的域分隔符
-s  按行合并,单独一个文件为一行
  • su [参数] user | 切换登陆
-l  切换时连同环境变量、工作目录一起改变
-c command  执行command变回原来的使用者
  • sudo | 以特定用户的权限执行特定命令
-l  列出当前用户可执行的命令
-u username#uid 以指定用户执行命

部分引用–https://mp.weixin.qq.com/s/DdADHt-UKeaXWDvty2dHhw

猜你喜欢

转载自blog.csdn.net/qq_25406669/article/details/80091136