Linix基本操作

计算机硬件基本知识

CPU内部已经含有一些小的指令集,我们所使用的软件都要经过CPU内部的微指令集来达成。因此CPU可分为RISC(精简指令集)和CISC(复杂指令集)两种,前者有sun公司的SPARC,IBM的PowerPC系列及ARM系列等。后者有Intel、AMD等x86架构处理器,广泛用于个人计算机上。

CPU与其他设备集成到一块主板上协调工作,对于Intel处理器,主板设计成南北桥结构,南桥沟通CPU及周边运算速率较快的设备,北桥连接其他速率较慢的外围设备。

由于CPU和外部组件运行速率不同,所以我们称CPU内部运行速率为主频与外部组件数据传输时的统一速度为外频主频/外频=倍频,一般倍频由厂商设定好,如果玩家想提高CPU性能,可人为提高主板上外频,此即超频。

系统总线是主存与CPU数据传输的通道,分32/64位;I/O总线主要连接硬盘、USB、网卡等设备。注意区分总线宽度和CPU字组大小,通常所说的32/64位CPU指CPU字组大小,即CPU每次能处理的数据量。32位CPU最多支持4GB内存。(2^32=4G,32位最多寻址4G个地址,每个内存地址对应一个Byte数据)。

主存是动态随机存储内存(DRAM),通电时记录和使用,掉电后数据消失。适配主存的外频最好与CPU外频相同,如DDR2-800的内存条,其外频为400MHZ。 
为提升数据传输速率,可采用双通道设计,2^n个内存并行传输,若每个64位,则总线宽度扩展为64×2^n位。为了提高数据传输速率,CPU内部嵌入了基于SRAM(静态随机存储内存)的L2 cache高速缓存,其频率与CPU主频相同。主板上都有一块固定的ROM(只读存储器),内部数据永久保存,一般用于记录BIOS信息。

显示适配器(VGA:Video Graphic Array)用于计算机数据可视化显示。每个像素的显示需要占用内存,因此显示适配器上会有一个内存容量。另外,显示3D图形的相关运算早期由CPU完成,如今为减轻CPU负担,显卡也承担此部分运算任务,即所谓GPU。

前面提到:CPU具有微指令集,它实际上是一系列二进制数(机器语言),告知CPU执行特定的操作。编程语言通过编译程序转化为机器语言,实现操控计算机硬件的目的。但为了避免考虑整体硬件系统来设计程序,人类使用操作系统核心(operation system kernel)来管理计算机硬件活动及驱动系统中所有硬件。操作系统核心本质上也是一组程序。

Linux版本

注意区分Linux核心版本和distribution版本。Linux核心版本编号格式为类似:2.6.18-92.el5。2是主版本,6是次版本,偶数是稳定版,奇数是测试版。 
Linux的distribution众多,由套件管理的方式可分为RedHat系统的RPM方式及Debian系统的dpkg方式。Ubuntu使用dpkg方式。

Linux系统目录结构

ubuntu 下载的软件包一般放在/var/cache/apt/archives里,以.deb为后缀名, 
欲安装该包,执行dpkg -i ×××.deb 
dpkg -L libmysqlclient //查看libmysqlclient各个文件的安装位置
ubuntu shell绿色字体代表可执行文件,红色代表压缩文件(通常是安装包),蓝色代表目录

Linux常用命令大全

  • sudo 后续命令 //以根权限操作,主要用于修改文件,sudo是ubuntu自己的脚本语言 
  • sudo su //切换为根用户 
  • cd /home //cd用于打开home目录 
  • cp /etc/group . //拷贝etc目录下group文件到当前目录 
  • rm group //删除当前目录下group文件 
  • ls -l //列出当前目录下所有文件的详细信息(-a:列出当前目录所有文件包括以 . 开头的项目;-i:列出当前目录下所有文件的索引号inode) 
  • 如该文件信息开头为drwxr-xr-x ,d表示是目录,后面9项表示owner、group、world三类用户的使用权限,r读、w修改、x执行、-无此权限。 
  • 注:Linux共四种用户,除以上三种还有root用户。 

