微网站地图定位,工作室项目,注册一个咨询公司需要多少钱,网站栏目建设征求意见1 Shell概述
随着各式Linux系统的图形化程度的不断提高#xff0c;用户在桌面环境下#xff0c;通过点击、拖拽等操作就可以完成大部分的工作。 然而#xff0c;许多Ubuntu Linux功能使用shell命令来实现#xff0c;要比使用图形界面交互#xff0c;完成的更快、更直接。…1 Shell概述
随着各式Linux系统的图形化程度的不断提高用户在桌面环境下通过点击、拖拽等操作就可以完成大部分的工作。 然而许多Ubuntu Linux功能使用shell命令来实现要比使用图形界面交互完成的更快、更直接。
英文单词shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。 可以这样认为Linux中的shell就是Linux内核的一个外层保护工具并负责完成用户与内核之间的交互
Shell是一个命令行解释器它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以用Shell来启动、挂起、停止、编程等操作。
Shell 是指一种应用程序这个应用程序提供了一个界面用户通过这个界面访问操作系统内核的服务。 Shell还是一个功能强大的编程语言、编写方面、调试方便、灵活性强。
Shell是解释执行的脚本语言在Shell中可以直接调用Linux系统命令。
补充像C语言是需要编译器编译通过后才能执行而Shell脚本可以一条条执行直到报错。
1.1 Shell分类 1.2 查看当前系统的Shell
#查看当前系统有哪些shellcat /etc/shells #查看当前是什么shellecho $SHELL 可以看到此ubuntu使用得是bash
#立即关机
linuxubuntu:~$ sudo shutdown -h now
#立即重启
linuxubuntu :~$ sudo shutdown -r now
linuxubuntu :~$ sudo reboot now
#定时关机
linuxubuntu:~$ sudo shutdown -h 45 “That is all, game over.”
#定时重启
linuxubuntu:~$ sudo shutdow -r 602 权限相关命令
2.1 切换用户
用户又称使用者是指使用电脑或网络服务的人通常拥有一个用户账号并以用户名识别。用户有时也泛指没有充分技术经验的人。
Linux下分为 超级用户(根目录、安装软件等) 普通用户
su 使用命令替换用户和组ID
命令参数
-c 变更为帐号为 USER 的使用者并执行指令command后再变回原来使用者
-l 重新 login 为该使用者一样大部份环境变数HOME SHELL USER等等都是以该使用者USER为主并且工作目录也会改变如果没有指定 USER 内定是 root不加-l不会切换环境变量
--help 显示说明文件
--version 显示版本资讯
切换root用户
linuxlinux:~$ su -l root
Password:
su: Authentication failure解决方法:可能没有创建root密码
2.2 设置用户密码
passwd 修改自己的密码
passwd [username] 修改指定用户的密码
linuxlinux:~$ sudo passwd root
[sudo] password for linux:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfullyexit退出用户
linuxlinux:~$ su -l root
Password:
rootlinux:~# exit
logout
linuxlinux:~$ 环境变量 包括shell类型 也会跟着用户切换
linuxlinux:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
linuxlinux:~$ su -l root
Password:
rootlinux:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
rootlinux:~# su root
rootlinux:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
rootlinux:~# su什么都不加默认是root用户下 2.3 修改文件权限
查看文件权限ls -l r代表读 w代表写 x代表可执行一共有三组最后一组没有可执行权限
第一组代表当前用户u
第二组代表同组几个用户
第三组代表其他用户
修改权限方法
字母法chmod (u g o a) ( – ) (r w x) (文件名)
数字法chmod 数字组合 文件名
rootlinux:~# touch file
rootlinux:~# ls
file
rootlinux:~# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 2 02:14 file
rootlinux:~# chmod ux file
rootlinux:~# ls -l
total 0
-rwxr--r-- 1 root root 0 Sep 2 02:14 file
rootlinux:~# chmod ax file
rootlinux:~# ls -l
total 0
-rwxr-xr-x 1 root root 0 Sep 2 02:14 file
rootlinux:~# chmod grw file
rootlinux:~# ls -l
total 0
-rwxrw-r-x 1 root root 0 Sep 2 02:14 file
rootlinux:~#
rootlinux:~# chmod 777 file
rootlinux:~# ls -l
total 0
-rwxrwxrwx 1 root root 0 Sep 2 02:14 file
3 基本命令
3.1 常用
pwd //查看当前路径
ls //查看目录
cd //进入文件夹
mkdir //创建目录
rmdir //删除空目录
cp //复制拷贝
mv //移到重命名
touch //创建文件
3.2 man命令
man帮助信息
NAME命令的名称
SYNOPSIS命令的语法格式
DESCRIPTION命令的一般描述以及用途
OPTIONS描述命令所有的参数或选项
SEE ALSO列出联机帮助页中与该命令直接相关或功能相近的其他命令
BUGS解释命令或其输出中存在的任何已知的问题或缺陷
EXAMPLES普通的用法示例
AUTHORS联机帮助页以及命令的作者
man使用
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions, e.g. /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
示例
man 3 printfman ls 3.3 date命令
查看文档
man datedate - print or set the system date and timedate %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:443.4 clear命令
clear - clear the terminal screen
ctrl l字母L的小写3.5 df命令
df - report file system disk space usage常用参数-a 列出所有文件系统-k 列出磁盘的分配情况KB-h 同-k 但大小以G、MK单位显示-l 仅列出本地文件系统3.6 du命令
du - estimate file space usage常用参数-a 仅列出空闲的文件数 -h 列出磁盘的使用情况KB -s 列出总的空闲空间KB4 输入输出相关操作
4.1 输出命令
echo - display a line of textEcho 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) 不使能转译示例
linuxlinux:~$ echo hello world
hello world
linuxlinux:~$ echo -n hello world
hello worldlinuxlinux:~$ echo hello world\n
hello world\n
linuxlinux:~$ echo -e hello world\n
hello worldlinuxlinux:~$ echo -E hello world\n
hello world\n
linuxlinux:~$ a5
linuxlinux:~$ echo $a
5
linuxlinux:~$ echo $a
5
linuxlinux:~$ echo $a //单引号原样输出
$a
linuxlinux:~$ 4.2 输入输出重定向
什么是重定向
输入/输出重定向是改变shell命令或程序默认的标准输入/输出目标重新定向到新的目标。
默认的输入输出位置是哪里
linux中默认的标准输入定义为键盘标准输出定义为终端窗口。
标准输入stdin文件描述符为0默认从键盘输入
标准输出stdout文件描述符为1默认输出到屏幕。
标准出错stderr文件描述符为2默认输出到屏幕。
为什么要使用重定向
1.当屏幕输出的信息很重要时而且希望保存重要的信息时
2.后台执行中的程序不希望它干扰屏幕正常的输出结果时
3.系统的例行命令例如定时任务的执行结果希望他可以存下来
4.一些执行命令我们已经知道他可能出现错误信息想把它直接丢掉时
5.执行一个命令可能报错和正确的输出并序类似错误日志与标准正确日志需要分别输出至不同的文件。
输出重定向 示例
因为标准出错默认输出到屏幕所以直接使用无法写入log这时候需要使用出错重定向将2 log。如果想标准输出和标准出错都输出到log中那么先将标准输出重定向到log再将标准出错重定向到标准输出。 输入重定向 示例
功能不加也能有对应功能使用频率少 功能遇到分界停止 查看并输出到另一个文件 4.3 通配符、管道
通配符是一种特殊语句通配符是用来代替字符的 linuxubuntu:~/mywork$ ls file_*.txt
file_liu.txt file_wang.txt file_lee.txt file_song.txtlinuxubuntu:~/mywork$ ls file_?.txt
file_1.txt file_2.txt file_3.txt file_4.txt file_5.txtlinuxubuntu:~/mywork$ ls file_[1-5].txt
file_1.txt file_2.txt file_3.txt file_4.txt file_5.txtlinuxxubuntu:~/mywork$ ls file_[^245].txt
file_1.txt file_3.txt管道
管道可以把一系列命令连接起来意味着第一个命令的输出将作为第二个命令的输入通过管道传递给第二个命令第二个命令的输出又将作为第三个命令的输入以此类推。就像通过使用“|”符连成了一个管道。 示例
wc是统计,-l多少行-w多少单词-c多少字符
管道细节要求前面得命令必须要有结果没有结果无法使用 管道结合查找 4.4 历史查询、补齐功能
历史补齐 history 或者!
history示例 编译常用!g因为gcc编译经常命令很长
tab 补齐
4.5 命令置换
用法把终端输出得结果置换保存到变量