一、时间
今天是2025.5.22,记录一下上周Linux学习状况。
二、Linux启动基本命令
见linux学习笔记专栏以前章节内容。
三、基本命令
1.显示本地变量:
1).echo $变量名 或 echo ${变量名}
2).shell编程举例:
wang@wang-desktop:~/wang$ num=2
wang@wang-desktop:~/wang$ echo $num
2
wang@wang-desktop:~/wang$ echo ${num}
2
wang@wang-desktop:~/wang$ echo "this is $numnd"
this is
wang@wang-desktop:~/wang$ echo "this is ${num}nd"
this is 2nd
//将name的内容多出yes
//1
wang@wang-desktop:~/wang$ name="${name}"yes
wang@wang-desktop:~/wang$ echo $name
Yes
//2
wang@wang-desktop:~/wang$ name="${name}"yes
wang@wang-desktop:~/wang$ echo $name
yesyes
//Bash
wang@wang-desktop:~/wang$ aa=11
wang@wang-desktop:~/wang$ echo $aa
11
//放到缓存区
wang@wang-desktop:~/wang$ bash
//在子进程中放入缓存中
wang@wang-desktop:~/wang$ echo $aa
//输出aa
wang@wang-desktop:~/wang$ aa=22
wang@wang-desktop:~/wang$ echo $aa
22
//退出子进程
wang@wang-desktop:~/wang$ exit
Exit
//aa=11保留在静态缓存区中
wang@wang-desktop:~/wang$ echo $aa
11
2.环境变量:
1).查看系统环境变量命令命令: env
wang@wang-desktop:~/wang$ env
ORBIT_SOCKETDIR=/tmp/orbit-wang
SSH_AGENT_PID=1724
TERM=xterm
SHELL=/bin/bash
XDG_SESSION_COOKIE=fab3ba214ed969d0c793ef544dcca0ed-1747267264.50794-1174212819
WINDOWID=56623107
GNOME_KEYRING_CONTROL=/tmp/keyring-E6qFZj
GTK_MODULES=canberra-gtk-module
USER=wang
LS_COLORS=rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01: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:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=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:*.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:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
SSH_AUTH_SOCK=/tmp/keyring-E6qFZj/ssh
DEFAULTS_PATH=/usr/share/gconf/gnome.default.path
SESSION_MANAGER=local/wang-desktop:@/tmp/.ICE-unix/1681,unix/wang-desktop:/tmp/.ICE-unix/1681
USERNAME=wang
XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg
DESKTOP_SESSION=gnome
PATH=/home/wang/opt/FriendlyARM/toolschain/4.5.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
QT_IM_MODULE=xim
PWD=/home/wang/wang
XMODIFIERS=@im=ibus
GDM_KEYBOARD_LAYOUT=cn
LANG=zh_CN.UTF-8
GNOME_KEYRING_PID=1663
MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path
GDM_LANG=zh_CN.UTF-8
GDMSESSION=gnome
SHLVL=1
HOME=/home/wang
LANGUAGE=zh_CN:zh
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
LOGNAME=wang
XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-IcZMY3khps,guid=b12bdb29b42bb2135ab6791c68252ec0
LESSOPEN=| /usr/bin/lesspipe %s
DISPLAY=:0.0
GTK_IM_MODULE=ibus
LESSCLOSE=/usr/bin/lesspipe %s %s
XAUTHORITY=/var/run/gdm/auth-for-wang-U0bJ2k/database
COLORTERM=gnome-terminal
OLDPWD=/home/wang
_=/usr/bin/env
2).常见的环境变量:
3).用法:
wang@wang-desktop:~/wang$
wang@wang-desktop:~/wang$
wang@wang-desktop:~/wang$ echo $HOME
/home/wang
wang@wang-desktop:~/wang$ echo $HOSTNAME
wang-desktop
wang@wang-desktop:~/wang$ echo $USER
wang
3.PS1变量的特殊符号:
1).用法:
还原回去
wang@wang-desktop:~/wang$
wang@wang-desktop:~/wang$ echo $HOME
/home/wang
wang@wang-desktop:~/wang$ echo $HOSTNAME
wang-desktop
wang@wang-desktop:~/wang$ echo $USER
wang
wang@wang-desktop:~/wang$
wang@wang-desktop:~/wang$
wang@wang-desktop:~/wang$ PS1=\u
upwd
/home/wang/wang
udate
2025年 05月 15日 星期四 08:23:14 CST
uPS1='[\u@\h\W]\$'
[wang@wang-desktopwang]$PS1='\u@\h\W:~\$'
wang@wang-desktopwang:~$n1=aa
wang@wang-desktopwang:~$n2=bb
wang@wang-desktopwang:~$echo $n1 $n2
aa bb
wang@wang-desktopwang:~$export n1
wang@wang-desktopwang:~$bash
wang@wang-desktop:~/wang$ echo $n2
bb
wang@wang-desktop:~/wang$ echo $n1
aa
wang@wang-desktop:~/wang$ pwd
/home/wang/wang
wang@wang-desktop:~/wang$ echo $?
0
4.特殊变量
1).用法:
//编写脚本
wang@wang-desktop:~/wang$ vi a.sh
//赋予权限
wang@wang-desktop:~/wang$ chmod u+x a.sh
wang@wang-desktop:~/wang$ ./a.sh 1 2 3 4
4
0
1 2 3
./a.sh
1 2 3 4
1993
//查看a.sh里边的内容
wang@wang-desktop:~/wang$ cat a.sh
#!/bin/bash
#filename a.sh
echo $#
echo $?
echo $1 $2 $3
echo $0
echo $*
echo $$
2).例题:
答案:
wang@wang-desktop:~/wang$ vi c.sh
wang@wang-desktop:~/wang$ chmod u+x c.sh
wang@wang-desktop:~/wang$ ./c.sh 2025
一月 2025
一 二 三 四 五 六 日
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
二月 2025
一 二 三 四 五 六 日
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28
三月 2025
一 二 三 四 五 六 日
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
5.单引号
wang@wang-desktop:~/wang$ string='$HOME'
wang@wang-desktop:~/wang$ echo $string
$HOME
wang@wang-desktop:~/wang$ echo $HOME
/home/wang
//等效的两条命令,类似于通配符的作用:
wang@wang-desktop:~/wang$ echo 'f*?'
f*?
wang@wang-desktop:~/wang$ echo f\*\?
f*?
6.双引号:
7.反引号:
1).用法:
wang@wang-desktop:~/wang$ string="Current directory is `pwd`"
wang@wang-desktop:~/wang$ pwd
/home/wang/wang
wang@wang-desktop:~/wang$ echo $string
Current directory is /home/wang/wang
wang@wang-desktop:~/wang$ date
2025年 05月 15日 星期四 09:24:21 CST
wang@wang-desktop:~/wang$ string="Today is`date`"
wang@wang-desktop:~/wang$ echo $string
Today is2025年 05月 15日 星期四 09:24:43 CST
8.test:
1).用法:
wang@wang-desktop:~/wang$ string1=abcd
wang@wang-desktop:~/wang$ echo $string1
abcd
wang@wang-desktop:~/wang$ test -z $string1
wang@wang-desktop:~/wang$ echo $?
1
wang@wang-desktop:~/wang$ test -n $string1
wang@wang-desktop:~/wang$ $?
0: command not found
wang@wang-desktop:~/wang$ echo $?
127
wang@wang-desktop:~/wang$ test -n $string1
wang@wang-desktop:~/wang$ echo $?
0
wang@wang-desktop:~/wang$ string2=abcd
wang@wang-desktop:~/wang$ string3=abcde
wang@wang-desktop:~/wang$ test $string1 = $string2
wang@wang-desktop:~/wang$ echo $?
0
wang@wang-desktop:~/wang$ test $string1 = $string3
wang@wang-desktop:~/wang$ echo $?
1
wang@wang-desktop:~/wang$ test $string1==$string2
wang@wang-desktop:~/wang$ echo $?
0
wang@wang-desktop:~/wang$ test $string1==$string3
wang@wang-desktop:~/wang$ echo $?
0
wang@wang-desktop:~/wang$ test $string != $string2
bash: test: 过多的参数
wang@wang-desktop:~/wang$ test $string1 != $string2
wang@wang-desktop:~/wang$ echo $?
1
wang@wang-desktop:~/wang$ test $string1 != $string3
wang@wang-desktop:~/wang$ echo $?
0
wang@wang-desktop:~/wang$