查询命令: 

  • find /usr/lib -name interfaces //查询该目录中所有名为interfaces的文件,此方法较慢 
  • locate interfaces //对/var/lib/locatedb检索(包含本机所有文件信息的数据库),找出所有名为interface的文件,较快 
  • whereis grep //搜索linux上二进制文件grep的位置,只能搜索可执行文件/二进制文件 
  • type grep //查看命令是否为系统命令 
  • file /bin/bash //查看bash的文件类型和格式,此处bash是elf类型的可执行文件格式,elf类型包括共享目标文件(.so),可执行文件(linux中一般不加后缀名),可重定位文件(.a,.o),核心转储文件等。
  • ln passwd passwd.2 //对已存在的passwd建立硬连接passwd.2 passwd.2与passwd共享同一个索引号 
  • ln -s passwd passwd.2 //对已存在的passwd建立软连接,passwd.2 是passwd的符号连接:passwd -> passwd.2 
  • 注:连接是指文件名与索引号的对应 
  • mv passwd.2 godown.b //移动passwd.2为同一目录下并更名为godown.b,实际上是原地搬移,实现了更名,索引号不变。 
  • man ls //查阅手册,了解ls命令的用法 
  • ls --help // 获取ls的帮助文档 
  • mount /dev/cdrom /mnt/cdrom //将cdrom的文件挂到mnt/cdrom目录下,默认mnt为接受外挂文件系统的目录 
  • mkdir test //在当前目录下创建新目录test 
  • touch a.txt //在当前目录下创建新文件a.txt 
  • cat -n /etc/passwd //查看passwd文件并以行编号输出,passwd记录用户帐号信息,账号信息中UID若为0,则为root用户,享有最高权限。 
  • chown root /home/zhengfeng/Music 
  • chgrp root /home/zhengfeng/Music //更改文件的所有者及所有组 
  • chmod +x install.sh //更改install.sh的访问权限为允许所有人执行,+x增加执行权限。 
  • echo $PATH //显示当前搜索路径,若$PATH 加单引号,则显示该字符串,若$前加转义字符\则同样显示该字符串,若$PATH加双引号则显示当前搜索路径,即保留$的特殊用义。$用来标志系统环境变量。 
  • echo $BASH_VERSION //显示当前bash版本,bash是一种shell,作为命令语言解释器。 
  • ls -l /dev/hd* &<result.txt //将dev目录下hd开头的文件信息逐个列出保存到新建文件result.txt里,若文件不存在,则输出错误信息同样保存在rsult.txt里。这是一个输出重定向的例子。Linux默认标准输入0键盘,标准输出1屏幕,标准错误2也是屏幕,若需更改则使用> >> < <<符。 
  • ls -l /dev/hd* <result.txt 2<error.txt //更一般的用法 
  • cp /dev/stdin a.txt //将键盘输入内容保存在a.txt内,键入时按CTRL+D结束。 
  • cp a.txt /dev/stdout //将a.txt内容输出到屏幕,与cat等价。 
  • ls -l /dev|more //将dev目录下文件信息分页显示 |是管道操作符,表示前后命令并列执行。 
  • history //列出本次登录后所有操作历史,并编号;!12 将第12条历史命令重新执行一次;!! 将最近的命令重复执行一次。 
  • dir() { ls -ld $*;} //建立一个shell函数dir(),功能是花括号内命令,$*用于提取参数 因此dir /home 即显示hom目录信息,注意左花括号后有一空格,如多个命令则依次写在花括号内,以分号分隔。 
  • alias lm = ‘ls -al’ //令lm为别名

Linux在命令行输入时也有命令补全功能,例如在输入一个文件名到一半时,按下tab键,系统会自动补全名字,若存在相似文件名,则需要继续输入。

  • ps //process situation 显示当前进程状态 
  • kill -9 1841 //向进程发值为9的信号,终止PID为1841的进程,信号是一种机制,进程通过信号了解系统中发生的事件。 
  • top //实时监视系统运行状况,按q退出监视返回shell。 
  • ping IP或网站名 //检查与目标主机或网站的连接是否连通,但不能作为评判标准

 

文件管理命令:

ls /:查看根目录下的内容

cd /dev/:进入到dev目录下,再用ls就可以查看该目录下的文件

以 . 开头的是隐藏文件,ls -a可以查看该目录下隐藏文件

ctrl+L 或者 clear :清屏

ctrl+C 终止程序

当cd到一个目录下时,操作该目录下的文件,前面不用加/,加/说明是绝对路径,要从根目录开始算

cat +文件名 | more

文件以

  • -开头说明是个文件
  • d开头说明是个目录
  • l开头说明是链接文件

文件权限

  • r读权限
  • w写权限
  • x执行权限

当用touch创建时,创建的是个文件。ls-l出来的是 - 开头的

当用mkdir创建时,创建的是个目录。ls -l出来的时这个目录下的文件 只有用ls -ld查看才能看到目录信息,以 d 开头


