zoukankan      html  css  js  c++  java
  • Linux简介及常用命令

    ********************************************序言***********************************************

    linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用linux。

    linux内核:redhat 、红旗linux、ubuntu、unix,aix,solaris,centOS,它们的内核都是一样的(Note:linux其实是一个统称,就比如面条是一个统称,可以有哨子面、阳春面、打卤面等)。

    linux的特点
    - (中国人最喜欢的一点)免费的/开源
    -   支持多线程/多用户(多并发)
    -   安全性好(开源的 一旦有个漏洞 就有网络界雷锋给修补了)
    -   对内存和文件管理优越
    -   Linux最小只有4m->嵌入式开发(手机用户多 多么庞大的市场)

    linux的文件系统是采用层级式的 树状目录 结构(windows是cdef盘),在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录
    深刻理解linux文件目录是非常重要的
    - /
    - root,存放root用户的相关文件
    - home,存放普通用户的相关文件(待会儿我新建用户,它就会在home目录给你创建个目录)
    - bin,存放常用命令的目录,cd /(目录切换到根目录,大家可以用个命令来看下 pwd,cd bin,ls –l ,可以看到vi ,su命令,vi删掉 那么vi命令就用不了了)如vi,su
    - sbin,要具有一定权限才可以使用命令
    - mnt,默认挂载光驱和软驱的目录
    - etc,存放配e置的相关文件(数据库,环境变量的配置)
    - var,存放经常变化的文件,如网络连接的sock文件
    - boot,存放引导系统启动的相关文件(文件被破坏了,Linux就起不来了 和windows类似)
    - usr,安装一个软件的默认目录,相当于windows下的program files

    Linux简介
    Linux是一个Unix类操作系统,完全开发源码,多用户多任务,服务器(数据库服务器、Web服务器、应用服务器、日志服务器、图片服务器等等)、嵌入式领域(如路由器等需要Linux才能启动)、移动终端(比如安卓手机等、平板),Linux主流版本有:RedHat、CentOS、Ubuntu、SUSE、FreeBSD

    linux 7大运行级别
    0 系统停止 1 单用户 2 多用户 不支持NFS 3多用户,命令行模式登陆(我们常用的运行级别) 4 未用 5 图形化界面 6 重新启动

    ***********************************华丽的分割线**********************************************

    linux操作注意事项:
    1、 Linux的命令是严格区分大小写的;
    2、 Linux支持三种格式的shell脚本,分别是 ksh、csh、sh
    3、 登陆系统后,显示:[root@localhost ~]#(表示当前是以root用户登陆) 或显示 [u101@localhost bin]$ (表示当前是以普通用户--u101登陆)
    4、 linux的默认超级用户/系统管理员是root用户
    5、 ~表示当前登录的用户所在的目录,如果是root用户登陆,就在/root目录下;如果是普通用户,就在home目录下


    ****************************************网络配置***********************************************

    ifconfig #查ip信息
    ping #测试网络是否连通
    setup #配置ip、防火墙、服务等信息
    service network restart(startstop) #重启网络服务(开启网络服务停止网路服务)
    虚拟网卡桥接连接方式(桥接/NAT模式)

    客户端工具(远程连接Linux服务器):crt、xshell、ssh、puty,通过SSH2(端口是22)协议远程连接到Linux服务器(SSH2协议是在安装Linux操作系统时自带的协议),前2个最常用,支持中文,后2个不支持中文。

    ********************************常用系统操作命令*********************************************

    1、ls / ll / ls -l #查看目录的内容
    [root@localhost ~]# ll
    总计 68
    -rw------- 1 root root 1413 06-12 18:38 anaconda-ks.cfg
    drwxr-xr-x 2 root root 4096 06-12 20:55 Desktop
    -rw-r--r-- 1 root root 35768 06-14 15:34 install.log
    -rw-r--r-- 1 root root 4713 06-12 18:37 install.log.syslog
    drwxrwxrwx 13 root root 4096 06-14 17:58 linux
    -rw-r--r-- 1 root root 4 06-13 02:11 ttt.txt

    第一段:文件类型和权限,以 - 开头的,表示文件;以d开头的,表示目录(权限部分跳过,后面有详细讲解)
    第二段:对于文件夹是代表子目录数
    第三、四段:文件的属主,文件的属组 (不理解,先跳过,后面有详细讲解)
    第五段:文件或文件夹本身大小
    第六、七段:文件的最后修改时间
    第八段:文件名称


    添加参数a,可显示隐藏文件,比如:ls -la

    2、cd 切换路径 #cd /etc/sysconfig
    3、pwd 查看当前路径 #pwd
    4、clear 清屏命令 #clear
    5、tab键 用来路径补全功能
    6、uname -r 查linux内核版本号 #uname -r
    7、netstat -an 查找linux或者windows下所有的端口 #netstat -an
    8、终止命令 crtl + c


    ***************************文件管理命令*************************************************

    1、mkdir 文件夹名 #创建文件夹,可以同时创建多个文件夹,如:mkdir d01 d02
    2、mkdir -p ./first/second #创建多层文件夹 first和second都不存在情况下建目录
    3、touch 文件名 #touch test.txt 创建文件,另外,touch命令还可以更新文件的修改时间
    4、rmdir d101 #删除空目录d101
    5、rmdir d102 d103 #同时删除两个空目录d102,d103
    7、rm -rf 文件名或文件夹名 #删除文件,非空文件夹

    8、cp 源文件路径/源文件名 目标路径 #复制文件到指定路径下 #cp T01/test.txt T02/
    9、cp -R 源文件路径/源目录名 目标路径 #拷贝文件夹到指定路径下(把文件夹以及文件夹下的所有内容一起拷贝)

    例子:在root文件夹下新建linux文件夹,然后进入linux文件夹新建t01 t02 t03三个文件夹,再在t01文件夹下新建a.txt文件
    1)、把 t01目录下的a.txt 文件复制到 t02目录
    cp ./t01/a.txt ./t02
    2)、把 t01 文件夹里面的所有内容复制到t03
    cp -R t01 t03

    10、移动/剪切文件
    10.1)mv 源文件路径/源文件名 目标路径        #将源文件剪切到目标路径下
    例:mv t01/a.txt t02/                                        #将t01文件夹里面的a.txt文件剪切到t02目录下
    10.2)mv 源文件路径/源文件名 目标路径       #文件重命
    例:mv t02/a.txt t02/aa.txt                              #将t02文件夹里面的a.txt文件重命名为aa.txts
    10.1)mv 源文件路径/源文件名 目标路径      #将源文件剪切到目标路径下
    例:mv t01/b.txt t03/cc.txt                             #将t01文件夹里面的b.txt文件剪切到t03目录下,并重命名为cc.txt

    11、查看文件命令:(install.log)
    (1)cat 文件名                 #查看文件的所有内容
    (2)cat -n 文件名            #查看文件的所有内容,并显示行数
    (3)more 文件名            #按回车一行,空格一页。不能向上下翻行。
    (4)less 文件名             #按回车一行,空格一页。可以通过上下键上下翻行。按q就退出。
    (5)head -n 文件名      #查看文件的前n行, n表示你要看的行数。
    (6)tail -n 文件名        #查看文件的后n行

    重定向:
    12、 > 导入(复制) cat A > B 把A的内容导入到B(把原来的内容覆盖)
    13、>> 追加导入 cat A >> B 把A的内容追加到B文件后面
    cat A B >> C 把A和B的内容分别导入到C文件

    14、查找文件中指定的内容,用 "管道: |" 和 grep 命令
    管道的作用:将前面一条命令的输出,当作后面命令的参数(输入)
    grep 查找指定字符
    如:查找系统中80端口的信息: netstat -an | grep 80

    练习:查找 ifcfg-eth0 中包含“OOT”字符串的信息

    查找指定字符串的另一种方式
    grep zpp /etc/passwd             #到/etc/passwd文件中查找zpp字符串 或者命令:cat /etc/passwd | grep zpp
    grep -n "root" /etc/group        #查看/etc/group文件中包含root的行并显示行号

    grep pattern1 files | grep pattern2  #查询两个字段出现在同一条日志

    15、查找文件
    语法:
    find 路径 参数 参数值
    例:
    find /root -name a.log        #在root目录下,按文件名称查找名字为a.log的文件
    find /root -name '*lo*'        #在root目录下,按文件名称查找名字包含 'lo' 字符的文件


    16、wc -l 文件名         #统计当前文件的行数 wc -l /T01/tt.txt

    **********************打包压缩管理*********************************

    打包压缩的文件后缀有这些:压缩文件(.gz)、压缩包(.tar.gz 或 .tgz)

    **** 对文件进行压缩命令:gzip ****
    语法:gzip 文件名称
    gzip只能压缩单个文件,不能压缩目录、也不能同时压缩多个文件
    例:
    gzip f101.txt #将f101压缩,形成压缩文件f101.gz

    **** 解压 ****
    语法:gzip -d 压缩包名
    例:
    gzip -d f101.gz 或 gunzip f101.gz #解压f101.gz文件

    **** 对文件进行打包并压缩 ****
    tar+参数+目标文件路径和包名+被打包的文件/文件夹名称
    tar -czvf t101.tar.gz T101                   #将T101文件夹打包并压缩到当前目录下的t101.tar.gz压缩包中
    tar -czvf /opt/t101.tar.gz T101           #将T101文件夹打包并压缩到/opt/t101.tgz压缩包中

    **** 解压缩 ***
    tar -xzvf t101.tar.gz                                        #将t101.tar.gz压缩包中的内容释放到当前目录中(注:只能解压当前文件夹下的压缩包)
    tar -xzvf t101.tar.gz -C /opt/d102/                  #将t101.tar.gz压缩包中的内容解压到/opt/d102/目录中


    将文件上传的linux服务器
    1、使用第三方工具上传,如:filezilla,SecureFx,winscp
    2、命令:rz

    把文件下载到本地:
    1、sz 文件名
    文件被下载到目录 选项--会话选项--X/Y/Zmodem--下载(O)所指定的文件夹

    #针对windows平台下的zip压缩包的解压
    unzip -d 目标路径 待解压文件
    unzip -d d101/ f101.zip      #将f101.zip解压到d101目录下

    *********************************远程操作*********************************

    1、在linux系统间远程访问(从一台服务器远程访问另一台服务器)
    语法:ssh 被访问的机器的用户名@被访问的机器的IP
    ssh root@172.11.1.67
    退出:logout

    2、scp #远程复制文件(夹)
    语法:scp -r 被访问的机器的用户名@被访问的机器的IP:/被复制的文件的路径 目标路径(本地)
    scp -r root@172.11.1.112:/root/install.log /root/

    ***************************组&用户&权限************************

    我们先来看看下面的信息:
    [root@localhost ~]# ll
    总计 68
    -rw------- 1 root root 1413 06-12 18:38 anaconda-ks.cfg
    drwxr-xr-x 2 root root 4096 06-12 20:55 Desktop
    -rw-r--r-- 1 root root 35768 06-14 15:34 install.log
    -rw-r--r-- 1 root root 4713 06-12 18:37 install.log.syslog
    drwxrwxrwx 13 root root 4096 06-14 17:58 linux
    -rw-r--r-- 1 root root 4 06-13 02:11 ttt.txt

    第一段:文件类型和权限,以 - 开头的,表示文件;以d开头的,表示目录,权限有rwx,分别是可读可写可执行
    第三、四段:文件的属主,文件的属组(属于哪个组的)

    *********** 组管理 ******
    组管理:( cat /etc/group ,查看当前系统存在多少个组)
    组:相同特性的用户的集合

    查看组的信息 cat /etc/group

    **************************************************************************
    用户管理:(/etc/passwd 存储用户基本信息、/etc/shadow存储用户密码信息)
    linux 用户分三类:超级用户(root) 、系统用户、普通用户
    添加用户: useradd 用户名
    用户设定密码: passwd 用户名

    useradd u101       #用户登录后,默认进入到其home目录,home目录在/home/目录下(root用户的home目录是/root)
    passwd u101       #passwd默认给当前用户设置密码,密码=字母+数字+下划线(_),超过8位,设置密码时,不会显示出来
    groups 用户名    #查看用户所在的组

    su - u101 #切换用户

    权限:Linux中通过控制每一类(有3类用户)用户对文件/文件夹的读、写、执行来实现权限控制
    对一个文件而言,用户分为以下三类:
    u:所属用户
    g:所属用户所在组的用户
    o:组以外的用户

    rwxr-xr-x: 前三个字符表示拥有者的权限,中间三个字符是组权限,后面三个字符其他人。
    r: read 可读
    w: write 可写
    x:execute 可执行

    r可以用数字 4 表示
    w可以用数字 2 表示
    x可以用数字 1 表示

    ********* 修改用户权限 **********
    chmod 权限 文件名
    chmod u-w,g+w,o=r Desktop      #删掉属主的写权限,增加组员的写权限,其他用户只有读的权限

    drwxrwxrwx 2 root root 4096 06-12 20:55 Desktop
    d:表示该文件为文件夹
    第一个rwx,表示该文件所属的用户对其所拥有的操作权限
    第二个rwx,表示与该文件所属用户在同组内的用户对其所拥有的操作权限
    第三个rwx,表示不与该文件所属用户在同组内的用户对其所拥有的操作权限

    #r=4;w=2;x=1,755
    chmod -R 574 Desktop/ 等同于 chmod -R u-w,g+w,o=r Desktop/ (-R表示文件夹及其所有子内容都会发生更改)

    最大是777(drwxrwxrwx),最小是000(d---------)
    chmod 777 Desktop/ 等同于 chmod a=rwx Desktop/    #a代表所有用户

    *********************************扩展命令*************************************

    cal        #查看日期
    date     #查看时间
    date -s "2013-03-23 16:36"        #修改系统时间

    df -h              #查磁盘信息
    free -m         #查看可用内存
    top               #动态查看系统资源 (默认是5秒刷新一次,相当于windows的资源管理器)

    输出变量的值:
    自定义变量:export UNAME="brtesting"
    echo $变量名NAME
    echo $PATH
    echo $SNAME

    who          #查看有哪些用户登录了系统
    ps -ef        #查看系统正在运行的所有进程
    ps -ef | grep tomcat         #查看指定的进程。查询tomcat进行信息,如果有信息返回,表示tomcat进程已启动,否则,被关闭。
    kill -9 pid                         #强制终止(pid表示进程号,可以用ps命令查看到进程号)

    比较两个文件之间差异
    diff file1 file2

    **************************用户行为******************************

    查看用户的操作系统管理员若想知道某一时刻用户的行为,只需要输入命令w 即可,在SHELL终端中输入如下命令:

    [root@localhost ~]# w

    10:07:13表示执行w的时间是在下午10点07分13秒。

    up 304 days 304表示系统运行304天。

    3 users 表示当前系统登陆用户总数为7。

    Load average 与后面的数字一起表示系统在过去1,5,10分钟内的负载程度,数值越小,系统负载越轻。

    从第二行开始构成一个登录用户信息列表,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资源。

    USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。

    TTY:用户登陆所用的终端。

    FROM:显示用户在何处登陆系统。

    LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。

    IDLE:用户空闲时间,从用户上一次任务结束后,开始记时。

    JCPU:以终端代号来区分,表示在这段时间内,所有与该终端相关的进程任务所耗费的CPU时间。

    PCPU:指WHAT域的任务执行后耗费的CPU时间。

    WHAT:表示当前执行的任务。

    查看某用户是否登陆系统用户很多的时候,可以在w后面加上某个用户名,则会查看该用户执行任务的情况。
    [root@localhost ~]# w cssuser

    ****************************Vi编辑器***********************************

    linux常用文本编辑器vi
    1、三种模式:(1)命令模式(定位,复制,粘贴,删除)
    (2)编辑模式(文本输入)
    (3)末行模式(读写退出,替换,显示行号和行结束符)
    三种的切换:
    命令模式切换到编辑模式:输入i/a。 编辑模式退到命令模式:Esc
    2、末行模式是以冒号:开头。注意:末行模式必须是在命令模式下操作。命令:
    (1):wq 保存加退出
    (2):n n行数 跳转到指定行
    (3):q! 强制退出
    (4):n1,n2s/需要替换的字符串/替换字符串/g
    参数解释:
    n1 表示从第n1行开始,表示一个具体的数字,比如:1
    n2 表示从第n2行结束,表示一个具体的数字,如果想表示最后一行,可以用$表示,比如:20
    g 表示强制替换所有参数。

    列子:
    :1,5s/oracle/linux/g      #替换第1行开始到第5行中的oracle为linux
    :3,$s/oracle/linux/g     #替换第3行开始到最后一行中的oracle为linux

    /* **** 扩展命令
    (5):w 文件名    另存为
    (6):set nu        显示行号
    (7):set nonu    不显示行号

    ****** */

    3、命令模式下的命令:
    (1)dd    删除一行,光标所在行
    (2)i     进入编辑模式,在光标前编辑
    (3)x    删除一个字符。
    (4)/     搜索字符 字符串搜索,查找下一个,按n, 向下查找。如果向上查找,按N。
    (5)yy  复制
    (6)p    粘帖

    /* **** 扩展命令
    (7)G    到末行
    (8)gg   到首行
    (9)$     到行尾
    (10)^   到行首
    (11)ngg    跳转到n行
    (12)a        进入编辑模式,在光标后编辑
    (13)ndd   删除n行,从光标所在行向下删除n行
    (14)u       撤销
    (15)o       新增一行并进入到编辑模式,向下增加。如果是大写的O,就是向上增加。
    (16)D       删除当前光标所在位置到行尾的内容
    (17)nyy   复制n行,从光标所在的位置往下复制
    ****** */

    扩展命令二:
    1、mount --- 挂载光驱
    2、umount --- 卸载挂载的文件系统
    3、rpm -ivh 安装文件名 ---- 安装软件
    4、rpm -e 需要卸载的安装包 ---- 卸载软件

  • 相关阅读:
    hihocoder #1388 : Periodic Signal NTT&FFT
    HDU 5895 Mathematician QSC(矩阵乘法+循环节降幂+除法取模小技巧+快速幂)
    hdu 5894 hannnnah_j’s Biological Test 组合数学
    csu 1812: 三角形和矩形 凸包
    地铁 Dijkstra(优先队列优化) 湖南省第12届省赛
    后缀自动机专题
    数学渣的自我修养!!!
    高斯消元(浮点)
    The PLAN
    ccpc网络赛
  • 原文地址:https://www.cnblogs.com/datacenter/p/11451419.html
Copyright © 2011-2022 走看看