Linux基本命令

Stella981
• 阅读 358

Linux命令

一、命令基本格式

命令提示符

[root@localhost ~]#
其中:
     root:         当前用户
     localhost:    当前主机名
     ~:            当前用户的根目录(所在目录)
     #:            超级用户提示符是#
                    普通用户提示符是$

命令格式

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

查询目录中内容 ls

ls  [选项] [文件或目录]
注意(可以组合使用):
      -a    显示所有文件,包含隐藏文件(在linux中文件名.开头的文件是隐藏文件)
      -l    显示详细信息(大小显示字节)
      -d    查看目录属性
      -h    人性化显示文件大小
      -i    显示inode(查看文件id号)
-rw-r--r--
      -     文件类型(-代表文件 d代表目录 I代表软连接文件)
      rw-   所有者  
      r--   所属组  例如:班级男生
      r--   其他人  例如:班级男生外的其他人
      
      r     读
      w     写
      x     执行

二、文件处理命令

目录处理命令

建立目录 mkdir(make directories)

mkdir -p [目录名]
    -p  递归创建    
        例如:当前目录下创建aa/bb,当aa目录不存在时,直接创建aa和bb两级目录

切换目录 cd(change directory)

cd [目录名]
简化操作:
    cd ~    进入当前用户的家目录
    cd -    进入上次所在目录
    cd ..   进入上一级目录
    cd .    进入当前目录

查询目录所在位置(print working directory)

pwd

删除空白目录(remove directory)

rmdir

删除文件或目录 rm(remove)

rm [选项] [文件或目录]
选项:
    -r  删除目录
    -f  强制

复制命令 cp(copy)

cp [选项] [原文件或目录] [目标目录]
选项:
    -r  复制目录
    -p  连带文件属性复制
    -d  若源文件是链接文件,则复制链接属性
    -a  相当于-pdr

剪切或改名命令 mv(move)

mv [原文件或目录] [目标目录]
注意:
    A. 原文件和目标文件不在一个目录是剪切操作
    B. 原文件和目标文件在一个目录是改名操作

常用目录作用

/       根目录
/bin    保存普通用户执行的系统命令
/sbin   保存超级用户执行的系统命令
/boot   启动目录,保存用户启动数据
/etc    系统默认配置文件目录
/home   普通用户家目录
/root   超级用户家目录
/lib    函数库
/media  挂载光盘  
/mnt    挂载U盘
/misc   挂载磁带机
/sys    不能直接操作,保存的是内存的挂载点
/proc   不能直接操作,保存的是内存的挂载点
/tmp    临时目录
/usr    系统软件资源目录
  /usr/bin/     保存普通用户的系统命令
  /usr/sbin/    保存超级用户的系统命令
/var    系统相关文档内容

链接命令

链接命令 ln(link)

ln -s [原文件] [目标文件]
硬链接特征:
    A. 拥有相同的i节点和存储block块,可以看做是同一个文件
    B. 可以通过i节点识别
    C. 不能跨分区
    D. 不能针对目录使用
软链接特征:
    A. 类似Windows快捷方式
    B. 软链接拥有自己的i节点和block块,但是数据块中只保存了源文件的文件名和i节点号,并没有实际的文件数据
    C. 修改任意文件,另一个都不改变
    D. 删除源文件,软链接不能使用
    E. 源文件不写绝对路径,必须要把源文件和软链接文件要在同目录,不然会报错

三、文件搜索命令

文件搜索命令locate

locate 文件名
A. 在后天数据库中按文件名搜索,搜索速度更快
B. locate命令在/var/lib/mlocate数据库中搜索,但这个数据库不是实时更新的,而是每天更新一次
C. updatedb可以手动更新B中的mlocate数据库
D. linux版本不同mlocate数据库名可能不同
E. /etc/updatedb.conf为locate搜索的配置文件,locate按照这个配置去搜索文件

/etc/updatedb.conf配置文件

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

命令搜索命令whereis与which

whereis [选项] 命令名
    搜索命令所在路径及帮助文档所在位置,只能查找系统命令,例如:whereis ls
选项:
    -b  只查找可执行文位置,不看帮助文档位置
    -m  只看帮助文件位置
    
which 命令名
    搜索命令所在路径及别名

文件搜索命令find

find [搜索范围] [搜索条件]
注意:
    A. 避免大范围搜索,会非常耗费系统资源
    B. find在系统中搜索符合条件的文件名,名称必须要一模一样,如果要不一样,就要使用通配符
通配符
    *   匹配任意内容
    ?   匹配任意一个字符
    []  匹配任意一个中括号内的字符
find /root -iname 文件名
    不区分大小写
find /root -user root
    按照所有者搜索
find /root -nouser
    搜索没有所有者的文件
find /var/log/ -mtime +10
    查找10天前修改的文件
    A. -10  10天内修改文件
    B. 10   10天当天修改的文件
    C. +10  10天前修改的文件
    
    A. atime    文件访问时间
    B. ctime    改变文件属性
    C. mtime    修改文件内容
find /root -size 25k
    25k     查找文件大小是25kb的文件
    -25k    查找文件大小小于25kb的文件
    +25k    查找文件大小大于25kb的文件
    注意:查找kb只能用小写k,查找兆只能用大写M
find /root inum 12345
    查找i节点(id)为12345的文件
find /etc -size +20k -a -size -50k
    查找/etc目录下,大于20k并且小于50k的文件
    注意:
        A. -a(and) 逻辑与,表示两个条件都满足
        B. -o(or) 逻辑或,表示两个条件任一一个满足
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
    查找etc目录下,大于20k并且小于50k的文件,并显示详细信息
    注意:
        A. -exec/-ok 命令 {} \;     对于搜索结果执行操作

