Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux操作系统最初由芬兰赫尔辛基大学的学生Linus Torvalds(林纳斯 托瓦兹)编制内核,随后由全世界各地的成千上万的程序员设计和实现。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的类Unix兼容产品。
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、TurboLinux、BluePoint、RedFlag、Xterm、SlackWare等。
Linux的目录结构为树状结构,最顶级的目录为根目录 / ;其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备。
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录。
/root:系统管理员主目录
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
/var:这个目录中存放着在不断扩充着的东西,可以将那些经常被修改的目录放在这个目录下。如日志文件,邮件等。
/tmp:这个目录是用来存放一些临时文件的。
/usr:用户的很多应用程序和文件都放在这个目录下
/mnt:临时挂载点,如可将U盘、光驱挂载在这个目录下
绝对路径:由根目录 / 写起,例如: /usr/share/doc 这个目录;
相对路径:不是由 / 写起,例如:../man 上一级目录下的man目录,./ 表示当前目录
索引节点inode:储存文件元信息的区域,文件的元信息如文件的创建者、文件的创建日期、文件的大小等等
软链接:相当于window快捷方式;文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径
硬链接:inode号相同的文件;当一个文件的硬链接数为0时,表明该文件被删除了
tips:按tab键进行命令补全,文件补全
查看命令的简要说明: whatis command
详细的说明文档: info command
查看命令的具体参数及使用方法:man command;通过命令关键字进行搜索命令信息: man -k keyword
shutdown -r now或reboot :立刻重启; shutdown -h now :立刻关机
cat /proc/version :查看linux版本信息;cat /proc/cpuinfo :显示CPU的信息
date :显示系统日期 ;clear :清空命令行;ifup ect0:启动网卡ect0;
ifconfig :显示或设置网卡(查ip等);ip addr:查看ip
ping -c 3 www.baidu.com :测试百度与本机的连接情况( -c 3表示测试3次)
创建目录:mkdir ;一次创建多级目录:mkdir -p (-m :配置文件的权限)
复制文件或目录:cp myinsist.txt /tmp/ ; 复制目录:cp -r
剪切目录或文件:mv /data /root ; 重命名目录或文件:mv oldname.txt newname.txt
删除文件或目录:rm myinsist.txt ;删除目录: rm -r /data (参数 -f 强制执行)
删除空的目录:rmdir [-p]
创建文件:touch myfile.txt ;touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
目录切换:cd ;显示当前路径:pwd
. 当前目录 ;.. 上一级目录;~ 用户家目录 /root 或 /home;- 上一次所在的目录;/ 根目录
查看当前目录下的所有文件和目录:ls
按时间排序,以列表的方式显示目录项: ls -lrt
给每项文件前面增加一个id编号:ls | cat -n
参数解释:
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来
-d :仅列出目录本身,而不是列出目录内的文件数据
-l :长数据串列出,包含文件的属性与权限等等数据;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件。
ln -s /opt/a.txt /opt/git/ :对文件创建软链接(快捷方式不改名还是a.txt)
ln /opt/a.txt /opt/git/ :对文件创建硬链接
find命令用来在指定目录下查找文件。
命令格式:find path -option [ -print ] [ -exec -ok command ] {} ;
在当前目录下查找名字core开头的文件或目录 :find ./ -name "core*" | xargs file
在/home目录下查找以.txt结尾的文件名 :find /home -name "*.txt" find /home -iname "*.txt"
列出当前目录及子目录下所有文件和文件夹:find .
UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间(-ctime/天,-cmin/分钟):文件元数据(例如权限等)最后一次修改时间。
在当前目录及子目录下搜索最近七天内被访问过的大于11kb的所有文件:find . -type f -atime -7 -size +11k
查看当前目录下文件个数:find ./ | wc -l
查找string的文件:locate string
locate god.txt 在系统全局范围内查找文件名包含god.txt字符串的文件
locate /etc/sh 搜索etc目录下所有以sh开头的文件
locate -i ~/m 搜索用户主目录下,所有以m开头的文件,并且忽略大小写
locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。
查看程序的binary文件所在路径 :which command
查看程序的搜索路径:whereis command
所有的类Unix系统都会内建 vi 文本编辑器;目前应用更广的是vim 编辑器,Vim是从 vi 发展出来的一个文本编辑器。
三种模式:命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
vi myfile.txt --->使用linux的vi文本编辑器打开文件,首先进入命令模式
i --->切换到输入模式,以输入字符,编辑文本。按ESC退出输入模式,切换到命令模式
: --->切换到底线命令模式,以在最底一行输入命令;q 退出程序,w 保存文件,q! 强制离开不储存文档;按ESC退出底线命令模式,切换到命令模式
由第一行开始显示文件全部内容:cat myfile.txt
cat参数:-b 列出行号,仅针对非空白行做行号显示,空白行不标行号; -n 列出行号,包括空白行
显示内容的同时显示行号:nl myfile.txt
more myfile.txt:分页查看文件的内容;用回车向下翻一行;用空格向下翻一页;:f 显示文档名以及目前显示的行数; q 退出。
less myfile.txt:分页查看文件的内容,支持前后翻页;用空格向下翻一页;[pagedown] 向下翻一页;[pageup] 向上翻一页; q 退出。
head [-n number] myfile.txt:取出文件前面几行
tail [-n number] myfile.txt:取出文件后面几行
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
d:第一个字符代表这个文件是目录、文件或链接文件等等;d 目录,- 普通文件,l 链接文档(软链接);
r-xr-xr-x:为9位权限位,每3位分为一组(ugo/user-group-other),前3位是属主权限(即文件所有者的权限),中间3位是属组权限,后3位是其他用户权限;r 可读 权限分数4,w 可写 权限分数2,x 可执行 权限分数1,- 无权限;
2:硬链接的数量;
root root:属主 属组;
4096 Dec 14 2012 bin:文件大小 文件Modify时间 文件名
更改文件属主:chown [–R] 属主名 文件名
更改文件属组:chown [-R] 属主名:属组名 文件名
-R:递归更改文件属性,就是在更改某个目录文件的属性时,该目录下的所有文件的该属性都会更改。
更改权限方式一:chmod [-R] xyz 文件或目录 (xyz 三组权限的分数,如rwxrwxrwx 777)
更改权限方式二:chmod a+w 文件或目录 / chmod g+w 文件或目录 (u-所有者,g-属组,o-其他用户,a-全部身份;+增加,-去除,=设定 )
创建普通用户:
useradd -g group1 hua
passwd [ludf] hua (-d 使账号无口令,-l 锁定口令,即禁用账号,-u解禁某用户,-f强迫用户下次登录时修改口令)
用户修改自己的密码:passwd
修改账号:usermod 选项 用户名
创建新用户组:groupadd 选项 用户组
修改用户组属性:groupmod 选项 用户组
su - 用户名:完整的切换到一个用户环境(相当于登录)(退出用户:exit)
sudo 命令 :以root的身份执行命令
df:列出文件系统的整体磁盘使用量,默认以1kb显示容量
df -h :将容量结果以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
du:是对文件和目录磁盘使用的空间的查看;与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。du查看目录大小,df查看磁盘使用情况。
free -h :查看系统内存及虚拟内存使用情况
top :动态实时显示cpu、内存、进程等使用情况(类似windows下的任务管理器)
ps ax : 显示当前系统进程的列表
ps aux : 显示当前系统进程详细列表以及进程用户
ps aux|grep redis :获取redis的进程号(PID)
kill PID :杀死进程
kill -9 PID :强制杀死进程
linux上面使用外部存储设备,需要先挂载,才能访问:
挂载u盘:mount /dev/sdb1 /mnt
卸载u盘:umount /mnt
打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
tar 可以把一大堆的文件和目录全部打包成一个文件;bzip2、gzip只能对单一文件压缩
-C <目录>:指定解压到特定目录
-f<备份文件>:指定备份文件;
-v:显示指令执行过程;
-c:建立新的备份文件;
-x:从备份文件中还原文件,解压缩包时使用;
-z:通过gzip指令处理备份文件;
-j:支持bzip2解压文件;
-t:列出备份文件的内容;
仅打包不压缩:tar -cvf /tmp/myfile.tar.gz /tmp/myfile.txt
打包后,以 gzip 压缩:tar -zcvf /tmp/myfile.tar.gz /tmp/myfile.txt
打包后,以 bzip2 压缩:tar -jcvf /tmp/myfile.tar.gz /tmp/myfile.txt
看压缩的内容不解压:tar -tf /tmp/myfile.tar.gz
解压缩包:tar -zxvf /tmp/myfile.tar.gz
zip 可以用来解压缩文件,或者对文件进行打包压缩操作
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
zip压缩:zip -r myfile.zip ./myfile/ 把myfile目录及目录下所有文件压缩到当前目录下为myfile.zip
unzip 用于解压缩由zip命令压缩的“.zip”压缩包。
-d<目录>:指定文件解压缩后所要存储的目录;
-n:解压缩时不要覆盖原有的文件;
-v:查看压缩文件,不解压;
zip解压:unzip myfile.zip
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
-o 只输出文件中匹配到的部分;
-v 反转查找,即查找非匹配的行;
-E 使用正则表达式,同egrep;
-c 统计文件或者文本中包含匹配字符串的行数;
-n 输出包含匹配字符串的行数;
-i 忽略匹配样式中的字符大小写;
-r/-R 在多级目录中对文本进行递归搜索;
在文件中搜索一个单词:grep match_pattern file_name 在多个文件中查找:grep match_pattern file_1 file_2 file_3 ...
awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。
sed 是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响。
命令格式:sed [options] 'command' file(s) ; sed [options] -f scriptfile file(s)
s 替换文本中的字符串, sed 's/book/books/' file;
后缀 /g 标记会替换每一行中的所有匹配,当需要从第N处匹配开始替换时,可以使用 /Ng,sed 's/book/books/g' file;
d 删除操作:删除空白行 sed '/^$/d' file;删除文件的第2行 sed '2d' file;删除文件最后一行 sed '$d' file;
删除文件的第2行到末尾所有行 sed '2,$d' file;删除文件中所有开头是test的行 sed '/^test/'d file
a\ 追加操作:sed '/^test/a\this is a test line' file
i\ 插入操作:sed '/^test/i\this is a test line' file
打印奇数行或偶数行:
方式一,sed -n 'p;n' test.txt #奇数行 sed -n 'n;p' test.txt #偶数行
方式二,sed -n '1~2p' test.txt #奇数行 sed -n '2~2p' test.txt #偶数行
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
-h:帮助
-y:当安装过程提示选择全部为"yes"
-q:不显示安装的过程
1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install
4.仅更新指定的软件命令:yum update
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove
7.查找软件包 命令:yum search
8.清除缓存命令:yum clean、yum clean all
rpm包手动下载安装:
wget -P /opt https://网址 :下载到/opt目录
rpm -ivh wps-office-版本.x86_64.rpm :安装rpm包
rpm -e wps-office :卸载软件
curl 一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
--silent:不显示进度信息;
-o:将下载的数据写入到文件,必须使用文件的绝对地址;
--progress:显示进度条。
curl URL --silent 这条命令是将下载文件输出到终端,所有下载的数据都被写入到stdout
优化yum源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache 将服务器上的软件包信息在本地缓存,以提高搜索安装软件的速度
安装常用软件:
yum install bash-completion net-tools vim lrzsz wget tree screen lsof tcpdump -y
CentOS系统默认安装了openssh,如果没有安装可以使用命令进行安装:yum install openssh-server -y
远程登录命令,用户名@ip:ssh [email protected]