欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

linux基础命令(一)

时间:2023-06-28
Linux基础命令 1、设置主机名 1.1、 hostname

查看主机名

[root@ansible ~]# cat /etc/hostnameansible或[root@ansible ~]# hostnameansible

注意: 主机名中不允许使用下划线 “_”,可以用短横线 “-”

1.2、hostname

临时修改主机名

# 临时修改直接修改的是内存中的,重启会失效[root@ansible ~]# hostname ansible.org[root@ansible ~]# hostnameansible.org

1.3、hostnamectl

永久修改主机名

# 永久修改其实是修改的配置文件,重启不会失效,hostnamectl修改了两个地方,一个是内存中的hostname,一个是磁盘文件[root@ansible ~]# hostnamectl set-hostname ansible.gxy[root@ansible ~]# hostnameansible.gxy[root@ansible ~]# cat /etc/hostnameansible.gxy

2、whoami

显示当前用户

[root@ansible ~]# whoamiroot或[root@ansible ~]# who am iroot pts/0 2021-12-25 11:52 (192.168.31.114)或[root@ansible ~]# whoroot pts/0 2021-12-25 11:52 (192.168.31.114)

3、init

关机或重启

init 0关机init 6重启

4、修改终端格式和颜色 4.1、临时修改

[root@ansible ~]#PS1="[e[1;31m][u@h w]\$[e[0m]"# 31字体是红色[root@ansible ~]#PS1="[e[1;32m][u@h w]\$[e[0m]"# 32字体是绿色 [root@ansible ~]#PS1="[e[1;33m][u@h w]\$[e[0m]"# 33字体是黄色[root@ansible ~]#PS1="[e[1;34m][u@h w]\$[e[0m]"# 34字体是蓝色[root@ansible ~]#PS1="[e[1;35m][u@h w]\$[e[0m]"# 35字体是紫色[root@ansible ~]#PS1="[e[1;36m][u@h w]\$[e[0m]"# 36字体是蓝绿色[root@ansible ~]#PS1="[e[1;37m][u@h w]\$[e[0m]"# 37字体是白色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HMWAJ7jp-1644760205824)(F:typoralinux常见命令images主机名显示颜色.jpg)]

注意: 退出终端颜色会失效!

4.2、永久修改

# 放在/etc/profile.d/目录下的任何以 .sh结尾的都行,不一定是env.sh,这个是个人习惯[root@ansible ~]#echo 'PS1="[e[1;32m][t [e[1;33m]u[e[35m]@h[e[1;31m] W[e[1;32m]][e[0m]\$"' > /etc/profile.d/env.sh

[13:21:45 root@ansible ~]#

注意: 以上操作在centos上实验的,Ubuntu不一定适用

5、lscpu

查看CPU信息

[14:00:38 root@ansible ~]#lscpuArchitecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 4On-line CPU(s) list: 0-3Thread(s) per core: 1Core(s) per socket: 1# 一个物理CPUsocket: 4NUMA node(s): 1Vendor ID: GenuineIntelCPU family: 6Model: 45Model name: Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHzStepping: 7CPU MHz: 2400.000BogoMIPS: 4800.00Hypervisor vendor: VMwareVirtualization type: full # 支持虚拟化L1d cache: 32K # 数据缓存L1i cache: 32K # 指令缓存L2 cache: 256KL3 cache: 20480KNUMA node0 CPU(s): 0-3Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm ssbd ibrs ibpb stibp tsc_adjust arat spec_ctrl intel_stibp flush_l1d arch_capabilities

可以通过cat /proc/cpuinfo 来查看CPU信息

# 显示的更详细,每个核的具体信息都有显示[20:39:31 root@ansible ~]#cat /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu family : 6model : 45model name : Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHzstepping : 7microcode : 0x718cpu MHz : 2400.000cache size : 20480 KBphysical id : 0siblings : 1core id : 0cpu cores : 1apicid : 0initial apicid : 0fpu : yesfpu_exception : yescpuid level : 13wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm ssbd ibrs ibpb stibp tsc_adjust arat spec_ctrl intel_stibp flush_l1d arch_capabilitiesbogomips : 4800.00clflush size : 64cache_alignment : 64address sizes : 43 bits physical, 48 bits virtualpower management:processor : 1vendor_id : GenuineIntelcpu family : 6model : 45model name : Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHzstepping : 7microcode : 0x718cpu MHz : 2400.000cache size : 20480 KBphysical id : 2siblings : 1core id : 0cpu cores : 1apicid : 2initial apicid : 2fpu : yesfpu_exception : yescpuid level : 13wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm ssbd ibrs ibpb stibp tsc_adjust arat spec_ctrl intel_stibp flush_l1d arch_capabilitiesbogomips : 4800.00clflush size : 64cache_alignment : 64address sizes : 43 bits physical, 48 bits virtualpower management:processor : 2vendor_id : GenuineIntelcpu family : 6model : 45model name : Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHzstepping : 7microcode : 0x718cpu MHz : 2400.000cache size : 20480 KBphysical id : 4siblings : 1core id : 0cpu cores : 1apicid : 4initial apicid : 4fpu : yesfpu_exception : yescpuid level : 13wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm ssbd ibrs ibpb stibp tsc_adjust arat spec_ctrl intel_stibp flush_l1d arch_capabilitiesbogomips : 4800.00clflush size : 64cache_alignment : 64address sizes : 43 bits physical, 48 bits virtualpower management:processor : 3vendor_id : GenuineIntelcpu family : 6model : 45model name : Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHzstepping : 7microcode : 0x718cpu MHz : 2400.000cache size : 20480 KBphysical id : 6siblings : 1core id : 0cpu cores : 1apicid : 6initial apicid : 6fpu : yesfpu_exception : yescpuid level : 13wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm ssbd ibrs ibpb stibp tsc_adjust arat spec_ctrl intel_stibp flush_l1d arch_capabilitiesbogomips : 4800.00clflush size : 64cache_alignment : 64address sizes : 43 bits physical, 48 bits virtual

5、which

查看外部命令的位置

# which用来查看外部命令的路径,是无法查看内部命令的路径的[16:49:47 root@ansible ~]#which hostname/usr/bin/hostname[16:49:58 root@ansible ~]#which cd/usr/bin/cd[16:50:15 root@ansible ~]#which type/usr/bin/which: no type in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)[16:50:22 root@ansible ~]#which enable/usr/bin/which: no enable in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

