Linux命令 - find、file、export 、yum、ln、pstree、stat、timedatectl 、locale、cp、mv、dirname和basename

本文介绍了Linux系统中的关键命令,如find用于文件搜索,file用于文件类型识别,ln用于创建链接,stat用于文件系统详情查看,timedatectl管理时间和时区,locale设置多语言环境。涵盖了命令用法、选项和实例,适合系统管理员和开发者日常操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

find

概念

用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

path :要查找的目录路径

        ~  表示家目录

        .  表示当前目录

        /  表示根目录

        ..  表示上一级目录

options:常用选项

        -name lianxi        查找名为lianxi的文件

        -perm         按执行权限来查找

        -group  groupname        按组来查找

        -size  n[c]        查找某个长度为n字节的文件

        -mtime -t +t         按文件更改时间来查找文件,-n是指n天以内,+n是指n天以前

        -atime -t +t          按文件访问时间来查找文件,-n是指n天以内,+n是指n天以前

        -ctime  -t  +t        按文件创建时间来查找文件,-n是指n天以内,+n是指n天以前

print :表示将结果标准输出

ok : 在执行前给出提示,让用户确定是否执行

options : 表示查找方式

例:

查找以.jpg结尾的文件

[root@localhost ~]# find / -name "*.jpg"
/usr/share/backgrounds/morning.jpg
/usr/share/backgrounds/night.jpg
/usr/share/backgrounds/day.jpg
/usr/share/backgrounds/default.jpg
/usr/share/kde4/apps/ksplash/Themes/CentOS7/2560x1600/background.jpg
/usr/share/wallpapers/CentOS7/contents/images/2560x1600.jpg

file

用于辨识文件类型

语法

file [-bcLvz][-f <namefile>][-m <magicfiles>...][文件或目录...]

命令参数

-b        列出文件辨识结果,不显示文件名称

[root@localhost lianxi]# file /etc/passwd -b
ASCII text

-i        输出mime类型的字符串·

[root@localhost lianxi]# file /etc/passwd -i
/etc/passwd: text/plain; charset=us-ascii

-F        使用指定分隔符替换输出文件名后的默认的”:“分隔符

[root@localhost lianxi]# file /etc/passwd -F "--"
/etc/passwd-- ASCII text

-z        尝试去解读压缩文件内容

--help        获取命令的帮助信息

[root@localhost lianxi]# file --help

export 

用于设置或显示环境变量

语法

export [ -fnp ]    [变量名称]=[变量设置值]

参数

-f        代表[变量名称]中为函数的名称

-n        删除指定的变量,变量实际未删除,只是不会输出到后续指令的执行环境中

-p        列出所用的shell赋予程序的环境变量

例:

建局部变量提升为全局变量

[root@localhost ~]# echo $a

[root@localhost ~]# a=1
[root@localhost ~]# echo $a
1
[root@localhost ~]# bash
[root@localhost ~]# echo $a

[root@localhost ~]# exit
exit
[root@localhost ~]# export a
[root@localhost ~]# echo $a
1
[root@localhost ~]# bash
[root@localhost ~]# echo $a
1
[root@localhost ~]# 

列出当前环境变量值

[root@localhost ~]# export -p
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost.localdomain"
declare -x LANG="zh_CN.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x SELINUX_LEVEL_REQUESTED=""
declare -x SELINUX_ROLE_REQUESTED=""
declare -x SELINUX_USE_CURRENT_RANGE=""
declare -x SHELL="/bin/bash"
declare -x SHLVL="2"
declare -x SSH_CLIENT="192.168.237.1 7481 22"
declare -x SSH_CONNECTION="192.168.237.1 7481 192.168.237.130 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="11"
declare -x a="1"

yum

yum提供了查找、安装、删除某一个、一组甚至全部软件安装包的命令

语法

yum [options] [command] [package ...]

options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。

command:要进行的操作。

package:安装的包名。

yum常用命令

1.列出所用可更新的软件清单

[root@localhost ~]# yum check-update

2.更新所有软件

[root@localhost ~]# yum update  -y

3.删除软件安装包

[root@localhost ~]# yum remove lrzsz -y    #删除lrzsz

4.安装软件

[root@localhost ~]# yum install lrzsz -y    #安装lrzsz

5.查找软件是由什么软件包安装过来的

[root@localhost ~]# yum provides rz      #查找rz是由那个软件包安装过来的

6.列出所有可安装的软件

[root@localhost ~]# yum list

[root@localhost ~]# yum list pam*       #列出以pam开头的可安装的软件有哪些

ln

用于创建同步的链接文件,就是windows里面的快捷方式

而链接又可分为两种硬链接(hard link)与软链接(symbolic link) :

硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。

软链接

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

2.软链接可以 跨文件系统 ,硬链接不可以

3.软链接可以对一个不存在的文件名进行链接

4.软链接可以对目录进行链接

硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

硬链接

1.硬链接,以文件副本的形式存在。但不占用实际空间。

2.不允许给目录创建硬链接