ls

  • ls -a:显示全部文件
  • ls -l:文件详细信息 ls-lh人性化显示
  • ls -ld:显示目录信息而不是像上面的一样显示文件所包含子文件的信息,目录的详细信息
  • ls -i:显示文件id号码 i节点

mkdir创建目录

  • 例子:mkdir /tmp/first

  • 注意,这里要在已有的文件目录下面创建新目录,不可以mkdir /tmp/frist/second,因为frist都不存在,怎么能在一个不存在的目录下面创建新目录呢

    但是,可以使用-p选项来递归创建 mkdir -p /tmp/frist/second,这样就可以递归创建了。

cd命令 change directory,切换目录

  • cd /tmp/first 进入first目录下面
  • cd .. 返回上级目录

pwd命令 print working directory 显示当前目录

rmdir命令 remove directory 移除空目录,注意,只能是空目录,有东西的目录还是要用rm (-r -f)来实现

cp命令 copy 赋值文件

  • cp -rp [原文件或目录]【目标目录】
  • cp -r 用于复制目录(目录表示是个文件夹,里面含有别的文件)
  • cp -p 保留文件属性(保留文件的信息,使得在ls -l详细查看文件时候,可以保留文件的更改时间)

mv命令 剪切或改名

  • 剪切 :mv /tmp/one /root 把tmp下的one 剪切到 root目录下
  • 剪切并改名:mv /tmp/one /root/one2 名字改成one2
  • 只是改个名字: mv /tmp/one /tmp/two
  • 注意,当当前目录就在tmp目录下时,可以直接mv one two ,把tmp下顶one改名为two

rm命令 remove删除

  • rm -r /tmp/games 删除目录(文件夹)
  • rm -f /tmp/games 强制删除(不会问你却不确定)
  • rm -rf /tmp/frist 强制删除目录(且不会询问你却不确定呀)

touch命令 创建文件

  • touch 文件名 ,注意在当前路径下创建不用加/,如果要在别的文件下创建,就要写绝对路径

cat命令 显示文件内容

  • 语法:cat + 文件名
  • cat -n 显示行号,把每一行都显示一个对应的行号
  • cat /etc/issue cat -n /etc/services

tac命令,cat命令的死对手,把文件倒序显示 ,先显示最后几行

more命令,以分页的形式显示大文件内容

  • 空格键或f 一页一页向下翻
  • 回车键 一行一行向下翻
  • q键(quit)退出浏览

less命令 more命令的加强版

  • more里面的操作都相同
  • 键盘上的PgUp键,可以向上翻页,上箭头,向上一行行翻
  • /符号,查找类似于word里面的ctrl+F,搜索关键词。
  • n键表示next,类似于查找中的“查找下一个”

head命令 显示文件前几行

  • head -n 20 /etc/services 显示文件前20行,若不指定-n默认显示前十行

tail命令 显示文件末尾几行,很像上面的

  • tail -n 20 /etc/services

  • tail -f 动态显示文件内容,

    就是说,我打开这个文件后,当有别的人改动这个文件的时候,我可以看到文件的变化。

    主要用于监控服务器日志(他都被人干了啥)

touch cat cat -n tac more less head tail

ln命令(link) 生成链接文件

  • 语法:ln -s [源文件] 【目标文件】 -s表示生成软链接

    软链接文件,就相当于快捷方式。 文件类型为 lrwxrwxrwx,虽然对三种用户都有rwx权限,但也只代表用户对这个软链接的权限,真正的权限还是要看所链接文件的用户权限,

    当软链接ls -l(list)时,会在文件名后面显示出这个软连接所指向的文件

    issue.soft ->/etc/issue

    • lrwxrwxrwx
    • 有箭头 ->
  • 硬链接:ln (没有-s) ,生成出来的文件和原文件一模一样(大小也一模一样),与拷贝cp不同的是,两个文件会同步更新。原文件就算丢失,硬链接文件也可以访问。软链接就不行了。判断文件是不是硬链接,用ls -i(查看文件id)i节点,会发现,原文件的id和硬链接文件的id是一样的(一个id可以有两个文件,当系统进行读写操作的时候,根据id来选择文件进行操作,两个文件的id一样,所以就同步更新了),超级厉害呀。怪不得同步更新。软链接的文件id就不与源文件相同。

    • 实时同步的备份。
    • 不可以跨分区(无效的跨分区链接)软可以
    • 不可以针对目录使用,软可以

权限管理命令:

u 表示文件的所有者
g 表示一个组里的用户
o 表示其他人
r 读权限 ---4  
w 写权限 ---2
x 执行权限 ---1

