【好记性不如烂笔头】linux基本命令总结

前言

总结这篇博客,其实我也想了很久。一直犹豫不决,写还是不写呢?最终我还是决定总结一篇基础篇,自己以前学习的时候都是看视频总结的。写下这篇总结对新入坑者肯定是有些好处的,至少可以少走一些弯路,自己也可以得到一些提升。

还没有安装虚拟机的小伙伴可以参考我之前的博文:
linux养成达人之入门实践图文超详细(工欲善其事,必先利其器篇)

目录

  • 命令格式以及文件处理命令
  • 文件搜索命令
  • 帮助命令
  • 压缩命令
  • 关机与重启命令
  • 其它常用命令
  • shell基础

正文

一、命令格式以及文件处理命令

好了,上面罗里吧嗦的讲了一堆,结果只是前戏。这会肯定有人纳闷了,我看了这么久的前戏,咋还没进去。这不,下面你蹭一蹭就进去了,进入正题。

[root@localhost~]#

  • root:代表当前登录用户,超级用户。
  • localhost:代表默认主机名
  • ~:代表你的当前目录[家目录],root用户登录所在初始目录在根目录
  • #:代表root用户提示符
  • 如果是$符号是普通用户登录

1. 命令格式

  • 命令 [选项][参数]
  • 注意:个别命令使用不遵循此格式。有多个选项时可以写在一起,简化选项与完整选项-a等于--all

查看列表详情命令:ls [选项][参数]

  • -a:显示所有文件,包含隐藏文件
  • -l:显示详细信息
  • -d:查看目录属性
  • -h:个性化显示文件大小
  • -i:显示inode

2. 目录处理命令

  • 建立目录命令:mkdir [选项] [目录]
  • -p:递归创建

切换所在目录命令:cd [目录]

  • 简化操作,注意:cd与符号之间是有空格的
  • cd ~:进入当前目录的家目录
  • cd -:进入上次目录
  • cd …:进入上一级目录
  • cd .:进入当前目录

TAB键:补全

查看当前路径命令:pwd,常用命令

删除目录命令:rmdir [选项],删除目录,一般不用,了解就行。

删除命令:rm [选项] [目录或文件]

  • -r:删除目录
  • -f:强制删除

复制命令:cp [选项][原目录或文件][目标目录]
选项:

  • -r:复制目录
  • -p:连带文件属性复制
  • -d:如果源文件是链接文件,则复制链接属性
  • -a:相当于-pdr

剪切或改名命令:mv [原目录或文件][目标目录]

  • 注意:当原文件目录和目标目录是同一目录时就是改名,当原文件目录和目标目录不是一目录时就是剪切

3. 常见目录作用

  • :/ 根目录
  • :/bin 命令保存目录(普通用户就可以读取的命令)
  • :/boot 启动目录,启动相关文件
  • :/dev 设备文件保存目录
  • :/etc 配置文件保存目录
  • :/home 普通用户的家目录
  • :/lib 系统库保存目录
  • :/mnt 系统挂载目录
  • :/media 挂载目录

*********************************** 视觉疲劳分割线 ***********************************

  • :/root 超级用户的家目录
  • :/tmp 临时目录
  • :/sbin 命令保存目录(超级用户才能使用的目录)
  • :/proc 直接写入内存
  • :/sys
  • :/usr 系统软件资源目录
  • :/usr/bin 系统命令(普通用户)
  • :/usr/sbin 系统命令(超级用户)
  • :/var 系统相关文档内容

4. 链接命令ln,注意:实际的应用中实用的更多的是软链接

硬链接:ln /root/cangls /tmp/cangls.hard

特征

  • 拥有相同的I节点和block块,可以看做是同一个文件
  • 可通过I节点识别
  • 不能夸分区
  • 不能针对目录使用

软链接ln -s /root/cangls /tmp/cangls.soft注意:使用软链接时,原文件一定要用绝对路径

特征

  • 类似windows快捷键
  • 软链接拥有自己的I节点和block块,但是数据块中只保存源文件的文件名和I节点号,并没有实际的文件数据
  • lrwxrwxrwx,l:软链接,软链接权限都为lrwxrwxrwx,注意:真实权限都看源文件
  • 修改任意文件,另一个都改变
  • 删除原文件,软链接无法使用

二、文件搜索命令

  1. 文件搜索命令locate
  • locate [文件名],只能接文件名
  • 在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
  • locate命令所搜索的后台命令,不是及时更新,这时可以使用updatedb命令更新

