本文共 9826 字,大约阅读时间需要 32 分钟。
总结这篇博客,其实我也想了很久。一直犹豫不决,写还是不写呢?最终我还是决定总结一篇基础篇,自己以前学习的时候都是看视频总结的。写下这篇总结对新入坑者肯定是有些好处的,至少可以少走一些弯路,自己也可以得到一些提升。
还没有安装虚拟机的小伙伴可以参考我之前的博文:
延伸阅读这会肯定有人纳闷了,我看了这么久的前戏,咋还没进去。这不,下面你蹭一蹭就进去了,进入正题。
首先了解这几个符号具体代表的含义,增加你对linux的理解。
[root@localhost~]#
符号 | 含义 |
---|---|
root | 代表当前登录用户,超级用户。 |
localhost | 代表默认主机名 |
~ | 代表你的当前目录[家目录],root用户登录所在初始目录在根目录 |
# | 代表root用户提示符 |
$ | 普通用户登录 |
-a
等于--all
查看列表详情命令:ls
[选项][参数]
a
:显示所有文件,包含隐藏文件l
:显示详细信息d
:查看目录属性h
:个性化显示文件大小i
:显示inodemkdir
[选项] [目录]切换所在目录命令:cd
[目录]
cd ..
:进入上一级目录TAB
键:补全
查看当前路径命令:pwd
,常用命令
删除目录命令:rmdir
[选项],删除目录,一般不用,了解就行。
删除命令:rm
[选项] [目录或文件]
复制命令:cp
[选项][原目录或文件][目标目录]
剪切或改名命令:mv
[原目录或文件][目标目录]
目录 | 作用 |
---|---|
/ | 根目录 |
/bin | 命令保存目录(普通用户就可以读取的命令) |
/boot | 启动目录,启动相关文件 |
/dev | 设备文件保存目录 |
/etc | 配置文件保存目录 |
/home | 普通用户的家目录 |
/lib | 系统库保存目录 |
/mnt | 系统挂载目录 |
/media | 挂载目录 |
*********************************** 视觉疲劳分割线 ***********************************
目录 | 作用 |
---|---|
/root | 超级用户的家目录 |
/tmp | 临时目录 |
/sbin | 命令保存目录(超级用户才能使用的目录) |
/proc | 直接写入内存 |
/usr | 系统软件资源目录 |
/usr/bin | 系统命令(普通用户) |
/usr/sbin | 系统命令(超级用户) |
/var | 系统相关文档内容 |
ln
注意:实际的应用中实用的更多的是软链接
硬链接:
ln /root/cangls /tmp/cangls.hard
特征:
软链接:
ln -s /root/cangls /tmp/cangls.soft
注意:使用软链接时,原文件一定要用绝对路径
特征:
类似windows快捷键。软链接拥有自己的I节点和block块,但是数据块中只保存源文件的文件名和I节点号,并没有实际的文件数据。lrwxrwxrwx,l:软链接,软链接权限都为lrwxrwxrwx,真实权限都看源文件。修改任意文件,另一个都改变。删除原文件,软链接无法使用。
locate
/var/lib/mlocate
updatedb
更新数据库
/etc/updatedb.conf
配置文件
whereis
[命令],搜索命令所在路径以及帮助文档所在位置
which
[文件名]
find
文件搜索命令
例如:
find / -name install.log
不区分大小写
find /root -iname install.log
按照所有者搜索
find /root -user root
查找所有者的文件
find /root -nouser
-10,10天内修改的文件;10,10天当天修改的文件;+10,10天前修改的文件。
查找10天前修改的文件
#`atimne`,文件访问时间;`ctime`,修改文件属性;`mtime`,修改文件内容。find /var/log -mtime +10
查找/etc
目录下大小为25KB的文件:find /etc -size 25k
查找i节点为262422的文件
find . -inum 262422
查找/etc/目录下大于20KB且小于50KB的文件
find /etc -size +20k -a -size -50k
查找/etc/目录下大于20KB且小于50KB的文件,并且显示详细信息
find /etc -size +20k -a -size -50k -exec ls -lh { } \;
-exec/-ok
命令 {}\;
对搜索结果执行操作grep
字符串搜素命令
根据文件大小匹配:
grep "size" anaconda-ks.cfg
find
与grep
的区别
选项 | 含义 |
---|---|
1 | 查看命令的帮助 |
2 | 查看可被内核调用的函数的帮助 |
3 | 查看函数和函数库的帮助 |
4 | 查看特殊件的帮助(主要是/dev目录下的文件) |
5 | 查看配置文件的帮助 |
6 | 查看游戏的帮助 |
7 | 查看其它杂项的帮助 |
8 | 查看系统管理员可用命令的帮助 |
9 | 查看和内核相关文件的帮助 |
man
命令,获取指定命令的帮助
例如:查看ls的帮助
man ls
查看命令拥有哪个级别的帮助
man -f
命令相当于whatis
命令例如:
man -5 passwdman -4 nullman -8 ifconfig
查看命令相关的所有帮助
man -k
命令,相当于apropos
命令--help
命令,获取命令选项帮助help shell
内部命令
info
,详细命令帮助
zip
命令
zip
压缩文件名 源文件zip -r
压缩文件名 原目录unzip
压缩文件.gz
格式压缩,gzip
源文件
.gz
格式的压缩文件,源文件会消失gzip -c
源文件 > 压缩文件
.gz
格式,源文件保留,例如:gzip -c bols > bols.gz
gzip -r
目录
.gz
格式解压缩
.bz2
格式压缩
bzip2 -k
源文件
.bz2
解压缩
bzip2 -d
压缩文件-k
属性保留压缩文件bunzip2
压缩文件
.tar.gz
压缩格式.tar.gz
格式是先打包为.tar格式,在压缩为.gz格式tar -zcvf
压缩包名.tar.gz
源文件
tar -zxvf
压缩包名.tar.gz
源文件
例如,解压缩nginx的源码包
tar -zxvf nginx-1.12.tar.gz
.tar.bz2
压缩格式
打包命令tar
tar -cvf
打包文件名 源文件 解打包命令
tar -xvf bols.tar
了解关机与重启命令之前,首先看一下系统运行级别:
选项 | 含义 |
---|---|
0 | 关机 |
1 | 单用户 |
2 | 不完全多用户,不含NFS服务 |
3 | 完全多用户 |
4 | 未分配 |
5 | 图形界面 |
6 | 重启 |
shutdown
命令,shutdown
[选项] 时间
*.**********************************************分割线***********************************************1
reboot
,init 6注意:使用服务器时,不要随意使用关机命令。一旦使用了,会造成不必要的麻烦。
reboot
,执行命令进行重启shutdown -r
,执行命令进行重启注意:使用logout
命令,养成良好的习惯退出登录
mount
[-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
内容 | 含义 |
---|---|
-t 文件系统 | 加入系统文件类型来指定挂载的类型,可以是ext3 、ext4 、iso9660 等文件系统 |
-o 特殊选项 | 可以指定挂载的额外选项 |
挂载命令,查询与自动挂载
mount
:查询系统中已经挂载的设备mount -a
:依据配置文件/etc/fstb
的内容,自动挂载mount部分参数说明
参数 | 说明 |
---|---|
atime/noatime | 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认为更新。 |
async/sync | 异步/同步,默认为异步 |
auto/noauto | 自动/手动,执行mount -a命令时,是否会自动安装/etc/fstb文件内容挂载,默认自动。 |
defaults | 定义默认值,相当于rw ,suid ,dev ,exec ,auto ,nouser ,async 这七个选项。 |
exec/noexec | 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认exec允许。 |
remount | 重新挂载已挂载的文件系统,一般用于指定修改特殊权限。 |
rw/ro | 读写/只读,文件系统挂载时,是否具有读写权限,默认rw 。 |
suid/nosuid | 具有/不具有suid权限,设定文件系统是否具有suid和sgid的权限,默认具有。 |
user/nouser | 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认不允许,只有root 可以挂载分区。 |
usrquota | 写入代表文件系统支持用户磁盘配额,默认不支持。 |
grpquota | 写入代表文件系统支持组磁盘配额,默认不支持。 |
挂载光盘
建立挂载点
mkdir /mnt/cdrom/
挂载光盘,只是习惯在mnt
下建立,media
下建立也行。
指定参数
mount -t iso9660 /dev/cdrom /mnt/cdrom/
不指定参数
mount /dev/sr0 /mnt/cdrom/
卸载命令
umount
【接设备文件名或者挂载点】例如:
umount /mnt/cdrom/
挂载U盘
fdisk -l
:查看U盘设备文件名mount -t vfat /dev/sdb1 /mnt/usb/
注意:Linux默认不支持NTFS文件系统
查看用户登录信息:w
接用户名
命令输出
符号 | 含义 |
---|---|
USER | 登录的用户名 |
TTY | 登录终端 |
FROM | 从哪个IP地址登录 |
LOGIN@ | 登录时间 |
DILE | 用户闲置时间 |
JCPU | 与该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但包括当前正在运行的后台作业占用时间 |
PCPU | 当前进程所占用时间 |
WHAT | 当前正在运行的命令 |
w | 查询登录用户,显示系统时间和运行时间,用户个数以及平均负载。 |
查看登录用户信息,who
用户名
whoami
查看当前用户 查询当前登录和过去登录的用户信息,last
last
命令默认读取/var/log/wtmp
文件数据查看所有用户最后一次登录时间,lastlog
lastlog
命令默认读取/var/log/lastlog
文件内容netstat
命令,查看网络状态 netstat -an | grep ESTABLISHED
Bourne
和C
,这两种语法彼此不兼容。Bourne家族主要包括:sh、ksh、Bash、psh、zsh;Bash
中其它特殊符号
特殊符号 | 含义 |
---|---|
’ ’ | 在单引号中所有特殊符号,如"$“和”`"(反引号)都没有特殊含义 |
" " | 双引号。在双引号中所有特殊符号除"$ "、"、"、"\ “外都无特殊含义。”$"、"、"、"“拥有"调用变量的值”、"引用命令"和"转义符"的含义 |
`` | 反引号。反引号括起来的是系统命令,在Bash中会优先执行它。和$ ()作用一样,推荐使用$ (),反引号容易误导。 |
$() | 与反引号作用相同,用来引用系统命令。 |
# | 在shell脚本中,#代表注释。 |
$ | 用于调用变量的值,如果需要调用name的值时,需要使用$name获取变量的值。 |
\ | 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。例如:$将输出"$"符号,则不会作为变量引用。 |
#编写一个简单的linux脚本,使用vim命令vim /home/hello.sh #注意你的脚本开头必须加上:#!/bin/bash#!/bin/bash echo "hello world" >> /root/hello.log#赋予读和执行权限 chmod 755 /hello.sh#使用 sh hello.sh 命令执行
查看与设定别名
alias
命令,查看系统命令中所有的命令别名alias
别名 = ‘原命令’,设定命令别名,当然这样设置只会临时生效别名永久生效与删除别名
vi ~/.bashrc
,写入环境变量配置文件unalias
别名,删除别名命令生效顺序
history
[选项][历史命令保存文件]历史命令的调用
echo
输出命令 [选项][输出内容]
控制字符作用
控制符 | 作用 |
---|---|
\a | 输出警告音 |
\b | 退格键,向左删除 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,TAB键 |
\v | 垂直制表符 |
\0nnn | 按照八进制ASCII码输出字符。其中0为数字零,nnn为三位八进制数。 |
\xhh | 按照十六进制ASCII码输出字符。hh是两位十六进制数。 |
例如:以下命令在后台执行av目录下的cangls.sh脚本,并重定向输入到runls.log文件
nohup /av/cangls.av > runls.log 2>&1 &
表达意义:2>&1,将标准错误输出[2],重定向到标准输出[&1],覆盖的形式再被重定向输入到runls.log文件
符号 | 含义 |
---|---|
0 | 标准输入 |
1 | 标准输出 |
2 | 标准错误输出 |
标准输出重定向:
符号 | 作用 |
---|---|
命令 > 文件 | 以覆盖的方式,把命令的正确输出到指定的文件或设备当中 |
命令 >> 文件 | 以追加的方式,把命令的正确输出到指定的文件或设备当中 |
错误命令 2> 文件 | 以覆盖的方式,把命令的错误输出到指定的文件或设备当中 |
错误命令 2>> 文件 | 以追加的方式,把命令的错误输出到指定的文件或设备当中 |
正确输出和错误输出同时保存:
符号 | 作用 |
---|---|
命令 > 文件 2>&1 | 以覆盖的方式,把命令的正确和错误输出保存在同一个文件中 |
命令 >> 文件 2>&1 | 以追加的方式,把命令的正确和错误输出保存在同一个文件中 |
命令 &> 文件 | 以覆盖的方式,把命令的正确和错误输出保存在同一个文件中 |
命令 &>>文件 | 以追加的方式,把命令的正确和错误输出保存在同一个文件中 |
命令 >> 文件1 2>> 文件2 | 把正确的输出到文件1中,错误的输出到文件2中 |
举例
例如:原有内容cangls,将文件内容覆盖掉变为longls
#输出内容到文件echo cangls > av.mkv#覆盖掉echo longls > av.mkv
命令 >> 文件,以追加的方式,把命令的正确输出到指定的文件或设备当中
例如:原有内容cangls,将bols追加进去。形成多P,爽歪歪。
#输出内容到指定文件echo cangls > av.mkv#追加内容echo bols >> av.mkv
有出重定向,当然也有输入重定向,了解就行。
wc
[选项][文件名] 以追加的形式把错误和正确的结果输出到文件中
命令格式
例如
#查看nginx服务ps -aux | grep nginx#查找80端口的服务netstat -tlnup | 80
多命令顺序执行
命令格式 | 作用 |
---|---|
格式1:命令2 | 多个命令顺序执行,命令之间没有任何逻辑关系。 |
&&,命令1&&命令2 | 逻辑与,当命令1正确执行,命令2才会执行;命令1无法正确执行,命令2不会执行。 |
|| ,命令1|| 命令2,逻辑或 | 当命令1非正确执行,命令2才会执行;命令1正确执行,命令2不会执行 |
linux中的通配符
*
,匹配任意内容?
,匹配任意一个字符校对系统时间
安装完系统后,使用date
命令,发现虚拟机的时间不对。是不是感怪怪的,强迫症得把它改回来。 检查是否安装服务
chkconfig --list | grep ntpdate
chkconfig
命令是针对rpm
包安装的服务的。
假如没安装,使用yum命令
yum -y install ntpdate使用此命令:
ntpdate time.windows.com
,校对时间,值得注意的是这样只会临时生效。 vim命令的简单使用
通过vim
命令编辑文件,vim
[接文件名],例如:vim test.txt
。 tips:编辑这个文件,会有提示按i
键插入,退出保存输入:wq
,不保存退出输入q!
命令。 这会有小伙伴会问了,每次开机启动都要手动执行校对时间命令岂不是很麻烦,别急嘛。
这不贴心的暖男给你们找出解决方法:#编辑文件vim /etc/rc.local#写入命令ntpdate time.windows.com
如下图所示:
添加用户与设置密码,这里再补充一个常用的命令,有时候为了学习方便,你会去新建几个普通用户进行测试。使用useradd
命令添加用户,使用passwd
命令修改密码。
useradd
[选项]
useradd user1
,新建一个user1用户,当然useradd也可以加参数,使用man useradd
命令可查看帮助文档,后面会总结到的。如下图,你进入了帮助文档,按上下键往下翻。想退出,按q键就可以直接退出帮助文档了。 passwd
[选项]
passwd user1
,修改user1的密码,同样使用上面提到的man
帮助命令可以查看帮助文档。 了解一些常用的快捷键,很实用的
tips:TAB
快捷键,命令与补全文件。在Bash
中,命令与文件补全是非常方便与常用的功能。只要在输入命令或文件时,按TAB
键就会自动补全。
相信小伙伴们看了这篇博客,对linux操作系统的基本命令肯定是有所了解了。centos、ubantu等等这些都是类Unix操作系统,命令使用都大同小异,基本上很多都是通用的,用啥系统都因人而异。不过也得适应公司所使用的,个人比较喜欢用centos而已。
好了,到此为止就是此篇文章的全部内容了,能看到这的都是帅哥靓妹啊!!! 善于总结,其乐不穷。好记性不如烂笔头,多收集自己第一次尝试的成果,收获也颇丰。你会发现,自己的知识宝库越来越丰富。
转载地址:http://jzcqi.baihongyu.com/