操作系统 = 内核 + 外部应用
Linux简单介绍:Linux分为 Liynux内核 和 外部应用 两部分
Linux内核是为了统筹管理软硬件,外部应用是为了提高用户的体验---也就是人机交互。
发行版Linux(外部应用):针对内核进行定制化开发,加上自己的外部应用:CentOS、Ubuntu、Debian...
操作系统的功能:统筹管理软硬件资源
Linux的发展背景: https://baike.baidu.com/item/linux 来自于百度百科
X-shell下连接Linux虚拟机:ssh [ip]
shell作用:a.将用户需求解释给操作系统
b.将操作系统的结果解释给用户
shell命令就是我们所执行的命令,windows的shell就是图形用户界面
基础命令: 命令名:[选项参数] [操作对象]
目录相关:
常见的几种文件类型: d:目录文件、-:普通文件、l:符号链接文件、c:字符设备文件、b:块设备文件、p:管道文件、s:套接字文件
-
ls :浏览当前目录内容
ls filename:显示指定文件(目录)内容
<-a> 隐藏文件可见 <-l> 详细信息 <-d> 将目录象文件一样显示 <-i> 显示inode节点信息
" ." 当前目录自身 ".." 上级目录
[文件类型、权限] [连接数] [用户、用户组] [文件大小] [最后一次修改时间] [文件名]
-
pwd:显示当前所在路径(绝对路径)
-
mkdir:创建新目录
<-p>递归建立多级目录
-
rmdir:删除空目录
<-p>递归删除多级空目录
-
rm:删除普通文件
<-r>清空所有文件 <-f>忽略提示信息 <./*>删除当前目录下所有文件
-
cp:复制文件(只能拷贝普通文件)
<-r>连带目录与子目录一并拷贝 <-f>强制复制 <-i>若文件存在提示是否覆盖
-
mv:将一个文件或目录移动到指定位置
<-i>增加提示信息 <-f>忽略提示信息
/*将file1名称改为file2*/
mv filename1 ./filename2
-
cd(change dir):改变当前所在路径(进入指定目录)
<->返回上次所在目录 </>返回根目录 <~>返回家目录
<绝对路径> <相对路径>
文件相关:
-
touch:修改文件的时间戳、刷新Modify时间
<-d>用指定时间刷新最后一次访问/修改时间,最后一次状态改变时间不能用指定时间刷新
<-r>用file1修改file2的时间
-
cat:连接两个文件内容并打印到显示终端(适用于小点的文件)
<-n>增加行号
/*连接filename1和filename2的内容并且打印到显示终端上*/
cat filename1 filename2
-
tac:按行逆序打印文件内容
-
more:分页显示文件内容(浏览结束自动退出)
空格进行向后翻页,回车向下按行滚动,q退出
-
less:分页显示文件内容
分页显示 ↑/↓ j/k
f向下翻页、b向上翻页、
PgUp、PgDn上下翻页
n 前一个 N 后一个
</string> 向下匹配查找string <?string>向上匹配查找string
-
head:默认显示文件的前10行内容
<-n N> 打印前N行内容
-
tail:默认显示文件的末尾10行内容
<-n N> 打印末尾N行内容
<-f> 循环等待刷新文件末尾有新数据
【打印文件filename的第十行内容】
[ head -n 10 passwd | tail -n 1 ]
【在shell命令修改数据流向文件里】
[tail -f filename]
[echo 'nihao' >>filename]
压缩命令:
-
zip/unzip : 需要指定压缩文件的文件名newfilename,可以对目录进行压缩
/*将filename[....] 列压缩成名称为 newfilename 的新文件,原文件不消失*/
zip newfilename filename[...]
-
gzip/gunzip:会移除原有文件,生成.gz
-
bzip2/bunzip2:会移除原有文件,生成.bz2
-
tar:集成了打包和解包的功能,本身不提供压缩功能
<-c>打包 <-x>解包 <-v>显示打包/解包信息 <f>用于指定包名称
<-z>按gzip格式压缩 <-j>按bzip2格式压缩
/*举例:tar -cvf package.tar passwd test =====将passwd、test打包成package.tar */
tar -xvf package.tar.gz
可以解压gzip 和 bzip2 两种类型的压缩包,linux中并不以后缀名来区分文件格式
时间日期:
-
cal: 查看日历
<-y>查看近1年 <-n>查看近n个月 <-j>以day of year显示
-
date:显示和设置日期
<年月日、时分秒> <+'%Y-%m-%d %H:%M:%S'> <=>
<+'%F %T'>date + '%Y-%m-%d %H:%M:%S'
date +' ' 以指定格式显示时间
date + ‘%s’ 时间戳
date -s 设置系统时间:date -s ‘2018-1-1 10:24:12’
查找:
-
grep:从文件内容中匹配包含字符串的行
<-i>忽略大小写 <-v>反向匹配(不包含)
<-R>递归对指定目录下所有文件逐一进行匹配
-
find:在指定目录下搜索文件
<-name *string*>以任意string开头或者结尾
<-type>根据文件类型 <-size +/->根据文件大小
<-mtime +/-n>最后一次修改时间在n*24小时内
- mtime -atime -ctime 按天查找
- mmin -amin -cmin 按分钟查找
-
-exec 连接命令操作
【删除掉查找到的文件】
[fine ./ -name "*.c*" -exec rm -rf '{}' \;]
系统相关:
-
du:显示指定的目录或文件所占用的磁盘空间。
<-a>:显示目录中个别文件的大小 <-b>:显示目录或文件大小时,以byte为单位
<-c>:除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
<-L>:显示选项中所指定符号连接的源文件大小
-
df:显示目前在Linux系统上的文件系统的磁盘使用情况统计
<-block-size={SIZE}>:使用 {SIZE} 大小的 Blocks
<-i>:列出 inode 资讯,不列出已使用 block
-
top:通过 top 的内部命令对进程的显示方式进行控制
<-N> 以 PID 的大小的顺序排列表示进程列表
<-P> 以 CPU 占用率大小的顺序排列进程列表
<-M> 以内存占用率大小的顺序排列进程列表
-
free:显示Linux系统中空闲的、已用的物理内存、swap内存及被内核使用的buffer
<-b/k/m/g>:以Byte、KB、MB、GB为单位显示内存使用情况
<-o>:不显示缓冲区调节列 <-s>:间隔秒数 持续观察内存使用状况 <-t> 显示内存总和列
其它命令:
-
man command:手册命令,查看命令、函数、特殊文件手册
-
stat filename:查看文件详细信息-显示文件的状态、最后一次访问时间、最后一次修改时间、最后一次状态改变时间的信息
-
|:管道符,连接两个命令,将前一个命令的输出结果当做后一个命令的输入结果进行处理
-
>>:重定向符:修改数据流向
>:修改数据流向,清空原有数据、将新数据写入文件
>>:修改数据流向,将新数据追加到文件末尾
echo ‘string’ >> filename:改变数据流向,将string写入到filename文件中去
-
echo:打印一个字符串到显示终端
echo “string”:会将“”里的特殊字符转义
echo 'string':忽略''里的特殊字符,直接打印
/*举例:echo ‘string’ >> filename:将string追加到filename文件末尾*/
-
pstack:显示进程的栈跟踪, pstack必须由响应进程的用户或root用户运行
<-pid>:指定一个进程
-
su:变更为其他使用者的身份
<-m -p> 执行 su 时不改变环境变数
-
sudo(sudo -, sudo -s):允许一个已授权用户以超级用户或者其它用户的角色运行命令
<-s> 执行指定的shell <-l> 列出目前用户可执行与无法执行的指令
-
adduser:添加一个新用户
<-home>:指定创建家目录信息
<--force-badname>:默认在创建用户时会进行/etc/adduser.conf中的正则表达式检查用户名是否合法
-
password:更改使用者的密码
<-d> 删除密码 <-f> 强制执行 <-l> 停止账号使用
<-S> 显示密码信息 <-u> 启用已被停止的账户 <-g> 修改群组密码
-
wc:统计字符串
-
bc:打开计算器
-
ctrl + c: 中断当前操作
-
tab:自动补全
-
reboot:重启
-
shutdown -h now:立即关机 ============Ubuntu关机快
-
halt:立即关机