updatedb 更新数据库

/etc/updatedb.conf配置文件

  • PRUNE_BIND_MOUNTS,开启搜索限制
  • PRUNEFS="",不搜索的系统文件
  • PRUNENAMES="",不搜索的文件类型
  • PRUNEPAEHS="",不搜索的路径

2. 命令搜索命令

whereis [命令],搜索命令所在路径以及帮助文档所在位置

  • b:只查找可执行文件
  • m:只查找帮助文件
  • 注意:局限性,只能搜索系统命令

which [文件名]

  • 搜索所在路径以及别名,部分命令不支持,例如:pwd,cd

find 文件搜索命令

  • find [搜索范围][搜索条件]
  • 例如:find / -name install.log
  • 避免大范围搜索,会非常耗费系统资源。
  • find是在系统中搜索符合条件的文件名。如需匹配,使用通配符,通配符是完全匹配。

不区分大小写find /root -iname install.log

按照所有者搜索find /root -user root

查找所有者的文件find /root -nouser

查找10天前修改的文件find /var/log -mtime +10

  • -10,10天内修改的文件;10,10天当天修改的文件;+10,10天前修改的文件。
  • atimne,文件访问时间;ctime,修改文件属性;mtime,修改文件内容。

查找/etc目录下大小为25KB的文件:find /etc -size 25k

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

查找i节点为262422的文件

  • find . -inum 262422

查找/etc/目录下大于20KB且小于50KB的文件

  • find /etc -size +20k -a -size -50k
  • -a相当于and,逻辑与,两个条件都满足
  • -o相当于or,逻辑或,两个条件满足一个即可

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

  • find /etc -size +20k -a -size -50k -exec ls -lh {} \;
  • -exec/-ok 命令 {}\;对搜索结果执行操作

grep 字符串搜素命令

  • grep [选项] 字符串 文件名,在文件当中匹配符合的字符串
  • -i,忽略大小写
  • -v,排除指定字符串
  • 根据文件大小匹配:grep "size" anaconda-ks.cfg

findgrep的区别

  • find命令:在系统当中搜索符合条件的文件名,如需匹配,使用通配符,通配符是完全匹配。
  • grep命令:在文件当中搜索符合条件的字符串,如需匹配,使用正则表达式进行匹配,正则表达式是包含匹配。

三、帮助命令

1. 帮助命令man的级别:

  • 1:查看命令的帮助
  • 2:查看可被内核调用的函数的帮助
  • 3:查看函数和函数库的帮助
  • 4:查看特殊件的帮助(主要是/dev目录下的文件)
  • 5:查看配置文件的帮助
  • 6:查看游戏的帮助
  • 7:查看其它杂项的帮助
  • 8:查看系统管理员可用命令的帮助
  • 9:查看和内核相关文件的帮助

man 命令,获取指定命令的帮助

  • 例如:man ls,查看ls的帮助

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

  • man -f 命令相当于whatis命令

例如:

  • man -5 passwd
  • man -4 null
  • man -8 ifconfig

查看命令相关的所有帮助

  • man -k 命令,相当于apropos 命令
  • 例如:apropos -passwd

2. 其它帮助命令

  • --help命令,获取命令选项帮助
  • 例如:ls --hrlp

help shell内部命令

  • 获取shell内部命令的帮助
  • 例如:whereis cd,确定是否是shell内部命令
  • 例如:help cd,获取内部命令帮助

info,详细命令帮助

  • 回车:进入子帮助页面(带有*号标记)
  • u:进入上层页面
  • n:进入下一个帮助小结
  • p:进入上一个帮助小结
  • q:退出

四、压缩命令

1. 压缩命令1
zip命令

  • 压缩文件: zip 压缩文件名 源文件
  • 压缩目录: zip -r 压缩文件名 原目录
  • 解压缩:unzip 压缩文件

.gz格式压缩,gzip 源文件

  • 压缩为.gz格式的压缩文件,源文件会消失

gzip -c 源文件 > 压缩文件

  • 压缩为.gz格式,源文件保留,例如:gzip -c bols > bols.gz

gzip -r 目录

  • 压缩目录下所有的子文件,但不能压缩目录

.gz格式解压缩

  • gzip -d 压缩文件
  • gunzip 压缩文件

.bz2格式压缩

  • bzip2 源文件
  • 压缩为.bz2格式,不保留源文件

bzip2 -k 源文件

  • 压缩后保留源文件
  • 注意:bzip2命令不能压目录