6、whereis

查看外部命令的路径,同时可以显示外部命令帮助文档的路径,如果是内部命令,只能显示帮助文档的路径

# 外部命令[16:53:21 root@ansible ~]#whereis cdcd: /usr/bin/cd /usr/share/man/man1/cd.1.gz /usr/share/man/mann/cd.n.gz# 内部命令[16:53:47 root@ansible ~]#whereis typetype: /usr/share/man/man1/type.1.gz

7、alias

别名

# 先查看系统中是存在此命令,避免和系统中命令重复[12:41:58 root@ansible ~]#type cdnetwork-bash: type: cdnetwork:not found# 创建别名,例如:[12:42:01 root@ansible ~]# alias cdnetwork="cd /etc/sysconfig/network-scripts"[12:41:58 root@ansible ~]#type cdnetworkcdnetwork 是 `cd /etc/sysconfig/network-scripts' 的别名[12:44:39 root@ansible ~]#cdnetwork[12:44:42 root@ansible network-scripts]#

7.1、显示所有别名

# 用alias显示所有别名[14:15:32 root@ansible ~]#aliasalias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

7.2、使别名永久生效

[14:20:22 yang@ansible ~]$vim .bashrc# .bashrc# Source global definitionsif [ -f /etc/bashrc ]; then 、/etc/bashrcfialias cdnetwork='cd /etc/sysconfig/network-scripts'# 添加此行# Uncomment the following line if you don't like systemctl's auto-paging feature:# export SYSTEMD_PAGER=# User specific aliases and functions

刷新使其生效

# 刷新使其生效,、和 source 效果一样[14:21:00 yang@ansible ~]$、.bashrc[14:21:07 yang@ansible ~]$aliasalias cdnetwork='cd /etc/sysconfig/network-scripts'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias vi='vim'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'[14:21:12 yang@ansible ~]$cdnetwork[14:21:17 yang@ansible network-scripts]$

此命令只针对当前用户生效!

7.3、取消单个别名

# unalias是临时取消,当终端退出重新进入会失效,如果想永久取消需要修改.bashrc配置文件[14:28:08 root@ansible ~]#unalias cdnetwork[14:28:27 root@ansible ~]#cdnetwork-bash: cdnetwork: 未找到命令

7.4、取消全部别名

# 临时取消全部别名,终端重进进入会失效[14:46:40 root@ansible ~]#unalias -a

7.5、将内部命令定义成别名

# enable是内部命令,如果将内部名enable定义了别名,由于优先级来看,会执行别名而不会执行内部命令[14:53:13 root@ansible ~]#alias enable='hostname -I'[14:54:42 root@ansible ~]#hostname -I192.168.31.201 172.18.0.1 172.17.0.1[14:54:51 root@ansible ~]#enable192.168.31.201 172.18.0.1 172.17.0.1# 而有时候我们需要要执行内部命令,这个时候我们可以通过以下方式来执行内部命令[14:55:16 root@ansible ~]#enable# 或 'enable'enable .enable :enable [enable aliasenable bgenable bindenable breakenable builtinenable callerenable cd

优先级:别名>内部命令>外部命令

针对当前用户:修改当前用户家目录下的 .bashrc文件

针对全部用户:修改 /etc/bashrc文件

注意: 别名也是临时性的,终端退出会失效

8、lsblk

查看分区

[14:31:20 root@ansible ~]#lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk# 磁盘├─sda1 8:1 0 200M 0 part /boot# 分区└─sda2 8:2 0 188G 0 part ├─centos-root 253:0 0 30G 0 lvm / ├─centos-swap 253:1 0 8G 0 lvm [SWAP] ├─centos-home 253:2 0 100G 0 lvm /home └─centos-data 253:3 0 650G 0 lvm /datasdb 8:16 0 600G 0 disk└─sdb1 8:17 0 600G 0 part └─centos-data 253:3 0 650G 0 lvm /datasr0 11:0 1 918M 0 rom# 光盘

9、uptime

查看开机时间

# 开机已经有49天了[root@VM-16-15-centos ~]# uptime14:40:35 up 49 days, 22:00, 1 user, load average: 0.00, 0.01, 0.05

10、ls

# ls既有别名又是个外部命令,但是执行时别名优先,同时又是 --color=auto,所以执行执行ls列出的内容是有颜色的,但是想让它执行 外部命令就需要用 ""+ls来执行了[19:41:33 root@ansible ~]#type lsls 是 `ls --color=auto' 的别名[19:42:37 root@ansible ~]#ll /bin/ls-rwxr-xr-x、1 root root 117680 10月 31 2018 /bin/ls# 直接执行ls[19:41:26 root@ansible ~]#ls111 1114 222 data_tmp docker-compose-Linux-x86_64 harbor-offline-installer-v2.1.4.tgz script testlog.sql xswitch-free-master.zip1111 1115 anaconda-ks.cfg doc env.sh mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz sql test.sql1112 192.168.1.135 apache-tomcat-8.5.65.tar.gz docker-20.10.5.tgz freeswitch-1.6.0.tar.gz mysql57-community-release-el7-9.noarch.rpm test txy1113 221 CentOS-7-aarch64-Everything-1810.iso docker-20.10.6.tgz harbor ossutil64# 当执行它原本的意思需要用以下方式,其实是没有颜色的[19:41:28 root@ansible ~]#ls111 1114 222 data_tmp docker-compose-Linux-x86_64 harbor-offline-installer-v2.1.4.tgz script testlog.sql xswitch-free-master.zip1111 1115 anaconda-ks.cfg doc env.sh mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz sql test.sql1112 192.168.1.135 apache-tomcat-8.5.65.tar.gz docker-20.10.5.tgz freeswitch-1.6.0.tar.gz mysql57-community-release-el7-9.noarch.rpm test txy1113 221 CentOS-7-aarch64-Everything-1810.iso docker-20.10.6.tgz harbor ossutil64 testdata.sql Xmanager5.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yjooxTyw-1644760205828)(F:typoralinux常见命令imagesls.jpg)]

11、id

查看用户的uid