对于file文件来说
r:cat/more/head/tail/less
w:vim
x:script command(脚本,命令)
对于directory目录来说
r:ls
w:touch/mkdir/rmdir/rm   (创建文件,创建目录,移除空目录,删除文件)
x:cd 进入目录
当目录有w权限时,便可以删除掉这个目录,即使目录下面的文件没有操作权限,也可以用rm一并连目录一起删掉,删除一个文件,需要对文件所在的目录有w权限。文件具有全部权限,但是文件所在的目录没有权限,那也不能对这个文件进行操作,目录权限才是老大。

useradd添加的用户信息在/home下面

chmod命令 change the permissions mode of a file 改变文件的权限模式

只有两个人才有权限改变文件权限,一个是u所有者,一个是管理员root

  • chmod {ugoa}{+-=}{rwx}[文件或目录]

    chmod u=rwx jan 把jan 这个文件的所有者u的权限改变成为rwx

  • 使用数字来代表twx chmod [mode=xxx] 文件路径

    chmod 640 jan 表示把jan这个文件权限改变为-rw-r—-

  • chmod -R 递归修改权限,改变目录下所有文件的权限

chown命令 change file ownership 改变文件或目录的所有者

只有 root 才有chown 权限,别的用户都没有

  • useradd 用户名 添加用户
  • chown 用户A 文件名 把文件的所有者变成用户A

chgrp命令 change group改编文件或目录的所有组,操作方法和chown一样

  • groundadd添加所有组

umask命令 the user filr-creation mask

  • umask -S 以rwx的形式显示新建文件的缺省权限,缺省创建的文件时不能有x可执行权限的,任何新建的文件都会把x可执行权限去掉
  • 直接umask表示的是新建文件权限的掩码,比方说出来0022,那么实际的缺省权限是777-022(后三位)=755–>rwxrw-rw-
  • 当需要改变新建文件的缺省权限时,比方说我要所有新建的文件都是rwxr–r–权限。首先计算出这个权限的数字表示–>744,再用777-744=033 ,在umask 033就可以了,这时候新建的文件缺省权限就是rwxr–r– ,但是注意,新建的文件还是没有x执行权限,新建的文件夹目录就可以有x权限,你怎么设置,目录mkdir上就是什么

文件搜索命令:

find命令 find. 表示在当前目录下

  • 语法 find 查找范围 查找条件

  • find / -name init 在/根目录下按照-name名字搜索 名字叫 init的文件,精准搜索,不是模糊搜索。想要模糊搜索,就把名字改为*init*表示模糊搜索

  • init*,表示已init开头的文件 。 init???表示已init 开头的文件且后面还有三个字母,严格区分大小写

  • find / -iname init 不区分大小写

  • find / -size 按照文件大小查找

    • find / -size +n表示大于n -n表示小于n =n表示等于n n在linux里面表示数据块
    • 1数据块=512字节=0.5kb 所以查找大于100MB
    • find / -size +204800
  • -user,按照用户名查找

    • find /home -user 用户名A ,找到/home下所有用户名为A的文件
  • 按照文件属性查找

    • -amin assess 按照访问时间 find /etc -amin -5 表示在五分钟内(-)被访问过的文件
    • -cmin change 按照文件属性 find /etc -cmin -30 表示30分钟内文件属性被改变的文件,文件属性就是在 ls -l查看文件时看到的
    • -mmin modify 按照文件内容 find /etc -mmin -60 表示查找60分钟内被改变的文件
  • -type 按照文件类型查找

    • f 文件 d目录 l软链接 find /etc -type f查找/etc下面文件(不是目录)
  • 条件链接

    • -a all 两个条件都吻合 详单与&&
    • -o other 只要有一个条件满足就好了 相当于||
    • find /etc -name init* -a -type f 表示在etc下查找以init开头的文件,且要求文件类型为-f(file不是目录,是文件)
  • 对查找到的文件执行相应操作

    • find /etc -name init -exec ls -l {} \;

    固定格式 -exec或者-ok 后面加命令 再后面加 {} \; -ok会一直询问你要不要执行相应的操作

    find /etc -name init* -a -type f -exec ls -l {} \;

  • -inum查找文件的i节点,多用于操作一些不好写名字的文件,在ls -l 时可以看到文件的i节点

    • find /etc -inum 31531 -exec rm {} \; 删掉i节点为31531的文件
    • 查找文件的硬链接

find -name =iname * ? -size + - -user -group -amin -cmin -mmin -type f d l -imun -a -o -exec/-ok{} \;

