目录
7.通配符 *, ?, [abcd], [^abcd], [a-z]
7.3 [abcd] 通配 [ ] 个字符]中列出的任意一个
7.5 [] 通配符只匹配一个字符,如果要匹配多个字符,就要多次使用 [] 匹配:
1.Linux 操作系统
Linux操作系统属于多用户多任务操作系统 ,类 Unix 系统。创始人Linus 。
2.Linux命令提示符
2.1 shell 命令提示符:
farsight@ubuntu:~$
farsight ---- 用户名
@ ---- 分隔符
ubuntu ---- 主机名
: ---- 分隔符
~ ---- 当前工作目录
$ ---- 权限、身份符号,超级用户使用 #
2.2 修改命令提示符
只要修改 PS1 环境变量即可:
如
以上只是临时更改,只对当前 SHELL 有效,如果要开机即生效,就要修改启动文件
.profile 或 .bashrc 中对 PS1 的赋值。
3. 系统中支持的 shell
查看系统中支持的 shell: cat /etc/shells
查看当前 shell:echo $SHELL
进入指定的 shell,输入相应 shell 名即可:
farsight@ubuntu:~$ sh
退出 shell: exit
4. Linux 根目录
在这里只列出部分常用的:
bin 所有用户都可执行命令目录
boot 启动文件目录
dev 设备文件目录
etc 系统配置文件目录
home 普通用户主目录的父目录
lib 32 位库文件目录
lib64 64 位库文件目录
mnt 默认的挂载目录
opt 要挂载的文件系统等
proc 进程相关的信息
root 根用户(超级用户)主目录
sbin 超级用户执行的命令目录
sys sysfs 文件系统,比 proc 更详细
usr 普通用户目录,比如普通用户安装的命令
/usr/bin 命令目录
/usr/include 头文件目录
/usr/lib 库目录
/usr/sbin 超级用户命令
/usr/share/man 手册页主目录,子目录 man1 ~ man9 手册的各章节目录
var 配置目录
5.绝对路径和相对路径
绝对路径:从根目录 / 开始的路径。如:/usr/include
相对路径:不以 / 开始的路径。因为它是相对于当前目录或上级目录的路径。如:
usr 当前目录下的 usr 目录
./usr 当前目录下的 usr 目录
../usr 上级目录下的 usr 目录
主目录(家目录),每个用户都有他的主目录,用于存放用户私有文件。
普通用户主目录:/home/xxxx ---- xxxx 用户的主目录
超级用户主目录:/root
两个特殊的目录:
当前目录:.
上级目录:..
每个目录下都有这两个目录。根目录 / 下也有 .. 目录名,但没有上级目录。
6.重定向
6.1 < 输入重定向
默认情况下,是从键盘输入数据,但如果不想从键盘输入,而想从一个文件中得到输入
的数据,则可以使用输入重定向 <,< 的左边是命令,右边是输入文件。
farsight@ubuntu:~/test$ cat 1.txt
234
farsight@ubuntu:~/test$ read AAAA < 1.txt # < 右边的文件内容输入到左边命令中
farsight@ubuntu:~/test$ echo $AAAA
234
6.2 > 输出重定向
默认情况下,是向控制台(屏幕)输出,但是如果想将输出保存到某个文件中,则可以
使用输出重定向 >,< 的左边是命令,右边是输出文件。如果文件不存在就自动创建。
如果文件已存在就覆盖原内容。
farsight@ubuntu:~/test$ echo "Hello world"
Hello world
farsight@ubuntu:~/test$ echo "Hello world" > 2.txt # 将 echo 命令的输出保存到 2.txt 文件中
farsight@ubuntu:~/test$ cat 2.txt
Hello worldfarsight@ubuntu:~/test$ echo "Hello world"
Hello world
farsight@ubuntu:~/test$ echo "Hello world" > 2.txt # 将 echo 命令的输出保存到 2.txt 文件中
farsight@ubuntu:~/test$ cat 2.txt
Hello world
标准输出文件描述符 1
标准错误文件描述符 2
farsight@ubuntu:~/test$ find . -name "1.txt" 2>&1 # 将标准错误重定向到标准输出
# 如果要过滤掉一些错误的信息,可以使用将标准错误 2 重定向到 /dev/null
farsight@ubuntu:~/test$ find /root -name "*.h" # 没有重定向,报告错误信息
find: ‘/root’: Permission denied
farsight@ubuntu:~/test$ find /root -name "*.h" 2>/dev/null # 重定向了,错误信息保存到 /dev/null
6.3 >> 输出重定向追加
将输出到屏幕的数据输出到文件中,并且是追加到文件中
farsight@ubuntu:~/linux/test$ cat 1.txt
hello everybody
farsight@ubuntu:~/linux/test$ echo 111 >> 1.txt
farsight@ubuntu:~/linux/test$ cat 1.txt
hello everybody
111
farsight@ubuntu:~/linux/test$ echo 222 >> 1.txt
farsight@ubuntu:~/linux/test$ cat 1.txt
hello everybody
111
222
7.通配符 *, ?, [abcd], [^abcd], [a-z]
7.1 * 通配任意长度的字符。包括 0 个字符。
以 .txt 结尾可以用通配符表示为:*.txt
farsight@ubuntu:~/test$ ls
1 1.txt 2.txt 3.txt
farsight@ubuntu:~/test$ ls *.txt
1.txt 2.txt 3.txt
其它用法:abc*, 1*.txt, *abc*, *ab*cd*
7.2 ? 通配有且仅有一个字符。
farsight@ubuntu:~/test$ ls
1 11.txt 1.txt 2.txt 3.txt
farsight@ubuntu:~/test$ ls ?.txt
1.txt 2.txt 3.txt
farsight@ubuntu:~/test$ ls ??.txt
11.txt
farsight@ubuntu:~/test$ ls 1?.txt
11.txt
7.3 [abcd] 通配 [ ] 个字符]中列出的任意一个
farsight@ubuntu:~/test$ ls [12].txt # 通配 1 和 2 中任意一个字符
farsight@ubuntu:~/test$ ls [0-9].txt # 通配所有数字
1.txt 2.txt 3.txt
farsight@ubuntu:~/test$ ls [0-9a-zA-Z].txt # 通配所有数字和字母
1.txt 2.txt 3.txt
farsight@ubuntu:~/test$ ls [a-z].txt # 通配所有小写字母
ls: cannot access '[a-z].txt': No such file or directory
farsight@ubuntu:~/test$ ls [A-Z].txt # 通配所有小写字母
ls: cannot access '[A-Z].txt': No such file or directory
farsight@ubuntu:~/test$ ls [a-zA-Z].txt # 通配所有字母
ls: cannot access '[a-zA-Z].txt': No such file or directory
7.4 [^abcd] 排除集合中的字符,匹配一个字符。
farsight@ubuntu:~/test$ ls [^3456].txt
farsight@ubuntu:~/test$ ls [^3-9].txt
7.5 [] 通配符只匹配一个字符,如果要匹配多个字符,就要多次使用 [] 匹配:
farsight@ubuntu:~/test$ ls [0-9][a-z].txt
8. 命令间使用 ; 分隔,# 注释
命令行执行多条命令时,使用 ; 将它们分隔开来:
farsight@ubuntu:~/test$ echo $PS1; cat 1.txt # 先执行 echo 命令,再执行 cat 合作
shell 命令中使用 # 注释,放在命令的末尾
farsight@ubuntu:~/test$ echo "Hello world" # This is remark