# 默认显示自己的uid[20:20:07 root@ansible ~]#iduid=0(root) gid=0(root) 组=0(root)# 查看某个用户的相关信息[20:20:09 root@ansible ~]#id yanguid=1001(yang) gid=1001(yang) 组=1001(yang)# 只查看用户的uid[20:20:18 root@ansible ~]#id -u yang1001

12、bc

计算器

# 将十进制转换成2进制[20:26:55 root@ansible ~]#bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.obase=2# 我只需要约定输出是2进制即可1201111000

13、一次执行多个命令用 “;”

[20:32:20 root@ansible doc]#ls;pwd;hostname -I;liantong_doc.zip magedu_jiagou.zip magedu_jiuye.zip server.zip typora_doc.zip/root/doc192.168.31.201 172.18.0.1 172.17.0.1

14、查看详细的内存信息

[20:54:35 root@ansible ~]#cat /proc/meminfoMemTotal: 8009192 kBMemFree: 6027200 kBMemAvailable: 6798732 kBBuffers: 3176 kBCached: 1047908 kBSwapCached: 0 kBActive: 1031888 kBInactive: 668916 kBActive(anon): 643592 kBInactive(anon): 100884 kBActive(file): 388296 kBInactive(file): 568032 kBUnevictable: 0 kBMlocked: 0 kBSwapTotal: 8388604 kBSwapFree: 8388604 kBDirty: 56 kBWriteback: 0 kBAnonPages: 649720 kBMapped: 232712 kBShmem: 94756 kBSlab: 116820 kBSReclaimable: 73404 kBSUnreclaim: 43416 kBKernelStack: 8608 kBPageTables: 10788 kBNFS_Unstable: 0 kBBounce: 0 kBWritebackTmp: 0 kBCommitLimit: 12393200 kBCommitted_AS: 4263456 kBVmallocTotal: 34359738367 kBVmallocUsed: 161604 kBVmallocChunk: 34359341052 kBHardwareCorrupted: 0 kBAnonHugePages: 440320 kBCmaTotal: 0 kBCmaFree: 0 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kBDirectMap4k: 167808 kBDirectMap2M: 8220672 kB

/proc 是内存目录,proc显示的当前系统的状态,proc的内容都是以内存的形式保存的

# 我们可以看到占用空间都是0,这就说明它不占用内存空间,因为这些数据都是来自于内存[20:54:54 root@ansible ~]#ll /proc/meminfo-r--r--r-- 1 root root 0 12月 26 20:57 /proc/meminfo[20:57:32 root@ansible ~]#ll /proc/cpuinfo-r--r--r-- 1 root root 0 12月 26 20:57 /proc/cpuinfo

15、查看内核版本 uname -r

查看内核版本

[21:01:43 root@ansible ~]#uname -r3.10.0-957.el7.x86_64

16、查看操作系统发行版本

[21:01:46 root@ansible ~]#cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)[21:04:00 root@ansible ~]#cat /etc/os-releaseNAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"

17、查看磁盘信息

# 除了我们所熟悉的df命令还可以用过以下命令查看,场景:如果NAS没有df命令就可以用以下命令查看[21:11:03 root@ansible ~]#cat /proc/partitionsmajor minor #blocks name 8 0 209715200 sda 8 1 204800 sda1 8 2 197139456 sda2 8 16 629145600 sdb 8 17 629144576 sdb1 11 0 940032 sr0 253 0 31457280 dm-0 253 1 8388608 dm-1 253 2 104857600 dm-2 253 3 681574400 dm-3

18、关机

halt# 关机poweroff # 关机

19、重启

reboot# 重启

20、关机或重启

# 只执行shoudown命令并不会关机,系统会在你执行命令一分钟后进行关机-bash-4.2# date2021年 12月 30日 星期四 13:26:15 GMT-bash-4.2# shutdownShutdown scheduled for 四 2021-12-30 13:27:20 GMT, use 'shutdown -c' to cancel.-bash-4.2#Broadcast message from root@lnmp (Thu 2021-12-30 13:26:20 GMT):The system is going down for power-off at Thu 2021-12-30 13:27:20 GMT!

马上关机

-bash-4.2# shutdown -h now

取消关机

# 用 -c 参数取消关机-bash-4.2# shutdown -cBroadcast message from root@lnmp (Thu 2021-12-30 13:26:27 GMT):The system shutdown has been cancelled at Thu 2021-12-30 13:27:27 GMT!

多长时间以后关机

# 10分钟以后关机-bash-4.2#Broadcast message from root@lnmp (Thu 2021-12-30 13:31:48 GMT):The system is going down for power-off at Thu 2021-12-30 13:41:48 GMT!

设置几点几分关机

# 设置2:30分进行关机,只能精确到分,不能精确到秒-bash-4.2# shutdown 02:30Shutdown scheduled for 五 2021-12-31 02:30:00 GMT, use 'shutdown -c' to cancel.

21、w

查看当前有几个用户在登录,并且能看到每个用户在执行什么操作

# 一共有两个用户登录了系统,其中一个用户在执行yes命令[21:41:08 root@ansible ~]#w 21:41:09 up 1:23, 2 users, load average: 0.36, 0.14, 0.14USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/1 192.168.31.114 20:20 5.00s 0.01s 0.01s -bashroot pts/2 192.168.31.114 21:41 5.00s 0.58s 0.57s yes

22、screen

Linux screen命令用于多重视窗管理程序。

# 安装[root@VM-16-15-centos ~]# yum install screen

通过screen后台运行某个程序,及时关闭终端,后台程序仍在运行

# 运行screen,会从新打开一个新终端[root@VM-16-15-centos ~]# screen# 执行一个yes,然后将终端关闭[root@VM-16-15-centos ~]# yes# 在另一终端进行查看yes是否在后台运行[root@VM-16-15-centos ~]# ps aux|grep yesroot 11241 59.2 0.0 111172 640 pts/9 R+ 21:03 0:13 yesroot 11393 0.0 0.0 115928 1008 pts/10 S+ 21:04 0:00 grep --color=auto yes

远程协助

# xiaohong 需要 xiaoming 远程协助解决问题,xiaohong 需要做如下操作[root@VM-16-15-centos ~]# screen -S xiaohong# 大写S[root@VM-16-15-centos ~]#