locate命令 快速查找文件

  • 所有的文件会被放到一个文件库中,不用全盘查找,可以达到秒搜效果。但是这个文件库不是立刻更新的而是定时更新,所以当touch /tmp/asd 创建一个asd文件后,马上用 locate asd 就找不到文件,还没有更新到文件库里面,要调用updatadb命令更新一下才能查找到
  • locate命令适用于查找系统文件,但是要查找放在/tmp下面的临时文件,是找不到的,不在文件库收录范围,
  • locate -i 不区分大小写搜索

which 命令 搜索命令所在目录及命令别名

  • which rm 对rm命令执行which 操作

    alias(别名) rm="re -i"
        /bin/rm

    就出现了rm的别名”re -i” ,和他的目录/bin/rm。

    注意在linux里是不会确认操作的,当我们用rm 命令时,其实是用”rm -i” 操作,不是原生的命令,在这里面添加了确认操作。当我们直接用 /bin/rm ,命令的话,就算不加-f,他也不会询问,直接删掉了。linux命令就是这么冷酷。所以一般用的rm其实就是rm -i

whereis命令 类似于which 返回命令的帮助文档

以#开始的行,表示注释,没啥用

grep (检索目标命令行)命令:在文件中搜索字符串匹配的行并输出

  • 语言:grep -iv 指定字符串 文件

    grep Network /root/anaconda.cfg 在/root/anaconda.cfg文件下查找Network所在的行

  • -i 不区分大小写 -v排除指定字串

    grep -v ^# /etc/inittab 把以#开头的行不看。

    • ^# 以#开头的文件
find 
locate -i updatadb 
which whereis
grep -i -v

帮助命令

帮助命令中 1 表示命令的帮助

​ 5 表示文件的帮助(配置文件的帮助文档)

