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 + 路径 得到最后的文件的名字