# xiaoming 需要做如下操作,先查看当前可用的连接[root@VM-16-15-centos ~]# screen -lsThere are screens on: 1471.xiaohong (Attached)# 发现xiaohong可用 5358.pts-0.VM-16-15-centos (Detached) 11207.pts-8.VM-16-15-centos (Detached) 8325.pts-0.VM-16-15-centos (Detached) 6876.pts-0.VM-16-15-centos (Detached) 6415.pts-0.VM-16-15-centos (Detached)6 Sockets in /var/run/screen/S-root.# 连接,此时已经互相能看到xiaohong的终端了,实时同步[root@VM-16-15-centos ~]# screen -x xiaohong[root@VM-16-15-centos ~]## 退出,协助完成需要退出,可以用Ctrl+a,d Ctrl+a不松手在按d[detached from 3625.xiaohong][root@VM-16-15-centos ~]## 如果xiaohong 不需要协助了,可以退出终端,用exit[root@VM-16-15-centos ~]# exit[screen is terminating][root@VM-16-15-centos ~]#

注意: 协助的双方必须连接的是同个主机和同一个用户。

23、echo

选项

-n不自动换行-E(默认)不支持解释功能-n不自动换行-e启用字符的解释功能

显示变量

# 命名一个变量[root@VM-16-15-centos ~]# name=gxy[root@VM-16-15-centos ~]# echo $namegxy[root@VM-16-15-centos ~]# echo "$name"# 双引号会显示变量名gxy[root@VM-16-15-centos ~]# echo '$name'# 单引号里边是什么则会打印什么$name

-n 参数

[root@VM-16-15-centos ~]# echo -n $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/jdk1.8.0_161/bin:/root/bin[root@VM-16-15-centos ~]#

启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

a 发出警告声b 退格键c 最后不加上换行符号e escape,相当于33n 换行且光标移至行首r 回车,即光标移至行首,但不换行t 插入tab\ 插入字符Onnn插入nnn (八进制)所代表的ASCII字符xHH插入HH(十六进制)所代表的ASCI数字(man 7 ascii)

25、命令行扩展和被括起来的集合

命令行扩展:``和$()

把一个命令的输出打印给另一个命令的参数,放在 `` 中的一定是有输出信息的命令

# 两者相等效果$(COMMAND)或`COMMAND`[root@VM-16-15-centos ~]# echo "This system's name is $(hostname)"This system's name is VM-16-15-centos[root@VM-16-15-centos ~]# echo "This system's name is `hostname`" This system's name is VM-16-15-centos

范例:比较"",’’,``三者区别

# 比较"",'',``三者区别[root@VM-16-15-centos ~]# echo "echo $HOSTNAME" echo VM-16-15-centos[root@VM-16-15-centos ~]# echo 'echo $HOSTNAME' echo $HOSTNAME[root@VM-16-15-centos ~]# echo `echo $HOSTNAME`VM-16-15-centos

结论

**单引号:**六亲不认,变量和命令都不识别,都当成了普通的字符串
反向单引号: 变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续
双引号: 不能识别命令,可以识别变量

24、括号扩展:{}

例1:

[root@VM-16-15-centos tmp]# touch file{1,3,5}.txt[root@VM-16-15-centos tmp]# ll总用量 0-rw-r--r-- 1 root root 0 1月 16 16:11 file1.txt-rw-r--r-- 1 root root 0 1月 16 16:11 file3.txt-rw-r--r-- 1 root root 0 1月 16 16:11 file5.txt

例2:

[root@VM-16-15-centos tmp]# touch file{1..5}.txt [root@VM-16-15-centos tmp]# ll总用量 0-rw-r--r-- 1 root root 0 1月 16 16:12 file1.txt-rw-r--r-- 1 root root 0 1月 16 16:12 file2.txt-rw-r--r-- 1 root root 0 1月 16 16:12 file3.txt-rw-r--r-- 1 root root 0 1月 16 16:12 file4.txt-rw-r--r-- 1 root root 0 1月 16 16:12 file5.txt

例3:

[root@VM-16-15-centos tmp]# touch file{3..5}.txt[root@VM-16-15-centos tmp]# ll总用量 0-rw-r--r-- 1 root root 0 1月 16 16:13 file3.txt-rw-r--r-- 1 root root 0 1月 16 16:13 file4.txt-rw-r--r-- 1 root root 0 1月 16 16:13 file5.txt

例4:

# 2是间隔数,打印出来的包含3的,如果第二位是9,则也会打印file9.txt[root@VM-16-15-centos tmp]# touch file{3..8..2}.txt[root@VM-16-15-centos tmp]# ll总用量 0-rw-r--r-- 1 root root 0 1月 16 16:16 file3.txt-rw-r--r-- 1 root root 0 1月 16 16:16 file5.txt-rw-r--r-- 1 root root 0 1月 16 16:16 file7.txt

例5:

# 同样适用于字母[root@VM-16-15-centos tmp]# echo {a..z..2}a c e g i k m o q s u w y

例6:

[root@VM-16-15-centos tmp]# echo {000..20..2}000 002 004 006 008 010 012 014 016 018 020

例7:

[root@VM-16-15-centos tmp]# touch file{1..5}.{txt,log}[root@VM-16-15-centos tmp]# ll总用量 0-rw-r--r-- 1 root root 0 1月 16 16:25 file1.log-rw-r--r-- 1 root root 0 1月 16 16:25 file1.txt-rw-r--r-- 1 root root 0 1月 16 16:25 file2.log-rw-r--r-- 1 root root 0 1月 16 16:25 file2.txt-rw-r--r-- 1 root root 0 1月 16 16:25 file3.log-rw-r--r-- 1 root root 0 1月 16 16:25 file3.txt-rw-r--r-- 1 root root 0 1月 16 16:25 file4.log-rw-r--r-- 1 root root 0 1月 16 16:25 file4.txt-rw-r--r-- 1 root root 0 1月 16 16:25 file5.log-rw-r--r-- 1 root root 0 1月 16 16:25 file5.txt

25、sleep

过多久执行什么操作

# 过5秒执行 echo "hello word"[root@VM-16-15-centos ~]# sleep 5;echo "hello word"hello word

26、字符集

我们都知道计算机是二进制语言,我们输入的文字或者字母计算机是无法识别的,如何才能让计算机识别呢,这个时候就用到了字符集,字符集就是个表格,它把字符和计算机二进制做了对应关系,例如以下表格,本次只举例,不论证对应表是否正确:

字母二进制a01001b01002

