Shell概述
Shell还是一个功能强大的编程语言Shell是一个命令行解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以用Shell来启动、挂起、停止、编程等操作。
Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Shell还是一个功能强大的编程语言、编写方面、调试方便、灵活性强。
Shell是解释执行的脚本语言(不需要编译),在Shell中可以直接调用Linux系统命令。
Shell分类
查看当前系统的Shell
查看当前系统有哪些Shell
cat /etc/shells
查看当前是什么shell
echo $SHELL
立即关机 : sudo shutdown -h now
立即重新启动 : sudo shutdown -r now 或者 sudo reboot now
定时关机 : sudo shutdown -h +时间(分钟)“写提示” (例:sudo shutdown -h +45 "that is all game ovr")
定时重启 : sudo shutdown -r +时间(分钟)
sudo :超级用户权
设置用户密码
passwd 修改自己的密码 (有的需要前面加sudo)
passwd username 修改指定用户的密码
用户
su -c command(命令) 用户名 例: su -c ls root 切换到root用户执行ls命令再变回原用户
su -l 用户名 切换用户 例 : su -l root 切换到soot用户 exit 退出当前用户
su -l :默认到root用户
echo $PATH :打印环境变量($取变量值,PATH环境变量)
su root 和 su -l root 区别
su -l root = su - :不仅切换到root用户,环境也切换到root环境下
su root = su : 只切换到root用户,环境信息没有变
su -help 显示说明文件
su -version 显示版本咨询
修改文件的权限
例 : -rwxrwxr-x 1 linux linux 17456 ноя 5 20:38 client
r :读权限 w :写权限 x :可执行权限
u :当前用户权限(第一个linux rwx )
g :同组用户权限(第二个Linux rwx)
o : 其他用户权限(17456 ноя 5 20:38 client r-x)
字母法 :chmod (u g o a )(+ - =)(文件名)
例 :chmod u - x 文件名 (给自己去掉执行权限)
chmod ug + w 文件名 (给自己和同组的文件加写权限)
chmod a + x 文件名 (给所有人加执行权限)
数字法: chmod + 数字组合 + 文件名 (数字八进制)
rwxrwxr-x = 111 111 101 = 775(八进制)
例: chmod 0775 文件名( 0775 ,0代表后面数为八进制)
基本命令
man - an interface to the system reference manuals帮助信息:
-
NAME:命令的名称SYNOPSIS:命令的语法格式
-
DESCRIPTION:命令的一般描述以及用途
-
OPTIONS:描述命令所有的参数或选项
-
SEE ALSO:列出联机帮助页中与该命令直接相关或功能相近的其他命令
-
BUGS:解释命令或其输出中存在的任何已知的问题或缺陷
-
EXAMPLES:普通的用法示例
-
AUTHORS:联机帮助页以及命令的作者
man的使用
man 1 :命令
man 2 :系统调用提供的函数接口
man 3 :库函数提供的函数接口
man 4 :特殊文件(在/dev文件下)
例: printf --------- man 3 printf (看函数原型)
date命令
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" 设定时间(前面需要加sudo权限)
clear清屏
Ctrl l(字母L小写) :清屏
df命令
常用参数:
-a :列出所有文件系统
-k : 列出磁盘的分配情况
-h : 同 -k,但大小以G,M,K单位显示
-l : 仅列出本地文件系统
du命令
常用参数:
-a : 仅列出空闲的文件数
-h :列出磁盘的使用情况(KB)
-s : 列出总的空闲空间(KB)
输出命令
echo -n :取消自带的换行
-e :使能转义符 例:echo -e “helloworld\n” 结果 helloworld
-E :不使能转义符 例: echo -E “helloworld” 结果 helloworld\n
例:a=5 echo “$a” 结果 5 echo ‘$a’ 结果 $a
输入输出重定向
重定向:输入输出重定向是改变shell命令或程序默认的标准输入输出目标,重新定向到新的目标。
Linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。
标准输入:(stdin,文件描述为0):默认从键盘输入
标准输出:(stdout,文件描述为1):默认输出到屏幕
标准出错:(stderr,文件描述为2):默认输出到屏幕
stdin,stdout,stderr--------标准io
>file : 将file文件重新定向为输出源,新建模式。
例:ls usr > test :将ls usr 的执行结果写到test文件中,若有同名文件将被删除
>>file : 将file文件重定向为输出源,追加模式。
例:ls usr >> test : 将ls usr 的执行结果追加到test文件已有内容后
2> 或 &> :将由命令产生的错误信息输入到文件中
例 :ls noe 2> err : 使用ls命令查看一个不存在的文件时,将系统错误提示保存到err文件中
2>&1 : 将标准出错重定向到标准输出
例 : ls test > log 2>&1 : 标准输出和标准出错信息都输出到log文件
输入重定向
<file :将file文件重定向为输入源
例:wc<file : 将file中的内容作为输入传给wc
<<分界符 :从标准输入读入,知道遇到分界符才停止
例:cat<<9 : 当遇到9时,输入结束。
命令<文件1>文件2 : 将文件1作为命令的输入设备,该命令的执行结果输出到文件2中。
例:cat<file>log : 作为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的其他文件
管道
管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。
例:cat file| grep “hello”
第一个命令一定要有结果。