3.硬链接只有在同一个文件系统中才能创建

不论是硬链接还是软链接占用的内存都是非常少的

语法

 ln [参数][源文件或目录][目标文件或目录]

参数:

-b 删除,覆盖以前建立的链接

-d 允许超级用户制作目录的硬链接

-f 强制执行

-i 交互模式,文件存在则提示用户是否覆盖

-n 把符号链接视为一般目录

-s 软链接(符号链接)

-v 显示详细的处理过程

例:

[root@localhost lianxi]# ln -s hunan changsan
[root@localhost lianxi]# ls
a.java  b.java  changsan  c.java  e.java  guangdong  hubei  hunan
[root@localhost lianxi]# ll
总用量 0
-rw-r--r--. 1 root root  0 11月 27 13:51 a.java
-rw-r--r--. 1 root root  0 11月 27 13:54 b.java
lrwxrwxrwx. 1 root root  5 11月 28 14:08 changsan -> hunan
-rw-r--r--. 1 root root  0 11月 27 13:54 c.java
drwxr-xr-x. 2 root root  6 11月 28 12:38 e.java
drwxr-xr-x. 4 root root 32 11月 27 14:12 guangdong
drwxr-xr-x. 3 root root 19 11月 27 14:08 hubei
drwxr-xr-x. 4 root root 34 11月 27 14:54 hunan
[root@localhost lianxi]# 

pstree

查看linux系统里的进程树,用来描述进程和进程之间的关系进程族谱

语法

pstree  (选项)

常用选项

-h        显示进程树,特别标明在执行的程序

-p        显示pid

-a        显示所有进程的所用详细信息,遇到相同的进程名可以压缩显示

例:

[root@localhost lianxi]# pstree -p
systemd(1)─┬─NetworkManager(837)─┬─dhclient(16897)
           │                     ├─{NetworkManager}(848)
           │                     └─{NetworkManager}(851)
           ├─VGAuthService(764)
           ├─auditd(739)───{auditd}(740)
           ├─chronyd(774)
           ├─crond(783)
           ├─dbus-daemon(770)───{dbus-daemon}(777)
           ├─firewalld(804)───{firewalld}(986)
           ├─irqbalance(762)
           ├─login(790)───bash(1674)
           ├─lvmetad(570)
           ├─master(1419)─┬─pickup(24504)
           │              └─qmgr(1425)
           ├─polkitd(781)─┬─{polkitd}(791)
           │              ├─{polkitd}(792)
           │              ├─{polkitd}(793)
           │              ├─{polkitd}(794)
           │              ├─{polkitd}(795)
           │              └─{polkitd}(798)
           ├─rsyslogd(1185)─┬─{rsyslogd}(1191)
           │                └─{rsyslogd}(1193)
           ├─sshd(1181)─┬─sshd(20437)───bash(20441)───bash(20515)───pstree(24563+
           │            └─sshd(23933)───bash(23938)
           ├─systemd-journal(544)
           ├─systemd-logind(766)
           ├─systemd-udevd(580)
           ├─tuned(1183)─┬─{tuned}(1587)
           │             ├─{tuned}(1588)
           │             ├─{tuned}(1590)
           │             └─{tuned}(1591)
           └─vmtoolsd(765)───{vmtoolsd}(800)

stat

用于显示文件或系统的详细信息

语法

stat [OPTION]... FILE...

参数:

-f        显示文件所在的文件系统的信息

[root@localhost ~]# stat lianxi -f
  文件:"lianxi"
    ID:fd0000000000 文件名长度:255     类型:xfs
块大小:4096       基本块大小:4096
    块:总计:4452864    空闲:4049957    可用:4049957
Inodes: 总计:8910848    空闲:8875109

-t        以简洁的方式输出信息

[root@localhost ~]# stat lianxi -t
lianxi 121 0 41ed 0 0 fd00 51139261 6 0 0 1638079730 1638079729 1638079729 0 4096 unconfined_u:object_r:admin_home_t:s0

一些字段的含义

[root@localhost ~]# stat lianxi
  文件:"lianxi"
  大小:121       	块:0          IO 块:4096   目录
设备:fd00h/64768d	Inode:51139261    硬链接:6
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2021-11-28 14:08:50.450981770 +0800
最近更改:2021-11-28 14:08:49.422975899 +0800
最近改动:2021-11-28 14:08:49.422975899 +0800
创建时间:-

访问时间:access time --》atime  就是读取文件的时间  cat 
修改时间:modify time --》mtime  就是真正的修改文件里的内容         --》推荐
改变时间:change time --》ctime  改变文件的属性(文件名,time,大小,)的时间

timedatectl

是用于控制系统时间和日期,可以用来查询和更改系统时间,同时用于设定和修改时区信息

用法

1.查看当前时间/日期/时区:

[root@localhost ~]# timedatectl

[root@localhost ~]# timedatectl status

2.查看所有可用时区

[root@localhost ~]# timedatectl list-timezones

3.设置时区

[root@localhost ~]# timedatectl set-timezones  ”时区信息“

4.设置UTC(协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。)

[root@localhost ~]# timedatectl set-timezones  UTC

5.设置时间

[root@localhost ~]# timedatectl set-timezones  XX:XX:XX

6.设置日期

[root@localhost ~]# timedatectl set-timezones  XXXX:XX:XX

7.设置日期和时间

[root@localhost ~]# timedatectl set-timezones  ”XXXX:XX:XX  XX:XX“

8.设置硬件时钟为本地时间

[root@localhost ~]# timedatectl set-local-rtc 1

9.设置硬件时钟为UTC时间

[root@localhost ~]# timedatectl set-local-rtc 0

10.启动NTP时间同步

[root@localhost ~]# timedate set-ntp true

11.关闭NTP时间同步

[root@localhost ~]# timedate set-ntp false

locale

是Linux中多语言环境设置接口

通过它来设置程序运行时的不同语言环境,它由ANSIC提供支持

命名规范

<语言>_<地区>.<字符集编码>

zh_CN.UTF-8

zh代表中文

CN代表大陆地区

UTF-8代表字符编码

语法格式

locale [参数]

常用参数

-a        写入可用区域设置的名称

-m        写入可用字符映射的名称

-c        写入选定类别的名称

-k        写入选定关键字的名称

例:

显示默认字符集

[root@localhost ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

查看可用语言环境

[root@localhost ~]# locale -a
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ER.utf8
aa_ER.utf8@saaho
aa_ET
aa_ET.utf8
af_ZA
af_ZA.iso88591
af_ZA.utf8
am_ET
am_ET.utf8
an_ES
an_ES.iso885915
an_ES.utf8
ar_AE
ar_AE.iso88596
ar_AE.utf8
ar_BH
ar_BH.iso88596
ar_BH.utf8
ar_DZ
ar_DZ.iso88596
ar_DZ.utf8
........

cp

用于复制文件或目录

语法格式

       cp [OPTION]... [-T] SOURCE DEST
       cp [OPTION]... SOURCE... DIRECTORY
       cp [OPTION]... -t DIRECTORY SOURCE...

参数

-a        此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

-d        复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。

-f        覆盖已经存在的目标文件而不给出提示。

-i        与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。

-p        除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

-r        若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

-l        不复制文件,只是生成链接文件。

当复制文件或目录在目的地存在时,会给与提醒,是因为定义了别名

[root@localhost ~]# alias cp
alias cp='cp -i'

解决方法:

解决方法:
    1.取消别名
    unalias  cp
    2.使用cp命令的绝对路径 --》绕过别名的使用  ---》推荐的方法
    [root@localhost lianxi]# which cp
    alias cp='cp -i'
    /usr/bin/cp
    [root@localhost lianxi]# /usr/bin/cp  *.txt hunan

     \        转义字符也相当于绕过了别名,使用了它本来的含义
    [root@localhost lianxi]# \cp *.txt hunan

例:

复制单个文件

[root@localhost lianxi]# cp  songyuxiao.txt  changsha
                              源文件           目的地
                              source           destination

复制多个文件

[root@localhost lianxi]# cp  feng.txt  songyuxiao.txt  weijunlin.txt   hunan
                               前面的3个文件都是源文件                   目的地

使用通配符

[root@localhost lianxi]# cp  *.txt  hunan  将所有的.txt结尾的文件复制到hunan

复制时并改名

#将songyuxiao.txt复制到hunan目录,改名为syx.txt
[root@localhost lianxi]# cp songyuxiao.txt  hunan/syx.txt
[root@localhost lianxi]# cp feng.txt  hunan/fengdeyong.txt

与绝对路径的使用

[root@localhost lianxi]# cp  /etc/passwd   .   将/etc/passwd 文件复制到当前目录下
[root@localhost lianxi]# cp  /etc/passwd  /lianxi/hunan

文件夹的复制   --》加  -r

[root@localhost lianxi]# cp -r hunan hubei  guangdong
                               源文件夹     目的地

mv(操作与cp相似)

用来移动文件和目录的位置的或者重命名

[root@localhost lianxi]# mv hunan guangxi

     1.移动文件或者文件夹   --》后面接的文件夹如果存在就是移动

     2.重命名  --》后面接的文件如果不存在就是重命名

语法

       mv [OPTION]... [-T] SOURCE DEST
       mv [OPTION]... SOURCE... DIRECTORY
       mv [OPTION]... -t DIRECTORY SOURCE...

参数

-b        当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。

-i         如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。

-f         如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。

-n:        不要覆盖任何已存在的文件或目录。

-u        当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

例:

移动多个文件

[root@localhost lianxi]# mv gui changsha hubei guangdong/  china
                              源文件                       目的地

使用通配符

[root@localhost lianxi]# mv *.txt  china  将.txt结尾的文件复制到china目录下

dirname

dirname  + 路径   得到绝对路径的文件夹的路径

basename  

basename  + 路径  得到最后的文件的名字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

‘༺༃修༒罗༃༻’

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值