unkode字符集

全球通用字符集,unkode包含:UTF8、UTF16、UTF32三种编码

27、编码

字符集简单来说就是字符和二进制的对应关系,编码决定了如何在磁盘上保存,它的保存形式不一样,例如一个人的姓名,名字不变的情况下你可以使用宋体,楷体或者黑体来写,编码决定了它最终的表现形式。

UTF8 :边长,1到4个字节,它在表示不同文字的时候所占的磁盘空间不一样,有可能会占1个字节,或2个字节,或者3个字节,或者4个字节。

UTF16: 变长,2或4个字节。

UTF32:固定长度,4个字节。

查看当前系统用的那种编码格式

[root@VM-16-15-centos ~]# echo $LANGen_US.utf8#前边是语言,后边是编码格式# 修改语言[root@VM-16-15-centos ~]# LANG=zh_CN.UTF-8[root@VM-16-15-centos ~]# echo $LANG zh_CN.UTF-8

28、history

当执行命令后,系统默认会在内存记录执行过的命令

当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history

登录shell时,会读取命令历史文件中记录下的命令加载到内存中

登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加"至命令历史文件中

.bash_history文件会记录多少条,我们可以用一下命令来查看

# 一共可以存多少条都在“HISTSIZE”变量中记录[root@VM-16-15-centos ~]# echo $HISTSIZE3000# 修改记录条数为10000(这个在centos7.6中改完并没有生效,后续在查找)[root@VM-16-15-centos ~]# sed -i 's/HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile[root@VM-16-15-centos ~]# source /etc/profile[root@VM-16-15-centos ~]# echo $HISTSIZE3000

# 查看历史记录[root@VM-16-15-centos ~]# history... 599 2022-01-16 12:18:14 echo -e "33[31m 红色字 33[0m" 600 2022-01-16 12:29:48 ll 601 2022-01-16 12:30:18 ll 602 2022-01-16 12:31:58 ll 603 2022-01-16 12:32:33 ll 604 2022-01-16 13:37:57 echo $LANG 605 2022-01-16 13:38:00 ll 606 2022-01-16 16:43:56 cat .bash_history 607 2022-01-16 16:45:05 history

执行历史命令

# 用“!”号加历史命令前的编号[root@VM-16-15-centos ~]# !605lltotal 24drwxrwxr-x 9 lighthouse lighthouse 4096 May 31 2021 apache-tomcat-8.5.66drwxr-xr-x 8 lighthouse lighthouse 4096 Dec 20 2017 jdk1.8.0_161-rw-r--r-- 1 root root 9224 Nov 15 09:40 mysql57-community-release-el7-9.noarch.rpm-rw-r--r-- 1 root root 0 Jan 16 15:45 nginx_2022-01-16.logdrwxr-xr-x 2 root root 4096 Jan 16 16:25 tmp# 或[root@VM-16-15-centos ~]# !-3# 倒数第3条lltotal 24drwxrwxr-x 9 lighthouse lighthouse 4096 May 31 2021 apache-tomcat-8.5.66drwxr-xr-x 8 lighthouse lighthouse 4096 Dec 20 2017 jdk1.8.0_161-rw-r--r-- 1 root root 9224 Nov 15 09:40 mysql57-community-release-el7-9.noarch.rpm-rw-r--r-- 1 root root 0 Jan 16 15:45 nginx_2022-01-16.logdrwxr-xr-x 2 root root 4096 Jan 16 16:25 tmp

常用选项

-c:清空历史命令-d offset:删除历史中指定的第offset个命令n:显示最近的n条历史-a:追加本次会话新执行的命令历史列表至历史文件-r:读历史文件附加到历史列表-w︰保存历史列表到指定的历史文件-n:读历史文件中未读过的行到历史列表-p:展开历史参数成多行,但不存在历史列表中-s:展开历史参数成一行,附加在历史列表后

清除历史记录

# 有时候我们在输入一些敏感信息的时候并不想让其他人知道,这个时候我们可以清楚历史记录[root@VM-16-15-centos ~]# mysql -uroot -ppasswd[root@VM-16-15-centos ~]# history... 629 2022-01-16 17:05:40 history 630 2022-01-16 17:05:47 echo $HISTSIZE 631 2022-01-16 17:09:15 mysql -uroot -ppasswd# 密码在历史中保存 632 2022-01-16 17:09:23 history # 清除历史记录,发现此时已经看不到了[root@VM-16-15-centos ~]# history -c[root@VM-16-15-centos ~]# history 1 2022-01-16 17:10:05 h 2 2022-01-16 17:10:17 history# 退出终端在进行history查看也是看不到的

查看删除记录

[root@VM-16-15-centos ~]# rm -rf .bash_history[root@VM-16-15-centos ~]# history -c# 直接关闭窗口在登录,发现删除的操作还是会被查看到,即使前边已经清除了记录Last login: Sun Jan 16 17:35:04 2022 from 171.11.0.69[root@VM-16-15-centos ~]# history 1 2022-01-16 17:35:39 rm -rf .bash_history 2 2022-01-16 17:36:26 history

注意: 通过history命令查看的历史记录都是在内存中的,当我们退出终端的时候会写入到 .bash_history文件,如果我们没有退出的时候写入的新命令则会先写入内存,如果此时清除历史消息,是不会写入.bash_history文件的。

伪造历史记录