.bz2解压缩

  • bzip2 -d 压缩文件
  • 解压缩,加上-k属性保留压缩文件

bunzip2 压缩文件

  • 解压缩,加上-k属性保留压缩文件

2. 压缩命令2

  • .tar.gz 压缩格式
  • 其实.tar.gz格式是先打包为.tar格式,在压缩为.gz格式

tar -zcvf 压缩包名.tar.gz 源文件

  • -z:压缩为.tar.gz格式

tar -zxvf 压缩包名.tar.gz 源文件

  • -x:解压缩.tar.gz格式

.tar.bz2 压缩格式

  • tar -jcvf 压缩包名.tar.bz2 源文件
  • -j:压缩为.tar.bz2格式
  • tar -jxvf 压缩包名.tar.bz2 源文件
  • -x:解压缩.tar.bz2格式

打包命令tar
tar -cvf 打包文件名 源文件

  • -c:打包
  • -v:显示过程
  • -f:指定打包后的文件名
  • 例如:tar -cvf bols.tar longls

解打包命令

  • tar -xvf 打包文件名
  • -x:解打包
  • 例如:tar -xvf bols.tar

五、关机与重启命令

了解关机与重启命令之前,首先看一下系统运行级别:

  • 0:关机
  • 1:单用户
  • 2:不完全多用户,不含NFS服务
  • 3:完全多用户
  • 4:未分配
  • 5:图形界面
  • 6:重启
  1. 关机命令
    shutdown 命令,shutdown [选项] 时间
  • -c:取消前一个关机命令
  • -h:关机
  • -r:重启

*.**********************************************分割线***********************************************1

  • 其它关机命令:halt,poweroff,init 0
  • 其它重启命令:reboot,init 6
  • 注意:使用服务器时,不要随便去使用关机命令。一旦使用了,会造成不必要的麻烦。

2.重启命令

  • reboot,执行命令进行重启
  • shutdown -r,执行命令进行重启

注意:使用logout命令,养成良好的习惯退出登录

六、其它常用命令

  1. 挂载命令格式
    mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
  • -t文件系统:加入系统文件类型来指定挂载的类型,可以是ext3ext4iso9660等文件系统
  • -o特殊选项:可以指定挂载的额外选项

挂载命令,查询与自动挂载

  • mount:查询系统中已经挂载的设备
  • mount -a:依据配置文件/etc/fstb的内容,自动挂载

部分参数说明

  • atime/noatime:更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认为更新。
  • async/sync:异步/同步,默认为异步
  • auto/noauto:自动/手动,执行mount -a命令时,是否会自动安装/etc/fstb文件内容挂载,默认自动。
  • defaults:定义默认值,相当于rwsuiddevexecautonouserasync这七个选项。
  • exec/noexec:执行/不执行,设定是否允许在文件系统中执行可执行文件,默认exec允许。
  • remount:重新挂载已挂载的文件系统,一般用于指定修改特殊权限。
  • rw/ro:读写/只读,文件系统挂载时,是否具有读写权限,默认rw
  • suid/nosuid:具有/不具有suid权限,设定文件系统是否具有suid和sgid的权限,默认具有
  • user/nouser:允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认不允许,只有root可以挂载分区。
  • usrquota:写入代表文件系统支持用户磁盘配额,默认不支持。
  • grpquota:写入代表文件系统支持组磁盘配额,默认不支持。

挂载光盘

  • 建立挂载点:mkdir /mnt/cdrom/
  • 挂载光盘:mount -t iso9660 /dev/cdrom /mnt/cdrom/,这里说明下:只是习惯在mnt下建立,media下建立也行。
  • mount /dev/sr0 /mnt/cdrom/

卸载命令

  • unmount 设备文件名或者挂载点
  • 例如:unmount /mnt/cdrom/

挂载U盘

  • fdisk -l:查看U盘设备文件名
  • mount -t vfat /dev/sdb1 /mnt/usb/
    注意:Linux默认不支持NTFS文件系统

2. 用户登录查看命令

查看用户登录信息,w 用户名

命令输出

  • USER:登录的用户名
  • TTY:登录终端
  • FROM:从哪个IP地址登录
  • LOGIN@:登录时间
  • DILE:用户闲置时间
  • JCPU:与该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但包括当前正在运行的后台作业占用时间
  • PCPU:当前进程所占用时间
  • WHAT:当前正在运行的命令
  • w 查询登录用户,显示系统时间和运行时间,用户个数以及平均负载。
    w命令

