目录
shell
shell概述
shell分类
查看当前系统的shell
权限相关命令(也是shell命令)
基本命令
输入输出相关操作
输出命令
输入输出重定向
通配符
管道
历史查询、补齐功能
历史查询
自动补齐
命令置换
shell
什么是shell
shell是一种负责人机交互的一种抽象,是对系统的包装,是一种人机接口
unix哲学
shell概述
随着各式Linux系统的图形化程度的不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分的工作。 然而,许多Ubuntu Linux功能使用shell命令来实现,要比使用图形界面交互,完成的更快、更直接。
英文单词shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。 可以这样认为,Linux中的shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互
- Shell是一个命令行解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以用Shell来启动、挂起、停止、编程等操作。
- Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
- Shell还是一个功能强大的编程语言、编写方面、调试方便、灵活性强。
- Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
shell分类
查看当前系统的shell
查看当前系统有哪些shell cat /etc/shells
查看当前是什么shell echo $SHELL
立即关机
linux@ubuntu:~$ sudo shutdown -h now
立即重新启动
linux@ubuntu :~$ sudo shutdown -r now linux@ubuntu :~$ sudo reboot now
定时关机
linux@ubuntu:~$ sudo shutdown -h +45 “That is all, game over.”
定时重启
linux@ubuntu:~$ sudo shutdown -r +60
权限相关命令(也是shell命令)
切换用户
用户,又称使用者,是指使用电脑或网络服务的人,通常拥有一个用户账号,并以用户名识别。用户有时也泛指没有充分技术经验的人。
Linux下分为
超级用户(根目录、安装软件等)
普通目录
su - run a command with substitute user and group ID -c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者 - -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root --help 显示说明文件 --version 显示版本资讯
设置用户密码
passwd - change user password
passwd
修改自己的密码
passwd username
修改指定用户的密码
sudo passwd给权限修改密码
修改文件权限
查看权限:ls -l
-rwxrwxr-x 1 linux linux 17456 ноя 5 20:38 client //文件信息的样子
r读 w写 x执行
前三个是当前文件 中间三个同组的 后面三个是其他用户
字母法:chmod (u g o a) (+ – =) (r w x) (文件名) //u自己 g同组用户 o a全部人
数字法:chmod + 数字组合(二进制转八进制) + 文件名
基本命令
NAME:命令的名称
SYNOPSIS:命令的语法格式
DESCRIPTION:命令的一般描述以及用途
OPTIONS:描述命令所有的参数或选项
SEE ALSO:列出联机帮助页中与该命令直接相关或功能相近的其他命令
BUGS:解释命令或其输出中存在的任何已知的问题或缺陷
EXAMPLES:普通的用法示例
AUTHORS:联机帮助页以及命令的作者
时间显示
date +%T date +%Y/%m/%d date +%H:%M
date +"当前时间为:%Y/%m/%d %H:%M:%S"
date +"三个月之后:%Y/%m/%d %H:%M:%S" -d "+3 month"
date +"三天前:%Y/%m/%d %H:%M:%S"
-d "-3 day" date -s "20300111 19:43:44"
clear - clear the terminal screen ctrl + l(字母L的小写)
df - report file system disk space usage 常用参数:
-a :列出所有文件系统
-k :列出磁盘的分配情况(KB)
-h :同-k, 但大小以G、M,K单位显示
-l :仅列出本地文件系统
du - estimate file space usage 常用参数:
-a :仅列出空闲的文件数
-h :列出磁盘的使用情况(KB)
-s :列出总的空闲空间(KB)
输入输出相关操作
输出命令
echo - display a line of text
Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of backslash escapes
-E disable interpretation of backslash escapes (default)
输入输出重定向
什么是重定向
输入/输出重定向是改变shell命令或程序默认的标准输入/输出目标,重新定向到新的目标。
默认的输入输出位置是哪里
linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。
标准输入:(stdin,文件描述符为0):默认从键盘输入
标准输出:(stdout,文件描述符为1):默认输出到屏幕。
标准出错:(stderr,文件描述符为2):默认输出到屏幕。
标准i/0默认打开的三个流
为什么要使用重定向
1.当屏幕输出的信息很重要时,而且希望保存重要的信息时
2.后台执行中的程序,不希望它干扰屏幕正常的输出结果时
3.系统的例行命令,例如定时任务的执行结果,希望他可以存下来
4.一些执行命令,我们已经知道他可能出现错误信息,想把它直接丢掉时
5.执行一个命令,可能报错和正确的输出并序,类似错误日志与标准正确日志需要分别输出至不同的文件。输出重定向
重定向符 | 含义 |
> file | 将file文件重定向为输出源,新建模式 |
>> file | 将file文件重定向为输出源,追加模式 |
2> 或 &> | 将由命令产生的错误信息输入到文件中 |
2>&1 | 将标准出错重定向到标准输出 |
实例 |
ls /usr > Lsoutput.txt,将ls /usr的执行结果,写到Lsoutput.txt文件中,若有同名文件将被删除 |
ls /usr >> Lsoutput.txt,将ls /usr的执行结果,追加到Lsoutput.txt文件已有内容后 |
ls noexistingfile.txt 2> err.log,使用ls命令,查看一个不存在的文件时,将系统错误提示保存在err.log文件中 |
ls test > log 2>&1 标准输出和标准出错信息都输出到log文件 |
输入重定向
重定向符 | 含义 |
< file | 将file文件重定向为输入源 |
<< 分界符 | 表示从标准输入设备(键盘)中读入,直到遇到分界符才停止 (读入的数据不包括分界符),这里的分界符其实就是自定义的字符串 |
命令 < 文件 1 > 文件 2 | 将文件 1 作为命令的输入设备,该命令的执行结果输出到文件 2 中。 |
实例 |
wc < file1,将file1中的内容作为输入传给wc命令 |
cat << 9,当遇到输入9时,输入结束 |
cat < file > log,file作为cat命令的输出,把cat的输出结果,输出到log文件中 |
通配符
通配符是一种特殊语句,通配符是用来代替字符的
通配符 | 含义 |
星号(*) | 匹配任意长度的字符串 |
问号(?) | 匹配一个长度的字符 |
方括号([…]) | 匹配其中指定的一个字符 |
方括号([ - ]) | 匹配指定的一个字符范围 |
方括号([^…]) | 除了其中指定的字符,均可匹配 |
实例 |
用file_*.txt,匹配file_wang.txt、file_Lee.txt、file3_Liu.txt |
用flie_?.txt,匹配file_1.txt、file1_2.txt、file_3.txt |
用file_[otr].txt,匹配file_o.txt、file_r.txt和file_t.txt |
用file_[a-z].txt,匹配file_a.txt、file_b.txt,直到file_z.txt |
用file_[^otr].txt,除了file_o.txt、file_r.txt和file_t.txt的其他文件 |
管道
管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。
| //管道,通过管道输出结果输入到第二个命令中,需要有输出结果
-l 统计多少行
-w 多少个单词
-c 多少个字符
grep 查找是否有某个内容
历史查询、补齐功能
历史查询
history 查看历史输入的命令
!c :上一条以c开头的命令
自动补齐
table键
命令置换
``
a=`ls`
可以将命令复制到变量里