# 伪造删除/data盘的记录[root@VM-16-15-centos ~]# history -s rm -rf /data drwxr-xr-x 2 root root 4096 Jan 16 16:25 tmp# 查看/data目录还在[root@VM-16-15-centos ~]# ll /total 72lrwxrwxrwx、 1 root root 7 Mar 7 2019 bin -> usr/bindr-xr-xr-x、 5 root root 4096 Nov 6 16:39 bootdrwxr-xr-x 2 root root 4096 Nov 5 2019 datadrwxr-xr-x 20 root root 3040 Nov 6 16:40 devdrwxr-xr-x、 96 root root 12288 Jan 16 17:02 etcdrwxr-xr-x、 3 root root 4096 Nov 6 16:38 homelrwxrwxrwx、 1 root root 7 Mar 7 2019 lib -> usr/liblrwxrwxrwx、 1 root root 9 Mar 7 2019 lib64 -> usr/lib64drwx------、 2 root root 16384 Mar 7 2019 lost+founddrwxr-xr-x、 2 root root 4096 Apr 11 2018 mediadrwxr-xr-x、 2 root root 4096 Apr 11 2018 mntdrwxr-xr-x、 7 root root 4096 Nov 6 16:58 optdr-xr-xr-x 120 root root 0 Nov 6 16:39 procdr-xr-x---、 13 root root 4096 Jan 16 17:35 rootdrwxr-xr-x 25 root root 840 Jan 13 20:39 runlrwxrwxrwx、 1 root root 8 Mar 7 2019 sbin -> usr/sbindrwxr-xr-x、 2 root root 4096 Apr 11 2018 srvdr-xr-xr-x 13 root root 0 Jan 16 17:39 sysdrwxrwxrwt、 10 root root 4096 Jan 16 17:26 tmpdrwxr-xr-x、 14 root root 4096 Nov 9 18:44 usrdrwxr-xr-x、 20 root root 4096 Jan 8 2021 var# 查看历史记录,发现有伪造删除data盘记录[root@VM-16-15-centos ~]# history 1 2022-01-16 17:35:39 rm -rf .bash_history 2 2022-01-16 17:36:26 history 3 2022-01-16 17:39:06 ll 4 2022-01-16 17:39:10 ll / 5 2022-01-16 17:39:45 rm -rf /data 6 2022-01-16 17:39:53 ll 7 2022-01-16 17:39:57 ll / 8 2022-01-16 17:40:05 history

命令历史相关环境变量

HISTSIZE:命令历史记录的条数HISTFILE:指定历史文件,默认为~/.bash_historyHISTFILESIZE:命令历史文件记录历史的条数HISTTIMEFORMAT="%F %T `whoami`"显示时间和用户HISTIGNORE="str1: str2* : ..."忽略str1命令,str2开头的历史HISTCONTROL:控制命令历史的记录方式ignoredups是默认值,可忽略重复的命令,连续且相同为“重复”ignorespace忽略所有以空白开头的命令ignoreboth相当于ignoredups,ignorespace的组合erasedups删除重复命令

# 让历史记录显示日期和用户,终端退出再次登录仍然生效(重启服务器是否生效待测试)[root@VM-16-15-centos ~]# export HISTTIMEFORMAT="%F %T `whoami` "[root@VM-16-15-centos ~]# history 1 2022-01-16 17:35:39 root rm -rf .bash_history 2 2022-01-16 17:36:26 root history 3 2022-01-16 17:39:06 root ll 4 2022-01-16 17:39:10 root ll / 5 2022-01-16 17:39:45 root rm -rf /data 6 2022-01-16 17:39:53 root ll 7 2022-01-16 17:39:57 root ll / 8 2022-01-16 17:40:05 root history 9 2022-01-16 17:44:34 root echo $HISFILE 10 2022-01-16 17:44:49 root echo $HISTFILE 11 2022-01-16 17:52:03 root export HISTTIMEFORMAT="%F %T `whoami`" 12 2022-01-16 17:52:10 root history

调用命令历史

# !?+要搜索的关键词,也可以是包含在关键词中的字符[root@VM-16-15-centos ~]# !?gre# 执行最后一个包含gre的命令grep 'bash' /etc/passwdroot:x:0:0:root:/root:/bin/bashlighthouse:x:1000:1000::/home/lighthouse:/bin/bashmysql:x:306:306::/data/mysql:/bin/bash# 执行最近的以d开头的命令[root@VM-16-15-centos ~]# !ddateSun Jan 23 11:12:52 CST 2022# 把前一个命令的参数作为之后执行命令的参数[root@VM-16-15-centos ~]# cat /etc/redhat-release /etc/issueCentOS Linux release 7.6.1810 (Core)SKernel r on an m[root@VM-16-15-centos ~]# ll !*# 表示把前一个命令的参数作为后一个命令执行的参数ll /etc/redhat-release /etc/issue-rw-r--r--、1 root root 23 Nov 23 2018 /etc/issuelrwxrwxrwx、1 root root 14 Mar 7 2019 /etc/redhat-release -> centos-release[root@VM-16-15-centos ~]# cat !*cat /etc/redhat-release /etc/issueCentOS Linux release 7.6.1810 (Core)SKernel r on an m# 还有用!?表示上个命令的所有参数(一般使用于1个参数的情况)[root@VM-16-15-centos ~]# cat nginx_2022-01-16.log123[root@VM-16-15-centos ~]# ll !$ll nginx_2022-01-16.log-rw-r--r-- 1 root root 4 Jan 23 11:22 nginx_2022-01-16.log# 调用某一个参数[root@VM-16-15-centos tmp]# ll a.txt b.txt-rw-r--r-- 1 root root 4 Jan 23 11:25 a.txt-rw-r--r-- 1 root root 4 Jan 23 11:25 b.txt# 调用第一个参数[root@VM-16-15-centos tmp]# cat !:1cat a.txt123# 调用第二个参数[root@VM-16-15-centos tmp]# ll a.txt b.txt-rw-r--r-- 1 root root 4 Jan 23 11:25 a.txt-rw-r--r-- 1 root root 4 Jan 23 11:25 b.txt[root@VM-16-15-centos tmp]# cat !:2cat b.txt456# 或[root@VM-16-15-centos tmp]# cat !$# $表示最后一个(一共就两个参数)cat b.txt456# 也可以用快捷键 ll 按下ESC,松手后按下 “.” ,或者ll 按住Alt不松手在按下“.” [root@VM-16-15-centos tmp]# cat a.txt b.txt123456[root@VM-16-15-centos tmp]# ll b.txt-rw-r--r-- 1 root root 4 Jan 23 11:25 b.txt

29、bash中的快捷键