搜索字符串命令grep

grep [选项] 字符串 文件名
在文件中搜索符合条件的文件
选项:
    A. -v 取反,搜索不包含“字符串”
    B. -i 忽略大小写

find命令与grep命令的区别

A. find命令是在系统中搜索符合条件的文件,如果需要匹配,使用通配符,通配符是完全匹配
B. grep是在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正则表达式时包含匹配(即模糊匹配)

四、帮助命令

帮助命令man

man 命令
获取指定命令的帮助
man的级别
    A. 1:查看命令的帮助
    B. 2:查看可被内核调用的函数的帮助
    C. 3:查看函数和函数库的帮助
    D. 4:查看特殊文件的帮助(主要是/dev目录下的文件)
    E. 5:查看配置文件的帮助
    F. 6:查看游戏的帮助
    G. 7:查看其它咋选项的帮助
    H. 8:查看系统管理员可用命令的帮助
    I. 9:查看和内核相关文件的帮助

其他帮助命令

命令 --help
获取命令选项的帮助

help shell内部命令
获取shell内部命令的帮助

五、压缩与解压缩命令

压缩文件 zip

zip 压缩文件名 源文件
压缩源文件

unzip 压缩文件
解压缩.zip文件

格式压缩.gz

gzip 源文件
压缩为.gz格式的压缩文件,源文件会小时

gzip -c 源文件 > 压缩文件
压缩为.gz格式,源文件保留

gzip -r 目录
压缩目录下所有的子文件,但是不能压缩目录

gzip -d 压缩文件
解压缩文件

gunzip 压缩文件
解压缩文件

格式压缩.bz2

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

bzip2 -k 源文件
压缩为.bz2格式,保留源文件
注意:不能压缩目录

bzip2 -d 源文件
解压缩.bz2格式文件

bunzip2 压缩文件
解压缩,-k保留压缩文件

打包命令tar

tar -cvf 打包的文件名 源文件
打包文件为.tar格式
选项:
    A. -C   打包
    B. -v   显示过程
    C. -f   制定打包后的文件名

tar -xvf 打包文件名
解打包.tar格式文件
选项:
    A. -x   解打包
    B. -v   显示过程
    C. -f   制定打包后的文件名

压缩格式.tar.gz

tar -zcvf 压缩包名.tar.gz 源文件
压缩文件问.tar.gz格式
选项:
    A: -z  压缩为.tar.gz格式

tar -zxvf 压缩包名.tar.gz
解压缩文件.tar.gz
选项:
    A: -x  解压缩.tar.gz格式

tar -jcvf 压缩包名.tar.bz2 源文件
压缩文件问.tar.bz2格式
选项:
    A: -z  压缩为.tar.bz2格式

tar -jxvf 压缩包名.tar.bz2
解压缩文件.tar.bz2
选项:
    A: -x  解压缩.tar.bz2格式

tar -ztvf 压缩包名
查看压缩包内的内容

六、关机和重启命令

shutdown命令

shutdown [选项] 时间
选项:
    A: -c   取消前一个关机命令
    B: -h   关机
    C: -r   重启

其他关机命令(不太安全)

halt
poweroff
init 0

其他重启命令

reboot(相对安全)
init 6(尽量不用)

系统运行级别

0   关机
1   单用户
2   不完全多用户,不含NFS服务
3   完全多用户
4   未分配
5   图形界面
6   重启
注意:
    A. runlevel    当前系统运行级别,显示结果为系统前一级别和当前级别
    B. cat /etc/inittab     进入系统启动默认级别设置的配置文件

退出登录命令

logout

七、 其他常用命令

挂载命令

mount
查询系统中已经挂载的设备

mount -a
依据配置文件/etc/fstab的内容,自动挂载

挂载命令格式

mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
选项:
    A. -t 文件系统  加入文件系统类型来制定挂载的类型,可以ext3,ext4,iso9660等文件系统
    B. -o 特殊选项  可以指定挂载的额外选项

卸载命令

umount 设备文件名或挂载点

挂载光盘

mount -t iso9660 /dev/sr0 /mnt/cdrom/

挂载U盘

fdisk -l
查看U盘的设备文件名

mount -t vfat /dev/sdb1 /mnt/usb
挂载U盘

注意:Linux默认不支持NTFS文件系统的

用户登录查看

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

命令输出:
    USER    登录的用户名
    TTY     登录终端
    FROM    从哪个IP地址登录
    LOGIN@  登录时间
    IDLE    用户闲置时间
    JCPU    指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占的时间
    PCPU    是指当前进程所占用的时间
    WHAT    当前正在运行的命令

who 用户名
查看登陆用户信息

命令输出:
    用户名
    登陆终端
    登陆时间(登陆来源IP地址

last
查询当前登录和过去登陆的用户信息
注意:last命令默认是读取/var/log/wtmp文件数据

命令输出:
    用户名
    登陆终端
    登陆IP
    登陆时间
    推出时间(在线时间)

last log
查看所有用户的最后一次登录时间
注意:lastlog命令默认是读取/var/log/lastlog文件内容

命令输出:
    用户名
    登陆终端
    登陆IP
    最后一次登录时间
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Stella981 Stella981
2年前
Python time模块 返回格式化时间
常用命令  strftimetime.strftime("%Y%m%d%H:%M:%S",formattime)第二个参数为可选参数,不填第二个参数则返回格式化后的当前时间日期201812112:00:00time.strftime('%H:%M:%S')返回当前时间的时分秒time.strftim
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这