man命令:manual 获得帮助信息

  • man ls 进入ls这个命令的帮助页面,这个页面符合less命令规则,可以用/来查找
  • man service 查看配置文件services的帮助信息,注意,后买那就只要加配置文件的名称就可以了,不用加绝对路径,否则,就是直接把配置文件打印出来了。
  • 在linux中,有可能命令和文件是同一个名字,比方passwd,当这时候 man passwd会优先展现出来命令的帮助信息,但要是想展现出文件的帮助信息 就 man 5 passwd (5表示文件,1表示命令

whatis +命令:显示命令的简短的信息

apropos +配置文件 :显示配置文件简短信息(只要写文件名就好,不用写绝对路径)

help命令,查看shell内置命令的帮助信息

  • 很多命令是shell内置命令,比方说cd umask,这类命令无法通过man +命令名称 来查看命令帮助的,只能通过help +命令名称 来查看帮助文档
man 命令或而配置文件   命令 NAME 作用  /选项
                    配置文件 NAME 存放信息 文件格式
whatis 命令
apropos 配置文件相关信息
命令  --help
info 类似于 man
shell内置命令,就是用whereis which 找不到的命令 用help                                         +命令名

用户管理命令

useradd 添加新用户

  • useradd zhengjiang

passwd 为用户添加密码 ,使他可以访问服务器

  • passwd + 用户名 回车后就会叫你输入密码了
  • 管理员root可以更改任何人的密码,而且密码也可以不符合系统密码要求,但是用户就只能通过passwd +新密码来更改自己的密码,且必须符合密码规定。

who 查看登陆用户信息

  • who 会显示 
    • 登陆用户名
    • 登陆用户终端 (tty本地终端;pts远程终端 后面的数字表示不同的终端号)
    • 登录时间
    • 登陆ip,没写表示本机登陆
  • w 命令,更加详细的用户信息 
    • 信息第一行 分别表示
    • 系统时间
    • 服务器linux系统运行时间 (uptime命令也可以查看相同信息)
    • 服务器负载量
    • 其他显示条目
    • IDLE 表示用户空闲时间,最后一次操作到现在的时间间隔
    • pcpu 用户操作占用CPU时间 jcpu累计时间 what 用户操作(-bash表示啥都没做)

压缩文件命令

压缩格式

rm -rf * 表示删除当点目录下的全部文件不用询问

. gz格式,只能压缩文件,不能压缩目录

  • gzip +文件名 压缩文件,不保留源文件
  • gunzip +文件名 解压缩,文件名可以是直接的文件名(不加后缀)也可以加后缀,但是当文件里面重名的文件时 比方说 a.gz 和a 那么就要gunzip+加后缀的文件名,否则报错,最好还是全写

tar命令,可以用来压缩目录

  • -c 打包 -v 显示详细信息(打包了目录下的哪些文件呀) -f 指定文件名 -z 打包同时压缩 -x 解包

  • 压缩后的文件格式 .tar.gz

  • 先把目录打包成一个.tar文件,在对这个打包文件进行gzip压缩,最后出来的是.tar.gz文件,网上一些资源的格式很多都是.tar.gz格式。

  • tar -cvf jan.rar jan 把jan目录打包成jan.rar文件

    再用gzip jan,rar 把刚刚打包好的.rar文件给压缩一下

  • tar -zcf jan.rar.gz jan 直接把jan目录压缩打包为jan.rar.gz,一步完成,会保留源文件

  • tar -zxf jan.rar.gz 解压,也会保留源文件

zip命令:

  • zip +压缩后的文件名.zip +要压缩的文件
  • 会保留原文件
  • zip -r 压缩目录
  • unzip 解压缩 后面直接加要解压缩的.zip文件,不分文件还是目录都可以解压缩

bzip2压缩

  • 特点 
    • -k 可以保留源文件
    • 压缩比惊人的大,效率高。
    • 产生.bz2文件后缀
    • 只能压缩文件,不能压缩目录
    • 于tar命令配合使用压缩目录时,只要把-z 换成-j便可。
  • bzip2 -k jan 把jan文件压缩为.bz2文件格式。 
    • tar -jcf jan.rar.bz2 jan 把jan目录压缩为.rar.bz2文件
  • bunzip2 解压缩,-k保留源文件 
    • .rar.bz2文件解压 tar -xjf 文件名.rar.bz2
  • 因为bzip2不可以压缩目录,所以也要用到tar命令,先打包再压缩。在tar文件里 ta
.gz gzip gunzip (gzip -d) 不保留源文件
.rar tar -cf   tar -xf
.rar.gz tar -zcf   tar -zxf
.zip zip -r(保留) unzip
.bz2 bzip2     bunzip2  (-k 保留,压缩率大)
.rar.bz2 tar -jcf  tar -jxf 

网络命令:

write命令 给在线用户发送消息 可以用w查看在线用户

  • write + 用户名 回车后 编辑发送内容
  • CTRL + D 保存结束
  • CTRL+ 删除键 才能实现删除打错的字

wall命令: write all 给所有在线用户发送消息,自己也会收到

  • broadcast全局广播

ping 命令:

  • -c ping -c 3 ip 指定ping几次,发送几次请求包

ifconfig命令,查看和设置网卡

mail命令:查看发送电子邮件,用户不在线也可以发,不像write

系统会给root用户发送一些重要邮件,当root用户登陆时,要仔细查看系统邮件。

  • mail + 用户名 回车编辑 CTRL+D发送
  • mail 后面没参数,查看自己收到的mail, 
    • >N开头表示new 新邮件,&后面输入邮件的数字就可以查看邮件内容了
    • h 表示回到邮件列表
    • q 退出

last命令:列出目前于过去登陆系统的用户信息。包括系统reboot重启时间

lastlog命令:用户最后一次登陆的时间 -u +用户id

traceroute命令:显示数据包到我要访问主机间的路径,网络节点

传输协议:

  • TCP 三次握手,双方均在线后再传输数据
  • UCP 不握手,直接把数据丢过去 速度快

netstat命令:查询网络状态(status) 详细

  • netstat -tlun 查看本机监听的端口
  • netstat -an 查看本机所有的网络链接
  • netstat -rn 查看本机路由表,查询网关
  • netstat -tunlp | pr

setup:管理工具

nmtui:网络管理工具

service network restart:重启网络服务

mount:挂载命令

把挂载目录和设备文件名/dev/sr0,连接起来

  • 先在/mnt目录下创建挂载目录 mkdir /mnt/cdrom
  • mount -t 文件系统(iso9660) 设备文件名 (/dev/sr0) /mnt/cdtom
  • cd /mnt/cdrom 进入到光盘的文件目录下,查看文件
  • umount 卸载 ,后面加挂载目录(/mnt/cdrom)或设备文件名(/dev/sr0)都可以

关机重启命令:

shutdown命令:

shutdown [选项] 时间 
会自动断开服务,在关机和重启之前
服务器最好不要关机,只能重启
-c :取消前一个关机命令
-h :关机
-r :重启

重启:reboot init 6

关机:halt pweroff init 0

系统运行级别:

runlevel命令:查看运行级别

  • 第一个数字是前一个运行级别 第二个是当前的级别

在/etc/systemd下面了

更改

  • 0 关机
  • 1 单用户,root登陆
  • 2 不完全多用户,不含NFS服务(network file system 实现两个linux系统的文件共享)
  • 3 完全 多用户
  • 4 未分配
  • 5 图形界面 X大写的X表示图形环境
  • 6 重启

logout:退出登录

  • 维护人员,登陆后一定要logout,小心使得万年船

vim编辑器:

三种模式:

  • insert插入模式 对文件内容的改变 按下Esc退到命令模式
  • 编辑模式 对vim编辑效果的设置,比方说加上行号
  • 命令模式 前面两种模式的中转站 
    • 按下 a/i/o进入Insert模式
    • 按下 :进入编辑模式

简单流程:

  • vi + filename 进入命令模式,在命令模式下输入 a/i/o 进入插入模式
  • 在insert模式下(下面会出现Insert符号),输入信息
  • 编辑完成后 按Esc键,从insert模式下退到命令模式
  • 输入 :从命令模进入到编辑模式
  • 输入wq,保存并退出
  • cat 查看文件,发现编辑成功

rpm文件安装包命令:

别用yum 卸载

cpio提取文件命令:

  • 当我的某个命令文件比方所ls,他所在的目录/bin/ls,被我不小心删掉了,那么要么重装linux系统,全部命令覆盖重装,要么就用到了文件提取。只要知道这个ls命令在那个rpm包里面,就可以单独把这个文件提取出来。

  • 流程

    • rpm -qf /bin/ls 查询ls命令是哪个rpm包
    • 提取相应rpm包中的ls命令到当前目录的/bin/ls下
    • cp /root/bin/ls /bin/ 把ls命令复制到/bin/目录,修复文件丢失。
  • 格式:rpm2(这里的2通假字,同to)cpio +rpm包的绝对路径(/mnt/cd/Packages/包名) |(管道符) cpio -id

    +.提取的文件名(前面的 . 表示存到当前目录下 )

    • rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./user/bin/ls

命令

rpm -ql -qf 

yum在线管理: 解决包的依赖性

  • 网络配置 vi /etc/sysconfig/network-scripts/ifcfg-xxx
  • service network restart
  • ONBOOT:yes
  • ip 子网掩码 网关 DNS 缺一不可
  • /etc/yum.repos.d

yum常用命令:

  • yum list 查询所有可用软件
  • yum search +关键字 搜索相关包(包名,不是包全名)
  • yum -y install +包名

    • -y 自动回答yes
    • install 安装
    • yum -y install gcc
  • yum -y update + 包名 :更新

    • 注意要是不加包名,默认升级所有,包括linux内核,但是内核升级完先需要一定都配置。所以新手一定要记得加上包名。
  • yum -y remove + 包名 卸载 
    • 用yum卸载会把包所依赖的全都卸载掉,但是这些包会被别的包依赖。所以用yum 卸载很危险,可能会导致系统崩溃。
  • yum grouplist:组查询
  • yum groupinstall +包名 要是包名有空格,要用引号包起来。
  • yum groupremove:移除。

yum光盘yum源搭建:

  • 挂载光盘mount /dev/sr0 .mnt/cdrom

  • 让其他网络yum源失效:进入yum原配置文件 /etc/yum.repos.d/,把除了CentOS-Media.repo文件外,其他文件全都改个名字(把后缀名全都改掉,只要不是.repo后缀,系统就无法识别),让系统无法识别,无路可去自然就去关盘中找资源啦。

  • 让光盘yum源生效:

    进入光盘.repo我那件,vim打开,把baseurl(表示yum资源的地址,其他网络yum源的baseurl的值为http://官方yum源服务器地址)改为file://(三条杠)+光盘文件挂载点(/mnt/cd/),把另外两个地址给注释掉(#号注释)

  • 千万注意:一些配置文件有着严格的格式要求,当你改动后,发现报错了。就要知道可能是我的修改导致文件的格式出现错误。

源码包,安装在人为指定的路径下(没有规规矩矩的放在指定的地方),所以要启动源码包下的服务的时候,需要文件的操作命令的绝对路径,xxx/xxx/xxx.start ,才可以启动。

RPM包就很乖了,他的安装路径基本上都是固定的,系统知道这个文件会被放在哪里,所以有一个快捷服务关岭命令service scrvice +相应服务+相应命令(start等)

远程登录与NFS

Telnet是Internet提供的一项基本服务,用来将本地计算机作为远程计算机的终端机使用。 
telnet 主机名或IP地址 
exit或logout命令退出 
telnet以明文传输不安全,因此禁止root身份登录 
SSH 主机名或IP地址 //作为telnet的替代,以公开密钥算法加密数据,允许root登录

scp 本地文件路径 远程用户名@主机:文件路径 //用于本地与远程计算机之间安全拷贝文件 如: 
scp z3@202.207.30.136:a.txt

sftp 远程用户名@主机 //以安全模式进入ftp状态,此时可执行该状态下的命令: 
get 远程路径 本地路径 //下载 
put 本地路径 远程路径 //上传 
quit 退出 
? //列出该状态可使用的命令清单,其中不少同Linux Bash命令如mkdir、cd、ls等,都是针对被登录机操作,若对本地机操作,则在命令前加字母l,如lmkdir、lls等

NFS(Network File System):通过网络将远程主机的文件系统挂载到本地主机目录下,以便于使用,它基于客户机/服务器模式,建立在TCP/IP协议的表示层协议与会话层协议机制之上。

vim程序编辑器

vim是vi文本编辑器的进阶版,在所有linux系统上均可使用,被称为“编辑器之神”。 
vi分为三种模式:一般模式,编辑模式和指令列命令模式 
vi hello.c //进入hello.c文件,此时为一般模式,若hello.c不存在则自动新建 
一般模式下执行vi定义的键盘上转义字符操作,del为删除光标上字符,dd为删除一整列,退格键及上下左右键移动光标,i进入插入光标前编辑模式,a进入插入光标后编辑模式,r进入改写编辑模式; 
编辑模式下键盘上所有按键除ESC外都可输入字符,如上下左右键分别代表ABCD大写字母,按ESC退出编辑; 
在一般模式下按:进入指令列模式,最下面一行为指令列,wq保存并退出。

gcc编程

gcc中库的链接顺序是从右往左进行,所以要把最基础实现的库放在最后,这样左边的lib就可以调用右边的lib中的代码。同时,当一个函数的实现代码在多个lib都存在时,最左边的lib代码最后link,所以也将最终保存下来。

objdump -T libmysqlclient.so //打开当前目录下的动态链接库libmysqlclient.so查看其中的API。objdump命令用来查看各种目标文件(elf文件)内部的结构 
obidump -h hello.o //参数-h把hello.o各个段的基本信息打印出来,elf文件是分段的,通常分为Header、.data(数据段包括局部静态变量和全局变量)、.text(代码段)、.rodata、.bss、.comment等 
readelf -s hello.o //查看详尽段信息 
gcc错误:undefined reference to function 该函数具体实现没有找到 
info gcc //显示gcc的所有信息

mysql操作

SQL:Structured Query Language 
netstat -tap|grep mysql //检查系统有没有已安装mysql,若socket显示listen则表示就绪。 
mysql中unique key(唯一键)指除主键外确保某一列唯一性的约束,该列可包含NULL(空值);primary key为主键 
apt-get install mysql-server //安装mysql 
mysql -u root -p //以root用户登录mysql server,之后需输入密码 
show databases; show tables; //查看数据库和数据表单,注意在mysql server中输入指令以;结尾。 
use mysql; //使用数据库mysql也可以在登录时输入指令: 
mysql -D mysql -u root -p 
quit; //退出 
insert into students(id,name,sex) value(1,zhengfeng,man); //向students表中插入zhengfeng的信息 
select * from students //输出students的所有信息,*是通配符,可指定为列名称

create table students(
id int(8) not null auto_increment,
name  varchar(255) not null,
sex char(4) not null,
tel char(13) not null default “-”, 
primary key(id),
unique key unique_name(name)
);    

describe students //输出表结构信息 
mysql_config --libs //使用mysql_config工具确定MySql程序的链接参数,同理,若需确定编译参数,使用mysql_config –include

redis操作

注:redis是一个高性能的key-value数据库,由ANSI C编写,支持网络,它支持的value类型包括string、list(字符串链表)、set(字符串集合)、zset(字符串有序集合)、hash(字符串哈希类型)。 
竞态条件和原子操作的概念:原子操作指该命令在执行过程中不会被其他插入命令打断,是“一气呵成”的; 
竞态条件:指一个系统或进程的输出,依赖于不受控制事件出现的顺序或时机,若多个客户端连接到redis,同时执行多项命令时有可能出现竞态条件,关于此问题的深入讨论在《链接、装载和库》中详细提及。

apt-get install redis-server //安装redis 
netstat -nlt grep|6379 //查看系统中redis运行状态,listen为就绪 
redis-cli //进入redis命令行客户端,cli:command line interface 此为进入交互模式,可自由输入命令。 
select 1 //选择1号数据库,redis实例默认自带16个数据库,以数字编号,可通过配置文件更改。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值