Ctrl + l清屏,相当于clear命令ctr1 + o执行当前命令,并重新显示本命令ctrl + s阻止屏幕输出,锁定# 分工具ctr1 + q允许屏幕输出,解锁# 分工具ctr1 + c终止命令ctrl + z挂起命令ctrl + a光标移到命令行首,相当于Homectrl + e光标移到命令行尾,相当于Endctrl + f光标向右移动一个字符ctrl + b光标向左移动一个字符ctrl + xx光标在命令行首和光标之间移动Alt + f光标向右移动一个单词尾Alt + b光标向左移动一个单词首ctrl + u从光标处删除至命令行首ctr1 + k从光标处删除至命令行尾A1t + r删除当前整行ctrl + w从光标处向左删除至单词首Alt + d从光标处向右删除至单词尾Alt + Backspace删除左边单词ctrl + d删除光标处的一个字符ctrl + h删除光标前的一个字符ctrl + y将删除的字符粘贴至光标后A1t + c交换光标处和之前的字符位置A1t + u从光标处开始,将右边一个单词更改为大写Alt + 1从光标处开始,将右边一个单词更改为小写ctrl + t交换光标处和之前的字符位置A1t + t交换光标处和之前的单词位置A1t + #提示输入指定字符后,重复显示该字符#次

实例1:

# ctrl + u从光标处删除至命令行首[root@VM-16-15-centos ~]# cat -n nginx_2022-01-16.log[root@VM-16-15-centos ~]# nginx_2022-01-16.log# 光标在-n后,敲下ctrl+u

实例2:

# ctr1 + k从光标处删除至命令行尾[root@VM-16-15-centos ~]# cat -n nginx_2022-01-16.log[root@VM-16-15-centos ~]# cat# 光标在ctrl后,选项和参数都会被删除

30、linux文件类型

# linux下期中文件类型- 普通文件d 目录文件directoryb 块设备blockc 字符设备characterl 符号链接文件linkp 管道文件pipes 套接字文件socket

31、dirname与basename

文件所在目录 dirname

文件名 basename

[12:02:41 root@ansible network-scripts]#ll /etc/sysconfig/network-scripts/ifcfg-ens192-rw-r--r--、1 root root 412 9月 14 22:57 /etc/sysconfig/network-scripts/ifcfg-ens192dirname : /etc/sysconfig/network-scripts/basename : ifcfg-ens192

命令类型

dirname与basename都是外部命令

[12:03:21 root@ansible network-scripts]#type dirnamedirname 是 /usr/bin/dirname[12:06:08 root@ansible network-scripts]#type basenamebasename 是 /usr/bin/basename

取一个文件的dirname与basename

[12:06:28 root@ansible network-scripts]#dirname /etc/sysconfig/network-scripts/ifcfg-ens192/etc/sysconfig/network-scripts[12:09:02 root@ansible network-scripts]#basename /etc/sysconfig/network-scripts/ifcfg-ens192ifcfg-ens192

32、cd

回到某个用户的家目录

# 回到yang用户的家目录(当前用户是root)[12:20:28 root@ansible ~]#cd ~yang[12:20:37 root@ansible yang]#pwd/home/yang

普通用户无法切回管理员的家目录

# 当前用yang[12:22:03 yang@ansible ~]$cd ~rootbash: cd: /root: 权限不够

33、help

查看内部命令的帮助

[12:30:14 root@ansible ~]#type enable enable 是 shell 内嵌[12:30:21 root@ansible ~]#help enableenable: enable [-a] [-dnps] [-f 文件名] [名称 ...] 启用和禁用 shell 内嵌。 启用和禁用 shell 的内嵌命令。禁用使您能够执行一个和内嵌 命令同名的磁盘上的命令,而无须使用完整的路径名。 选项: -a 打印一个内嵌的列表,并显示其中每一个是否启用 -n 禁用每一个 NAME 内嵌或者显示一个被禁用的内嵌的列表 -p 以可重用的格式打印一个内嵌的列表 -s 仅打印Posix `special' 内嵌的名称 控制动态加载的选项: -f 从共享对象 FILENAME 文件中加载 NAME 内嵌 -d 删除以 -f 选项加载的内嵌 不带选项时,每一个 NAME 内嵌都被启用。 如果要使用 $PATH 中找到的 `test' 而不是 shell 内嵌的版本, 输入 `enable -n test'。 退出状态: 返回成功,除非 NAME 不是一个 shell 内嵌或者有错误发生。

外部命令是无法通过help查看的帮助的

# less为外部命令[12:31:50 root@ansible ~]#type lessless 是 /usr/bin/less[12:31:54 root@ansible ~]#help less-bash: help: 没有与 `less' 匹配的帮助主题。尝试 `help help' 或者 `man -k less' 或者 `info less'。

外部命令可以通过命令±-help查看帮助

[13:14:11 root@ansible ~]#less --help SUMMARY OF LESS COMMANDS Commands marked with * may be preceded by a number, N. Notes in parentheses indicate the behavior if N is given. A key preceded by a caret indicates the Ctrl key; thus ^K is ctrl-K. h H Display this help. q :q Q :Q ZZ Exit. --------------------------------------------------------------------------- MOVING e ^E j ^N CR * Forward one line (or N lines). y ^Y k ^K ^P * Backward one line (or N lines). f ^F ^V SPACE * Forward one window (or N lines). b ^B ESC-v * Backward one window (or N lines). ...

34、ls

ls是别名

[13:10:51 root@ansible ~]#type ls ls 是 `ls --color=auto' 的别名

用ls原本的意思需要用“”ls

# 所有文件没有颜色[13:12:37 root@ansible ~]#ls

ls常见选项

-a包含隐藏文件-l显示额外的信息-R目录递归# 大写-ld目录和符号链接信息-l文件分行显示-S按从大到小排序# 大写-t按mtime排序-u配合-t选项,显示并按atime从新到旧排序-U按目录存放顺序显示# 大写-×按文件后缀排序

-R 目录递归

[13:23:06 root@ansible ~]#ll -R tmptmp:总用量 0-rw-r--r-- 1 root root 0 2月 13 13:22 a.txtdrwxr-xr-x 2 root root 19 2月 13 13:22 testtmp/test:总用量 0-rw-r--r-- 1 root root 0 2月 13 13:22 b.log# 通过tree查看目录结构[13:23:08 root@ansible ~]#tree tmptmp├── a.txt└── test └── b.log1 directory, 2 files

-S 按从大到小排序,默认的单位“k”