查看登录用户信息,who 用户名
命令输出:

  • 用户名,登录终端,登录时间(登录来源IP地址)
    who命令
  • whoami 查看当前用户
    whoami命令

查询当前登录和过去登录的用户信息,last

  • last命令默认读取/var/log/wtmp文件数据
  • 命令输出:用户名,登录终端,登录IP,登录时间,退出时间(在线时间)

last命令

查看所有用户最后一次登录时间,lastlog

  • lastlog命令默认读取/var/log/lastlog文件内容
  • 命令输出:用户名,登录终端,登录IP,最后一次登录时间

lastlog命令
netstat命令,查看网络状态

  • netstat -an | grep ESTABLISHED
    netstat命令

七、shell基础

1.shell概述

  • shell的两种主要语法类型有BourneC,这两种语法彼此不兼容。Bourne家族主要包括:sh、ksh、Bash、psh、zsh;
  • C家族主要包括:csh、tcsh

Bash中其它特殊符号

  • ‘’,单引号。在单引号中所有特殊符号,如"$“和”`"(反引号)都没有特殊含义
  • “”,双引号。在双引号中所有特殊符号除"$"、"、"、"\“外都无特殊含义。”$"、"、"、"“拥有"调用变量的值”、"引用命令"和"转义符"的含义
  • ``,反引号。反引号括起来的是系统命令,在Bash中会优先执行它。和$()作用一样,推荐使用$(),反引号容易误导。
  • $(),与反引号作用相同,用来引用系统命令。
  • #,在shell脚本中,#代表注释。
  • $,用于调用变量的值,如果需要调用name的值时,需要使用$name获取变量的值。
  • \,转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。例如:$将输出"$"符号,则不会作为变量引用。

2 .脚本执行方式

#编写一个简单的linux脚本,使用vim命令

vim /home/hello.sh 

#注意你的脚本开头必须加上:#!/bin/bash

#!/bin/bash  
echo "hello world"  >> /root/hello.log

#赋予读和执行权限 
chmod 755 /hello.sh

#使用 sh hello.sh 命令执行

3. 别名与快捷键

查看与设定别名

  • alias 命令,查看系统命令中所有的命令别名
  • alias 别名 = ‘原命令’,设定命令别名,当然这样设置只会临时生效

别名永久生效与删除别名

  • vi ~/.bashrc,写入环境变量配置文件
  • unalias 别名,删除别名

命令生效顺序

  • 第一顺位执行用绝对路径或相对路径执行的命令
  • 第二顺位执行别名
  • 第三顺位执行Bash的内部命令
  • 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

4. 历史命令history [选项][历史命令保存文件]

  • -c:清空历史命令
  • -w:把缓存中的历史命令写入历史命令保存文件~/.bash_history

历史命令的调用

  • 使用上、下箭头调用以前的历史命令
  • 使用"!n"重复执行第n条命令
  • 使用"!!"重复执行上一条命令
  • 使用"!字符串"重复执行最后一条以该字符串开头的命令

5. 输出重定向

echo输出命令 [选项][输出内容]

  • -e:支持反斜线控制的字符转换

控制字符作用

  • \a:输出警告音
  • \b:退格键,向左删除
  • \n:换行符
  • \r:回车键
  • \t:制表符,TAB键
  • \v:垂直制表符
  • \0nnn:按照八进制ASCII码输出字符。其中0为数字零,nnn为三位八进制数。
  • \xhh:按照十六进制ASCII码输出字符。hh是两位十六进制数。

例如:echo "cangls" >> av.avi,表示以追加形式将苍老师输出到av文件中。

标准输出重定向:

  • 命令 > 文件,以覆盖的方式,把命令的正确输出到指定的文件或设备当中

  • 命令 >> 文件,以追加的方式,把命令的正确输出到指定的文件或设备当中

  • 错误命令 2> 文件,以覆盖的方式,把命令的错误输出到指定的文件或设备当中

  • 错误命令 2>> 文件,以追加的方式,把命令的错误输出到指定的文件或设备当中

正确输出和错误输出同时保存:

  • 命令 > 文件 2>&1,以覆盖的方式,把命令的正确和错误输出保存在同一个文件中
  • 命令 >> 文件 2>&1,以追加的方式,把命令的正确和错误输出保存在同一个文件中
  • 命令 &> 文件,以覆盖的方式,把命令的正确和错误输出保存在同一个文件中
  • 命令 &>>文件,以追加的方式,把命令的正确和错误输出保存在同一个文件中
  • 命令 >> 文件1 2>> 文件2,把正确的输出到文件1中,错误的输出到文件2中

