linux初学者小命令
linux初学者小命令
- 一.在正式学习linux命令之前需要先认识一下linux环境中命令是如何被执行的
- shell是一个属于linux内核的软件,在系统启动后加载进RAM(内存)内,每个用户通过终端登录系统后,就会运行。负责不间断的接收用户的输入,通过创建新的‘进程’来运行用户输入的命令,执行完后再次返回等待新的命令输入。
- 例如:下面我们先执行了pwd命令,bash就打印了目前用户所处的位置(此处为/root文件夹);接着执行了ls命令,bash接着显示了当前/root目录下的所有可见文件夹和文件(linux下的隐藏文件以点.开头,使用'ls -a'可以看到),下面使用*号表示匹配D开头的所有文件与文件夹。
- bash执行命令的过程,以'ls'命令为例:
- shell执行命令过程简而言之:
- 别名--->内部命令--->hash记录的外部命令--->$PATH
- 二.Linux初学的小命令
- [alias] 定义或者显示别名
- [bc] 计算器
- [tac] 输出显示时从最后一行开始倒序输出
- [rev] 将每行的字符顺序倒置
- [cat] 拼接文件并打印
- [cd] 切换工作文件夹
- [df] 报告文件系统磁盘空间使用情况
- [free] 显示系统内存使用情况
- [hash]
- [hostname] 查看和显示主机名
- [lscpu] 打印cpu架构相关的信息
- [lsblk] 列出块设备相关信息
- [mv] 移动或者重命名文件
- [nano] linux下的简单字符界面编辑器
- [runlevel] 显示系统运行级别
- [tty] 打印链接到标准输入的终端文件名
- [type] 判断某名称是否需要解析为命令名
- [unalias] 从定义好的命令别名列表中移除某别名
- [whoami] 打印有效的用户ID
一.在正式学习linux命令之前需要先认识一下linux环境中命令是如何被执行的
shell是一个属于linux内核的软件,在系统启动后加载进RAM(内存)内,每个用户通过终端登录系统后,就会运行。负责不间断的接收用户的输入,通过创建新的‘进程’来运行用户输入的命令,执行完后再次返回等待新的命令输入。
- 进程:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。
例如:下面我们先执行了pwd命令,bash就打印了目前用户所处的位置(此处为/root文件夹);接着执行了ls命令,bash接着显示了当前/root目录下的所有可见文件夹和文件(linux下的隐藏文件以点.开头,使用’ls -a’可以看到),下面使用*号表示匹配D开头的所有文件与文件夹。
[root@centos7 ~]$pwd
/root
[root@centos7 ~]$ls
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos
[root@centos7 ~]$ls D*
Desktop:
Documents:
Downloads:
bash执行命令的过程,以’ls’命令为例:
第一步.读取输入信息:shell通过STDIN(标准输入)的getline()函数得到用户的输入信息(命令ls)并保存其到一个字符串中(“ls”)。然后字符串被解析存储在一个数组内(类似{“ls”,“NULL”}),该数组就存储了内核执行该命令的所有信息。
第二步.判断别名:shell在搜索该命令前会先查看命令别名(用户自定义的命令别名)。如果ls是某个命令的别名,则shell直接执行ls。
第三步.判断是否是built-in:shell检查该命令是否是shell内置的命令(随shell一同加载到内存,随时准备运行),如果是内置命令则直接在shell自己的上下文环境中运行该命令。
第四步.在hash中查找:如果某个非内部命令已经执行过,则该命令的访问路径被记录在hash中,shell下次运行该命令时就无须再去PATH环境变量所记录的文件夹下搜索该命令的执行文件。
第五步.在PATH环境变量中查找:如果命令不是shell内置命令,则shell会去PATH环境变量所代表的文件路径下去查找该命令的可执行二进制文件。找到后shell会复制自己的某些上下文配置,生成一个子shell进程来运行该命令,此时正在运行命令的shell为子shell进程,之前输入命令的shell为父进程。
- PATH:在linux中PATH环境变量用来存储包含可执行二进制文件的文件夹,这些文件夹名使用分号:隔开,如下面我电脑上的PATH环境变量存储了字符串"/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/",这字符串说明我的linux中所有非内置的命令都在这些分号隔开的文件夹下。
[root@centos7 ~]$echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
- 下面就列出了/usr/bin/这个文件夹下的一部分可执行文件
- PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/
[root@centos7 ~]$ls /usr/bin/
[ diff gtk-query-immodules-2.0-64 mmount python2.7 swig
a2p diff3 gtk-query-immodules-3.0-64 mmove qdbus sx
abrt-action-analyze-backtrace diff-jars gtk-update-icon-cache mobj_dump qemu-ga sync
abrt-action-analyze-c diffpp gtroff modifyrepo qemu-img synclient
abrt-action-analyze-ccpp-local diffstat gucharmap modutil qemu-io syndaemon
abrt-action-analyze-core dig gunzip mokutil qemu-nbd sy
别名—>内部命令—>hash记录的外部命令—>$PATH
二.Linux初学的小命令
[alias] 定义或者显示别名
- 用法:
> alias [alias-name[=string] ...]
EXAMPLES 1. Change ls to give a columnated, more annotated output:alias ls="ls -CF"2. Create a simple "redo" command to repeat previous entries in the command history file:alias r='fc -s'3. Use 1K units for du:alias du=du\ -k4. Set up nohup so that it can deal with an argument that is itself an alias name:alias nohup="nohup "
[bc] 计算器
- bc是一种支持任意精度数字的带有交互执行语句的语言,在linux中可以使用bc进行交互式的数学计算,其包含很多数学计算的表达式和用法,简单示例如下:
[root@centos7 ~]$bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
2*3
6
4/5
0
5/4
1
3%5
3
[tac] 输出显示时从最后一行开始倒序输出
[rev] 将每行的字符顺序倒置
[cat] 拼接文件并打印
- 拼接文件并在标准输出上打印文件内容,用法:
> cat [OPTION]... [FILE]..
- 不带参数或者跟一个减号(-)表示将标准输入复制打印给标准输出
[root@centos7 ~]$cat # cat - 也可以
123 # 输入123,回车
123 # 回车后标准输入(123)被打印到标准输出
ABC
ABC
hello world
hello world
^C # ctrl + c 强制退出
[root@centos7 ~]$
- 带参数
-A, --show-all
等同于 -vET,显示Tab控制符^I和行结束符
[root@centos7 /data]$cat -vET
gg
gg$ #标注输入为gg
gg
gg^I$ #标准输入为gg和tab键#无标准输入,按enter键
$
ddff
ddff^I^I$ #标准输入为ddff和两个tab键
-b, --number-nonblank
记录非空输入的行号
[root@centos7 /data]$cat -b
1231 123 #第一次标准输入内容
2222 222 #第二次标准输入内容
asdfw3 asdfw
dfbsg44 dfbsg4
3242g5 3242g#标准输入为空,未记录
ffff6 fffffffff7 fffff
-e
等同于 -vE
-E, --show-ends
显示每行的换行符$
-n, --number
显示所有的标准输出行
[root@centos7 /data]$cat -n
hello1 hello
hi2 hi
whats up3 whats up
nothing4 nothing5 # 第五次标准输入无输入,也记录行号6
-s, --squeeze-blank
压缩重复的空白行,第一个空白行以后的空白行无输入时不显示任何内容($也不显示)在标准输出,
[root@centos7 /data]$cat -sA
dd
dd$
ddff
ddff^I$$ # 第一个空白行的输出# 后面的空白行被压缩,换行符$也不显示# 同上
-t
等同于 -vT
-T, --show-tabs
显示 TAB 字符为^I
-u
忽略tab键和换行符
-v, --show-nonprinting
显示不可打印字符,配合-E,-T使用,如:cat -vET
cat后没有跟文件或者跟横杆 - (减号),则表示读取标准输入
[cd] 切换工作文件夹
- cd命令为shell built-in类型,属于bash内置命令,用于切换用户工作目录,例如:
[root@centos7 /data/test]$pwd
/data/test # 当前所处位置
[root@centos7 /data/test]$cd / # / 表示系统根目录
[root@centos7 /]$pwd
/
[root@centos7 /]$ls # 显示根目录文件
bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@centos7 /]$cd - # cd - 表示切换到前一个工作目录
/data/test
[root@centos7 /data]$cd ~ # cd ~ 表示切换到家目录
[root@centos7 ~]$cd /data/
[root@centos7 /data]$cd .. # cd .. 表示切换到目前所处目录的父目录
[root@centos7 /]$cd . # . 一个点表示当前目录
[root@centos7 /]$
[df] 报告文件系统磁盘空间使用情况
- 不带参数默认df显示所有文件系统的空间使用情况
[root@centos7 ~]$df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 747304 0 747304 0% /dev
tmpfs 763104 0 763104 0% /dev/shm
tmpfs 763104 10516 752588 2% /run
tmpfs 763104 0 763104 0% /sys/fs/cgroup
/dev/sda2 104806400 5169652 99636748 5% /
/dev/sda3 52403200 32996 52370204 1% /data
/dev/sda1 1038336 171704 866632 17% /boot
tmpfs 152624 12 152612 1% /run/user/42
tmpfs 152624 0 152624 0% /run/user/0
默认df以1K的块大小为显示单位,
显示的单位大小获取顺序:–block-size(用户指定)–>DF_BLOCK_SIZE–>BLOCK_SIZ–>BLOCKSIZE–>1024 bytes (或者当POSIXLY_CORRECT变量已经被设置时使用512 bytes)
-a, --all
显示所有文件系统,包括不可访问的
-B, --block-size=SIZE
指定显示单位大小
SIZE is an integer and optional unit (example: 10M is 10*1024*1024).
Units are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).
-h, --human-readable
使用便于人类阅读的格式显示空间大小(e.g.:1K 234M 2G),此时1M=1024K
-H, --si
同-h,只不过此时1M=1000K,用此选项数值偏大
-i, --inodes
不显示空间使用情况,显示inode的使用情况
[root@centos7 ~]$df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 186826 402 186424 1% /dev
tmpfs 190776 1 190775 1% /dev/shm
tmpfs 190776 921 189855 1% /run
tmpfs 190776 16 190760 1% /sys/fs/cgroup
/dev/sda2 52428800 162818 52265982 1% /
/dev/sda3 26214400 5 26214395 1% /data
/dev/sda1 524288 340 523948 1% /boot
tmpfs 190776 9 190767 1% /run/user/42
tmpfs 190776 1 190775 1% /run/user/0
-k
等同于 --block-size=1K
-l, --local
限制只显示本地文件系统
-T
显示文件系统
[root@centos7 ~]$df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
devtmpfs devtmpfs 747304 0 747304 0% /dev
tmpfs tmpfs 763104 0 763104 0% /dev/shm
tmpfs tmpfs 763104 10516 752588 2% /run
tmpfs tmpfs 763104 0 763104 0% /sys/fs/cgroup
/dev/sda2 xfs 104806400 5169704 99636696 5% /
/dev/sda3 xfs 52403200 32996 52370204 1% /data
/dev/sda1 xfs 1038336 171704 866632 17% /boot
tmpfs tmpfs 152624 12 152612 1% /run/user/42
tmpfs tmpfs 152624 0 152624 0% /run/user/0
-t , --type=TYPE
显示特定文件系统的空间使用情况
[root@centos7 ~]$df -t tmpfs
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 763104 0 763104 0% /dev/shm
tmpfs 763104 10516 752588 2% /run
tmpfs 763104 0 763104 0% /sys/fs/cgroup
tmpfs 152624 12 152612 1% /run/user/42
tmpfs 152624 0 152624 0% /run/user/0
[root@centos7 ~]$df -t xfs
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 104806400 5169704 99636696 5% /
/dev/sda3 52403200 32996 52370204 1% /data
/dev/sda1 1038336 171704 866632 17% /boot
-x, --exclude-type
显示非指定的文件系统
[root@centos7 ~]$df -x tmpfs # 显示除了tmpfs以外的文件系统
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 747304 0 747304 0% /dev
/dev/sda2 104806400 5169704 99636696 5% /
/dev/sda3 52403200 32996 52370204 1% /data
/dev/sda1 1038336 171704 866632 17% /boot
[free] 显示系统内存使用情况
- 默认显示系统空闲内存和已经使用内存的总量、交换空间使用情况及内核的缓存使用情况。该命令显示的信息都是解析/proc/meminfo文件得到的。用法:
> free [options]
[root@centos7 ~]$freetotal used free shared buff/cache available
Mem: 1526208 509240 640412 12744 376556 841456
Swap: 3145724 0 3145724
- 选项:
-b, --bytes
一字节为单位显示.
-k, --kilo
以千字节为单位,默认选用.
-m, --mega
以兆字节为单位显示
-g, --giga
以千兆字节为单位显示.
–tera 以T为单位.
–peta 以P为单位.
-h, --human
以适合人类阅读的大小合适的单位显示
-w, --wide
使用宽格式,分开显示buffer和cache,类似centos6
[root@centos7 ~]$free -wtotal used free shared buffers cache available
Mem: 1526208 763656 116976 19932 40 645536 576160
Swap: 3145724 264 3145460
[hash]
- 每次执行外部命令时,某命令的完整路径会被hash通过搜索 P A T H 中的文件夹而记录。如果某命令运行多次,则会命中 h a s h 缓存的命令访问信息,此时 b a s h 不再搜索 PATH中的文件夹而记录。如果某命令运行多次,则会命中hash缓存的命令访问信息,此时bash不再搜索 PATH中的文件夹而记录。如果某命令运行多次,则会命中hash缓存的命令访问信息,此时bash不再搜索PATH,可以直接找到该命令并运行。
> hash [-lr] [-p filename] [-dt] [name]
hash -r
-r 使用该选项清空hash表,以防移动某些外部命令后,bash任然搜索hash表中的路径,找不到命令。
hash -t
该选项使得后面跟的多个命令的名字打印在其完整路径名前
[root@centos7 ~]$hash -t tr ls
tr /usr/bin/tr
ls /usr/bin/ls
hash -l
该选项使得打印出来的格式可用于输入用途
[root@centos7 ~]$hash -l
builtin hash -p /usr/bin/tr
builtin hash -p /usr/bin/ls
[hostname] 查看和显示主机名
hostname [新主机名]
该操作在下次重启电脑后失效,编辑/etc/hostname文件永久生效
hostname -d
hostname -f
hostnaem -i
[root@centos7 /var/www/html]$hostname -f
centos7.magedu.steve
[root@centos7 /var/www/html]$hostname -i
fe80::43be:3721:e7cd:b3a3%ens33 192.168.142.136 192.168.122.1
[root@centos7 /var/www/html]$hostname -d
magedu.steve
[lscpu] 打印cpu架构相关的信息
lscpu [-a|-b|-c|-J] [-x] [-y] [-s directory] [-e[=list]|-p[=list]]
lscpu -h|-V
[lsblk] 列出块设备相关信息
- 该命令通过sysfs收集的文件系统信息列出当前系统可用的块设备,默认情况下该命令以树状结构打印所有块设备(不含RAM)。
- 用法:
-a, --all包含空设备. (By default they are skipped.)-b, --bytes制指定SIZE栏的单位.-D, --discard打印关于每个设备丢弃功能(修剪、取消映射)的信息.-d, --nodeps不打印隶属于该设备的设备信息. For example, lsblk --nodeps /dev/sda prints information about the sda device only.\```[root@centos7 ~]$lsblk --nodeps /dev/sdaNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk [root@centos7 ~]$lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot├─sda2 8:2 0 100G 0 part /├─sda3 8:3 0 50G 0 part /data├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 3G 0 part [SWAP]```-f, --fsOutput info about filesystems. This option is equivalent to -o NAME,FSTYPE,LABEL,MOUNTPOINT. The authoritative information about filesystems andraids is provided by the blkid(8) command.-h, --helpPrint a help text and exit.-I, --include listInclude devices specified by the comma-separated list of major device numbers. The filter is applied to the top-level devices only.-i, --asciiUse ASCII characters for tree formatting.-l, --listProduce output in the form of a list.-m, --permsOutput info about device owner, group and mode. This option is equivalent to -o NAME,SIZE,OWNER,GROUP,MODE.-n, --noheadingsDo not print a header line.-o, --output listSpecify which output columns to print. Use --help to get a list of all supported columns.The default list of columns may be extended if list is specified in the format +list (e.g. lsblk -o +UUID).-P, --pairsProduce output in the form of key="value" pairs. All potentially unsafe characters are hex-escaped (\x<code>).-p, --pathsPrint full device paths.-r, --rawProduce output in raw format. All potentially unsafe characters are hex-escaped (\x<code>) in the NAME, KNAME, LABEL, PARTLABEL and MOUNTPOINTcolumns.-S, --scsiOutput info about SCSI devices only. All partitions, slaves and holder devices are ignored.-s, --inversePrint dependencies in inverse order.-t, --topologyOutput info about block-device topology. This option is equivalent to -o NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,WSAME.
\``````bash
[root@centos7 ~]$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sdb 8:16 0 100G 0 disk
sr0 11:0 1 10.3G 0 rom /run/media/steve/CentOS 7 x86_64
[root@centos7 ~]$lsblk --fs
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 64e5c295-18f6-4a06-815c-96ce9f316b69 /boot
├─sda2 xfs 2f98e043-cee1-4eaf-97f8-7ecf3cfd7228 /
├─sda3 xfs cae2d8fc-15b1-4750-bf94-267b411c4178 /data
├─sda4
└─sda5 swap eb86e30f-4567-4869-b840-1b70f6562bf9 [SWAP]
sdb
sr0 iso9660 CentOS 7 x86_64 2019-09-09-19-08-41-00 /run/media/steve/CentOS 7 x86_64
[root@centos7 ~]$lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 64e5c295-18f6-4a06-815c-96ce9f316b69 /boot
├─sda2 xfs 2f98e043-cee1-4eaf-97f8-7ecf3cfd7228 /
├─sda3 xfs cae2d8fc-15b1-4750-bf94-267b411c4178 /data
├─sda4
└─sda5 swap eb86e30f-4567-4869-b840-1b70f6562bf9 [SWAP]
sdb
sr0 iso9660 CentOS 7 x86_64 2019-09-09-19-08-41-00 /run/media/steve/CentOS 7 x86_64
[root@centos7 ~]$lsblk -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 512 0 512 512 1 deadline 128 4096 32M
├─sda1 0 512 0 512 512 1 deadline 128 4096 32M
├─sda2 0 512 0 512 512 1 deadline 128 4096 32M
├─sda3 0 512 0 512 512 1 deadline 128 4096 32M
├─sda4 0 512 0 512 512 1 deadline 128 4096 32M
└─sda5 0 512 0 512 512 1 deadline 128 4096 32M
sdb 0 512 0 512 512 1 deadline 128 4096 32M
sr0 0 2048 0 2048 2048 1 deadline 128 128 0B
[root@centos7 ~]$lsblk -b
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 214748364800 0 disk
├─sda1 8:1 0 1073741824 0 part /boot
├─sda2 8:2 0 107374182400 0 part /
├─sda3 8:3 0 53687091200 0 part /data
├─sda4 8:4 0 1024 0 part
└─sda5 8:5 0 3221225472 0 part [SWAP]
sdb 8:16 0 107374182400 0 disk
sr0 11:0 1 11026825216 0 rom /run/media/steve/CentOS 7 x86_64
[root@centos7 ~]$lsblk -p /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda 8:0 0 200G 0 disk
├─/dev/sda1 8:1 0 1G 0 part /boot
├─/dev/sda2 8:2 0 100G 0 part /
├─/dev/sda3 8:3 0 50G 0 part /data
├─/dev/sda4 8:4 0 1K 0 part
└─/dev/sda5 8:5 0 3G 0 part [SWAP]
[root@centos7 ~]$lsblk -l /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 100G 0 part /
sda3 8:3 0 50G 0 part /data
sda4 8:4 0 1K 0 part
sda5 8:5 0 3G 0 part [SWAP]
[mv] 移动或者重命名文件
- 用法:
mv [OPTION]... [-T] SOURCE DESTmv [OPTION]... SOURCE... DIRECTORYmv [OPTION]... -t DIRECTORY SOURCE...
- 选项:
--backup[=CONTROL]备份已经存在的目标文件,默认备份文件名为'原文件~'-b 类似 --backup 但是不接受参数-f, --force覆盖文件时不提示-i, --interactive覆盖前提示-n, --no-clobber不要覆盖已经存在的文件注意注意注意:如果多个选项被指定,最后一个有效--strip-trailing-slashesremove any trailing slashes from each SOURCE argument-S, --suffix=SUFFIX替换默认的备份文件名后缀-t, --target-directory=DIRECTORYmove all SOURCE arguments into DIRECTORY-T, --no-target-directory视目标为普通文件-u, --update只有当源文件新于目标文件或者目标文件不存在时才移动-v, --verbose显示详细信息
[nano] linux下的简单字符界面编辑器
[runlevel] 显示系统运行级别
- 默认显示前一次和当前SysV系统运行级别
[root@centos7 /data]$runlevel
N 5
上面运行runlevel后显示N 5,中间为单个空格,N表示无法识别先前的系统运行级别,5表示目前系统运行与接5,即是带图形界面的级别。
/var/run/utmp
:runlevel 读取两个运行级别的utmp数据库所在的地方。
[tty] 打印链接到标准输入的终端文件名
-s, --silent, --quiet
不打印任何东西,只返回一个退出状态
[root@centos7 /data]$tty
/dev/pts/4
[root@centos7 /data]$tty -s
[root@centos7 /data]$echo $? # 显示tty -s 的退出状态
0 # 退出状态为0 表示成功执行
[type] 判断某名称是否需要解析为命令名
type -t name
-t选项表示type识别输入 的名称是否为别名、内置命令 、shell关键字或外部命令中的一种,若果都不是,则不打印任何信息,退出状态非0
[root@centos7 /data]$type -t ls
alias
[root@centos7 /data]$type -t ll
alias
[root@centos7 /data]$type -t cd
builtin
[root@centos7 /data]$type -t type
builtin
[root@centos7 /data]$type -t tr
file
[root@centos7 /data]$type -t /etc
[root@centos7 /data]$type -t /etc/fstab
[root@centos7 /data]$type -t if
keyword
[root@centos7 /data]$type -t esac
keyword
type标准输入 别名 内置命令 shell关键字 外部命令 type命令返回值 alias builtin keyword file
[unalias] 从定义好的命令别名列表中移除某别名
> unalias [-a] [name ...]
ualias -a
该命令会移除所有已经定义的命令别名
[whoami] 打印有效的用户ID
- 默认打印当前系统的有效用户id所关联的用户名,同等于:id -un
[root@centos7 /var/www/html]$ whoami
root
[root@centos7 /var/www/html]$ who am i
root pts/3 2019-09-21 13:53 (192.168.142.1)
[root@centos7 /var/www/html]$ who is 666
root pts/3 2019-09-21 13:53 (192.168.142.1)
相关文章:
linux初学者小命令
linux初学者小命令 一.在正式学习linux命令之前需要先认识一下linux环境中命令是如何被执行的shell是一个属于linux内核的软件,在系统启动后加载进RAM(内存)内,每个用户通过终端登录系统后,就会运行。负责不间断的接收用户的输入,…...
宝尊电商短期前景堪忧,宝尊国际能否取得成功还有待验证
来源:猛兽财经 作者:猛兽财经 核心业务面临短期逆风 在2023年第一季度财报中,宝尊电商(BZUN)表示其电商业务(简称BEC)主要包括:品牌的门店运营、客户服务以及物流和供应链管理、IT和数字营销等增值服务”。…...
百川智能发布首个530亿参数闭源大模型,今年追上GPT-3.5
4月官宣创业,6月15日发布第一款7B开源模型,7月11日发布第二款13B、130亿参数开源模型。 平均保持2个月一个版本发布速度,8月8日,百川智能发布了创业以来的首个530亿参数闭源大模型——Baichuan-53B(以下简称“53B”&a…...
Redis的常用数据结构
StringListhashsetzset 1.字符串类型是Redis最基础的数据结构 使用场景: 缓存功能 Redis 作为缓存层,MySQL作为存储层,绝大部分请求的数据都是从Redis中获取。由于Redis具有支撑高并发的特性,所以缓存通常能起到加速读写和降低后端压力的作…...
深入JVM - JIT分层编译技术与日志详解
深入JVM - JIT分层编译技术与日志详解 文章目录 深入JVM - JIT分层编译技术与日志详解1. 背景简介2. JIT 编译器2.1. 客户端版本的编译器: C12.2. 服务端版本的编译器: C22.3. Graal JIT 编译器 3. 分层编译技术(Tiered Compilation)3.1. 汇聚两种编译器的优点3.2. 精准优化(Ac…...
临时文档2
java 中 IO 流分为几种? 按照流的流向分,可以分为输入流和输出流;按照操作单元划分,可以划分为字节流和字符流;按照流的角色划分为节点流和处理流。 Java Io流共涉及40多个类,这些类看上去很杂乱,但实际…...
[深度学习入门]PyTorch深度学习[数组变形、批量处理、通用函数、广播机制]
目录 一、前言二、数组变形2.1 更改数组的形状2.1.1 reshape2.1.2 resize2.1.3 T(转置)2.1.4 ravel2.1.5 flatten2.1.6 squeeze2.1.7 transpose 2.2 合并数组2.2.1 append2.1.2 concatenate2.1.3 stack 三、批量处理四、通用函数4.1 math 与 numpy 函数的性能比较4.2 循环与向量…...
男孩向妈妈发脾气爸爸言传身教
近日,广东的一个家庭中发生了一件引人深思的事情。 一个男孩因为游戏没有通关,向妈妈发脾气,结果被爸爸发现并带到一边教育。 爸爸对孩子说:“她凭什么要承受你给的负能量,凭什么你心情不好就可以对着她发脾气…...
uniapp实现自定义导航内容高度居中(兼容APP端以及小程序端与胶囊对齐)
①效果图如下 1.小程序端与胶囊对齐 2.APP端内容区域居中 注意:上面使用的是colorui里面的自定义导航样式。 ②思路: 1.APP端和小程序端走不同的方法,因为小程序端要计算不同屏幕下右侧胶囊的高度。 2.其次最重要的要清晰App端和小程序端…...
Python调用外部电商API的详细步骤
Python是一种高级编程语言,非常适合用于集成API,即应用程序编程接口。API通常是由网站和各种软件提供的接口,可以让不同的程序之间进行数据交换和通信。在Python中调用API,可以帮助我们轻松地获取数据,并将其整合到我们…...
什么是NVME
1. 概念 NVM Express(NVMe),或称非易失性内存主机控制器接口规范(Non-Volatile Memory express),,是一个逻辑设备接口规范。他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层…...
交叉编译驱动和应用出现警告提示错误“cc1:all warnings being treated as errors”解决方法
最近新玩的rk3588的板子,编译驱动时出现了警告提示错误“cc1:all warnings being treated as errors”,导致编译失败,仔细看了一下,就是内部出现了一个警告,一个未使用的变量出现的警告,导致了驱动编译失败,但是如果这样其他驱动会不会也这样,然后就写了一个printk的de…...
基于nodejs+vue+uniapp微信小程序的短视频分享系统
开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 3.1小程序端 用户注册页面,输入用户的个人信息点击注册即可。 注册完成后会返回到登录页面,用户输入自己注…...
ElasticSearch:环境搭建步骤
1、拉取镜像 docker pull elasticsearch:7.4.0 2、创建容器 docker run -id --name elasticsearch -d --restartalways -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins -e "discovery.typesingle-node" elasti…...
剑指 Offer 37. 序列化二叉树
文章目录 题目描述简化题目思路分析 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将…...
如何快速完成MySQL数据的差异对比|NineData
在现代商业环境中,数据库是企业存储核心数据的重要工具,而 MySQL 作为最受欢迎的关系型数据库管理系统,广泛应用于各行各业。在容灾、数据迁移、备份恢复等场景下,为了确保两端或多端之间数据的一致性,通常需要对数据进…...
Vue3项目中将html元素转换为word
下载插件 html转word插件 pnpm i --save html-docx-js-typescript生成临时链接 pnpm i file-saver代码部分 html部分,为要下载的部分用id做唯一标识 <div :id"mode-${chart.id}"><pre><VueShowdown :markdown"chart.content&quo…...
Unity-Shader-高亮Highlight
常用Shader-高亮,可动态调整高亮颜色、高亮强度范围/等级、高亮闪烁速度、高亮状态 Shader "CustomShader/Highlight" {Properties{_Color("Color", Color) (0.9044118,0.6640914,0.03325041,0)_Albedo("Albedo", 2D) "white…...
Linux操作系统(二):操作系统结构与内核设计
在(一)详解CPU中介绍了操作系统所基于的硬件CPU后,本部分学习操作系统的架构。在计算机系统中,操作系统的架构通常包括以下几个主要组件: 内核(Kernel) 进程管理(Process Management…...
小研究 - 领域驱动设计DDD在IT企业内部网站开发中的运用(二)
在企业内部网站的建设过程中,网站后端最初采用传统的表模式的开发方式。这种方式极易导致站点的核心业务逻辑和业务规则分布在架构的各个层和对象中,这使得系统业务逻辑的复用性不高。为了解决这个问题,作者在后期的开发过程中引入了领域驱动…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