[13:25:30 root@ansible ~]#ll -S总用量 1240244-rw-r--r--、1 root root 562196899 9月 4 13:29 harbor-offline-installer-v2.1.4.tgz-rw-r--r--、1 root root 341603885 10月 18 09:28 mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz-rw-r--r--、1 root root 57763752 8月 25 10:33 Xmanager5.exe-rw-r--r--、1 root root 12737304 9月 16 14:22 docker-compose-Linux-x86_64-rwxr-xr-x、1 root root 10360930 7月 12 2021 ossutil64-rw-r--r--、1 root root 12371 11月 4 15:23 testdata.sql-rw-r--r--、1 root root 9224 9月 12 2016 mysql57-community-release-el7-9.noarch.rpm# 为了方便看可以加上“-h”参数[13:25:25 root@ansible ~]#ll -Sh总用量 1.2G-rw-r--r--、1 root root 537M 9月 4 13:29 harbor-offline-installer-v2.1.4.tgz-rw-r--r--、1 root root 326M 10月 18 09:28 mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz-rw-r--r--、1 root root 67M 8月 9 2021 docker-20.10.6.tgz-rw-r--r--、1 root root 56M 8月 25 10:33 Xmanager5.exe-rw-r--r--、1 root root 13M 9月 16 14:22 docker-compose-Linux-x86_64-rwxr-xr-x、1 root root 9.9M 7月 12 2021 ossutil64-rw-r--r--、1 root root 13K 11月 4 15:23 testdata.sql-rw-r--r--、1 root root 9.1K 9月 12 2016 mysql57-community-release-el7-9.noarch.rpm

-ld 目录和符号链接信息

# 想看某个目录的属性,并不关系目录里边的文件熟悉可以加上“-ld”参数[13:31:14 root@ansible ~]#ll /boot总用量 107124-rw-r--r--、1 root root 151918 11月 9 2018 config-3.10.0-957.el7.x86_64drwxr-xr-x、3 root root 17 8月 4 2021 efidrwxr-xr-x、2 root root 27 8月 4 2021 grubdrwx------、5 root root 97 8月 4 2021 grub2-rw-------、1 root root 57146933 8月 4 2021 initramfs-0-rescue-63a9758edf8c421abeb9517633ba9553.img-rw-------、1 root root 21682829 8月 4 2021 initramfs-3.10.0-957.el7.x86_64.img-rw------- 1 root root 13556486 2月 13 11:10 initramfs-3.10.0-957.el7.x86_64kdump.img-rw-r--r--、1 root root 314036 11月 9 2018 symvers-3.10.0-957.el7.x86_64.gz-rw-------、1 root root 3543471 11月 9 2018 System.map-3.10.0-957.el7.x86_64-rwxr-xr-x、1 root root 6639904 8月 4 2021 vmlinuz-0-rescue-63a9758edf8c421abeb9517633ba9553-rwxr-xr-x、1 root root 6639904 11月 9 2018 vmlinuz-3.10.0-957.el7.x86_64# 只显示该文件夹本身的属性[13:34:29 root@ansible ~]#ll -ld /bootdr-xr-xr-x、5 root root 4096 2月 13 11:10 /boot

35、文件的时间

文件时间有三种,分别是modify time、change time、access time

查看三种时间的方法

# mtime:[13:56:02 root@ansible ~]#ll env.sh -rw-r--r-- 1 root root 90 12月 25 13:17 env.sh# ctime[13:56:08 root@ansible ~]#ll --time=ctime env.sh -rw-r--r-- 1 root root 90 12月 25 13:17 env.sh# atime[13:56:17 root@ansible ~]#ll --time=atime env.sh -rw-r--r-- 1 root root 90 12月 25 13:17 env.sh

modify time:修改文件的时间,针对文件内容

modify time:例如修改了文件内容,# ll查看到的是mtime及modify time[13:43:41 root@ansible ~]#ll -h anaconda-ks.cfg -rw-------、1 root root 1.5K 8月 4 2021 anaconda-ks.cfg# 用vim进行修改13:43:41 root@ansible ~]#vim anaconda-ks.cfg# 修改后时间已经变成了[13:44:42 root@ansible ~]#ll -h anaconda-ks.cfg-rw------- 1 root root 1.5K 2月 13 13:44 anaconda-ks.cfg

change time:修改属性的时间,针对属主,属组,读写执行等属性,修改属性modify time不会改变

# 查看ctime时间[13:56:08 root@ansible ~]#ll --time=ctime env.sh -rw-r--r-- 1 root root 90 12月 25 13:17 env.sh# 修改文件属性[13:57:50 root@ansible ~]#chown -R yang:yang env.sh# 查看ctime时间,发现ctime时间已经变了[13:58:11 root@ansible ~]#ll --time=ctime env.sh-rw-r--r-- 1 yang yang 90 2月 13 13:58 env.sh

修改文件内容ctime也会改变

# 修改文件内容是大小有可能会发生变化,时间会必会发生变化# 修改前mtime和ctime一样[21:36:38 root@ansible ~]#ll -h testlog.sql-rw-r--r--、1 root root 291 11月 1 16:23 testlog.sql[21:36:46 root@ansible ~]#ll --time=ctime testlog.sql-rw-r--r--、1 root root 291 11月 1 16:23 testlog.sql# 修改文件[21:38:31 root@ansible ~]#vim testlog.sql# 修改文件后[21:39:25 root@ansible ~]#ll -h testlog.sql-rw-r--r-- 1 root root 300 2月 13 21:39 testlog.sql[21:39:28 root@ansible ~]#ll --time=ctime testlog.sql -rw-r--r-- 1 root root 300 2月 13 21:39 testlog.sql

注意: 注意,只修改属性,例如属主,mtime并不会发生变化。

access time:文件只要被读就会被access time记录

# 查看文件atime[14:02:58 root@ansible ~]#ll --time=atime testdata.sql -rw-r--r--、1 root root 12371 11月 4 15:23 testdata.sql# 查看文件[14:03:07 root@ansible ~]#cat testdata.sql# 发现文件atime已经变了[14:04:55 root@ansible ~]#ll --time=atime testdata.sql-rw-r--r--、1 root root 12371 2月 13 14:04 testdata.sql

同时查看三个时间

[21:50:01 root@ansible ~]#stat test.sql 文件:"test.sql" 大小:38 块:8 IO 块:4096 普通文件设备:fd00h/64768d Inode:52102 硬链接:1权限:(0644/-rw-r--r--) Uid:( 1001/ yang) Gid:( 0/ root)最近访问:2021-11-01 16:24:44.644054348 +0800最近更改:2021-10-12 14:48:20.410504560 +0800最近改动:2022-02-13 21:44:28.076626061 +0800创建时间:-

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。