有出重定向,当然也有输入重定向,了解就行。
wc [选项][文件名]

  • -c:统计字节数
  • -w:统计单词数
  • -l:统计行数

最后总结出实用的几种,以追加的形式把错误和正确的结果输出到文件中:

  • 命令 >> 文件 2>&1
  • 命令 &>> 文件
  • 命令 >> 文件1 2>> 文件2

6. 管道符

命令格式

  • 命令1 | 命令2,命令1的正确输出作为命令2的操作对象

多命令顺序执行

  • ;,格式1:命令2,多个命令顺序执行,命令之间没有任何逻辑关系
  • &&,命令1&&命令2,逻辑与,当命令1正确执行,命令2才会执行;命令1无法正确执行,命令2不会执行
  • ||,命令1||命令2,逻辑或,当命令1非正确执行,命令2才会执行;命令1正确执行,命令2不会执行

7. 通配符

linux中的通配符

  • *,匹配任意内容
  • ?,匹配任意一个字符
  • [],匹配任意一个中括号内的字符,例如[abc]代表匹配一个字符,可能是a,也可能是b或c。
  • [-],匹配中括号里的任意一个字符,-代表一个范围,例如:[a-z]代表匹配一个小写字母。
  • [ ^ ],逻辑非,匹配不是中括号里的一个字符,例如:[^0-9]代表匹配一个非数字的字符。

思来想去还是把这几个总结放在最后

安装完系统后,使用date命令,发现虚拟机的时间不对,是不是感觉有点不舒服,强迫症得把它改回来。首先使用chkconfig --list | grep ntpdate命令进行检查是否安装服务,chkconfig命令是针对rpm包安装的服务的。假如没安装,使用yum -y install ntpdate命令安装。
chkconfig命令
使用此命令:ntpdate time.windows.com,校对时间,值得注意的是这样只会临时生效。

这里还是写详细点,通过vim命令编辑文件,vim [文件名]。想编辑这个文件,会有提示按i键插入,退出保存输入:wq,不保存退出输入q!

这会有小伙伴会问了,每次开机启动都要手动执行校对时间命令岂不是很麻烦,别急嘛。这不贴心的暖男给你们找出解决方法了,编辑vim /etc/rc.local 文件 ,写入ntpdate time.windows.com就OK了。如下图所示:
在这里插入图片描述

添加用户与设置密码,这里再补充一个常用的命令,有时候为了学习方便,你会去新建几个普通用户进行测试。使用useradd命令添加用户,使用passwd命令修改密码。

useradd [选项]
useradd 接用户名,例如:useradd user1,新建一个user1用户,当然useradd也可以加参数,使用man useradd命令可查看帮助文档,后面会总结到的。如下图,你进入了帮助文档,按上下键往下翻。想退出,按q键就可以直接退出帮助文档了。

passwd [选项]
passwd 用户名,例如:passwd user1,修改user1的密码,同样使用上面提到的man帮助命令可以查看帮助文档。

了解一些常用的快捷键,很实用的

  • ctrl + c:强制终止当前命令
  • ctrl + l:清屏
  • ctrl + a:光标移动到命令行首
  • ctrl + e:光标移动到命令行尾
  • ctrl + u:从光标所在位置删除到行首
  • ctrl + z:把命令放入后台
  • ctrl + r:在历史命令中搜索

TAB快捷键,命令与补全文件。在Bash中,命令与文件补全是非常方便与常用的功能,只要在输入命令或文件时,按"TAB"键就会自动补全。

好了,到此为止就是此篇文章的全部内容了,能看到这的都是帅哥靓妹啊!!!祝在座的各位客官们鼠年大吉,“鼠”不尽的快乐!“鼠”不尽的收获!“鼠”不尽的钞票!“鼠”不尽的笑容!“鼠”不尽的幸福!“鼠”不尽的甜蜜!“鼠”不尽的激情!“鼠”不尽的活力!“鼠”不尽的健康!

尾声

相信小伙伴们看了这篇博客,对linux操作系统的基本命令肯定是有所了解了。centos、ubantu等等这些都是类Unix操作系统,命令使用都大同小异,基本上很多都是通用的,用啥系统都因人而异。不过也得适应公司所使用的,个人比较喜欢用centos而已。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章