linux常用命令整理

Linux简介

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

安装Linux系统(选择性掌握)

1)、安装虚拟机软件(VMware,注意不要随意卸载该软件,在Win7系统下建议安装8.0或9.0)
2)、用虚拟机模拟电脑(四类操作系统:windows、Linux、Mac、Dos)
3)、安装Linux系统(掌握)
    Linux分区实际上是划分目录结构(Linux只识别文件和目录),必须有"根目录(/)"和"交换目录(swap)"
交换目录(swap):提供虚拟内存,当电脑内存不足,交换目录所占用的磁盘空间会当做虚拟内存来使用
    磁盘8G(/dev/sda表示一个SCSI接口的硬盘,/dev/hda表示一个IDE接口的硬盘):
    swap: 1G
    /: 剩余的全部空间
    注:安装Linux操作系统,至少要有8G的磁盘空间(也就说给虚拟电脑至少要分配8G的磁盘空间)

Linux超级管理员账号是:root

    Ctrl+C终止一条命令
    CTRL+Z停止进程并放入后台
    jobs 显示当前暂停的进程
    bg %N 使第N个任务在后台运行(%前有空格)
    fg %N 使第N个任务在前台运行
    默认bg,fg不带%N时表示对最后一个进程操作!

基本命令

4条最简单的命令:
ls / ll / ls -l  #查看目录的内容
pwd #查看当前目录的绝对路径
cd #跳到指定位置
clear #清屏

示例:    
[root@localhost bin]#pwd  
/usr/bin  
[root@localhost bin]#cd ../sbin  
[root@localhost sbin]#pwd  
/usr/sbin  
[root@localhost sbin]#cd ../../opt  
[root@localhost opt]#pwd  
/opt  
[root@localhost opt]#ls d05/  
[root@localhost opt]#ls ./d05/  

Linux系统是严格区分大小写

bash、csh、ssh

echo $SHELL   输出SHELL变量的值

shell命令行

#(表示超级用户) 
$(表示普通用户)
root表示当前操作的用户
localhost表示主机名

~表示当前处在哪个目录中,~表示当前登录的用户的home目录(普通用户登录后默认进入到home目录)

路径: 表示文件或文件夹所在的位置
   绝对路径:以 / 开头
   相对路径:.表示当前目录;..表示当前目录的上一层

mkdir --help  #查看命令的帮助信息
man mkdir     #查看命令的详细帮助

一、常用管理命令:

1、reboot  #重启  
2、shutdown -h 0 或者 init 0 /(halt)#关机  
 PS:没有注销的命令哦^_^

3、cd     切换路径     change directory     
        cd -   回到上次所在目录
4、pwd    查看当前路径  
5、whoami   查看当前用户  
6、uname -r    查linux内核版本号  
7、clear       清屏命令   
8、tab键  用来路径补全功能  
9、netstat -an  查找linux或者windows下所有的端口  

二、文件管理命令:

1、ll (ls -l)   查看当前目录下有哪些文件或文件夹     
ps: ls -l 的别名就是ll,以 - 开头的,表示文件;以d开头的,表示目录。

2、mkdir 文件夹名   创建文件夹,可以同时创建多个文件夹,如:mkdir d01 d02  
3、mkdir -p ./first/second    创建多层文件夹    first和second都不存在情况下建目录

4、touch 文件名    #touch test.txt    创建文件

5、rmdir d101 #删除空目录d101  
6、rmdir d102 d103 #同时删除两个空目录d102,d103  
7、rmdir -p d104/d105/ #删除d105目录后,若d104是空的,则连d104一起删除  
8、rm -rf 文件名或文件夹名                删除文件

9、cp 源文件路径/源文件名 目标路径         拷贝文件 #cp T01/test.txt T02/  
10、cp -R 源目录名 目标路径      拷贝文件夹(把文件夹的所有内容一起拷贝)#cp -R T01 T02  
        -d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;  
        -p :连同档案的属性一起复制过去,而非使用预设属性;
        -r :递归持续复制,用于目录的复制行为;  
        -a :相当于 -pdr 的意思


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

12、>      导入(复制)      cat A > B    把A的内容导入到B(把原来的内容覆盖)  
13、>>    追加导入   cat A B >>C   把A和B的内容导入C


14、mv 源文件名 目标文件名     文件改名或剪切文件(文件和文件夹一样操作)
    #mv move.txt ./test01/mv.txt

15、对文件内容筛选查找,用管道加上:grep 搜索字符串

如:查找系统中有没有启用80端口: netstat -an | grep 80

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


16、find 路径 参数 参数值
ps: 参数:-name 后面跟文件名

17、locate 文件名   根据索引表查找文件,效率高,但是需要经常更新索引表,使用updatedb更新索引表


18、wc -l 文件名    统计当前文件的行数      wc -l ./T01/tt.txt
       -m 文件名    统计当前文件的字符数    wc -m ./T01/tt.txt
       -c d01/f102  统计当前文件的的字节数  wc -c ./T01/tt.txt

三、压缩管理

压缩管理:包(.tar)、压缩文件(.gz)、压缩包(.tar.gz 或 .tgz)
 #tar命令打包的格式:
 tar 参数 目标文件路径/包名 被打包的文件名称
 tar -cvf t101.tar f101 #将目录f101和文件打到当前目录下的t101.tar包中
 tar -cvf /opt/t101.tar ./d101  #将当前目录d01打到/opt/t101.tar包中

 tar -tvf t101.tar  #查看t101.tar包中的内容

 tar -xvf t101.tar #将t101.tar包中的内容释放到当前目录中
 tar -xvf t101.tar -C /opt/d102/ #将t101.tar包中的内容释放到/opt/d102/目录中

 压缩:
 gzip只能压缩单个文件,不能压缩目录、也不能同时压缩多个文件
 压缩比:1表示压缩比最小;9表示压缩比最大
     2G --> 1G(压缩比小,压缩速度快)
     2G --> 500M(压缩比大,压缩速度慢)

 gzip -1 f101 #将f101压缩,形成压缩文件f101.gz
 gzip -9 f101 #将f101压缩,形成压缩文件f101.gz

 查看压缩包:
 gzip -l f101.gz #查看压缩文件f101.gz的压缩信息,小写字母l

 解压:
 gzip -d f101.gz 或 gunzip f101.gz #解压f101.gz文件    

 对包进行压缩:
 tar -cvf t101.tar f101  #首先打包操作
 gzip -9 t101.tar #然后将包压缩,最终形成压缩包t101.tar.gz
 tar命令只有打包功能,没有压缩功能,它是借助gzip进行压缩

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

 tar -tzvf ./t101.tar.gz #查看t101.tar.gz压缩包中的内容

 tar -xzvf t101.tar.gz #将t101.tar.gz压缩包中的内容释放到当前目录中
 tar -xzvf t101.tar.gz -C /opt/d102/ #将t101.tar.gz压缩包中的内容解压到/opt/d102/目录中

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

四:网络配置

ifconfig -a #查ip信息
    ping  #测试网络是否连通
    setup  #配置ip、防火墙、服务等信息
    service network restart(start\stop)  #重启服务
centos7 
    systemctl restart(start\stop) network
    虚拟网卡桥接连接方式
    hostname #输出主机名

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

    从一台服务器远程访问另一台服务器
    ssh 被访问的机器的用户名@被访问的机器的IP
    ssh [email protected]
    退出:logout

    scp #远程复制文件(夹)
    scp -r [email protected]:/root/install.log /root/

五:组&用户&权限

组管理:( cat /etc/group ,查看当前系统存在多少个组)
groupadd g1015 #组必需要有组id,如果没有指定组id,则系统自动分配唯一的组id
groupadd -g 499 g1015 #指定了组id,则系统不会自动组id
groupmod -n g1066 g106 #将g106更名成g1066
groupmod -g 498 g10166 #将组g10166的id更改成498
groupdel g10166 #删除组g10166,若组中有用户,若组中包含用户,则不能删除组(必须确保组是空的才能删除组)
用户管理:(/etc/passwd存储用户基本信息、/etc/shadow存储用户密码信息)
一个用户可以拥有多个多个组:主组(一个有且只能有一个主组)和附属组(0到多个附属组)
用户的密码若是以*号或!开头,则表示该用户不能登录Linux操作系统

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

usermod    -L u101 #锁定用户,即用户不能登录
usermod -U u101 #解锁用户
userdel -r u101 #彻底删除用户

usermod -a -G groupA user    #将user用户加到groupA组中

groups 用户名    #查看用户所在的组
#id u101 #查看用户信息:如uid、所有的组信息等等
权限:Linux中通过控制每一类(有3类用户)用户对文件/文件夹的读、写、执行来实现权限控制
chmod 权限 文件名
rw_rw_r__: 前三个字符表示拥有者的权限,中间三个字符是组权限,后面三个字符其他人。
r: read       可读
w: write      可写
x:execute    可执行
r用数字4表示,w用数字2表示,x用数字1表示。
drwxr-xr-x  2 root root 4.0K 11-06 18:30 Desktop

u:所属用户
g:所属用户所在组的用户
o:组以外的用户
chmod u-w,g+w,o=r Desktop/ #执行完后变成dr-xrwxr--


d:表示该文件为文件夹
第一个rwx,表示该文件所属的用户对其所拥有的操作权限
第二个rwx,表示与该文件所属用户在同组内的用户对其所拥有的操作权限
第三个rwx,表示不与该文件所属用户在同组内的用户对其所拥有的操作权限
第一个root:表示该文件夹属于哪个用户
第二个root:表示该文件夹属于哪个组

drwxr-xr-x(一个组中可以包含0到多个用户)
d表示是个普通文件夹,-表示普通文件
rwx:文件拥有者具备的权限(u),7, 7-2
r-x:文件所属组中的其他用户所具备的权限(g),5, 5+2
r-x:其他用户所具备的权限(o),5, 4

#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代表所有用户
更改文件的属主:
1、更改单个文件的属主:
语法:chown 用户名 文件名
      chown wsg echo.sh

2、更改文件夹的属主:
语法:chown -R 用户名 文件名
chown -R u101 Desktop/ #单独更改文件夹的拥有者(-R表示文件夹的所有子内容全部更改)


3、更改单个文件的属组:
语法:chgrp 组名 文件名
      chgrp g1015 echo.sh

4、更改文件夹的属组
语法:chgrp -R 组名 文件名
chgrp -R g1015 Desktop/ #单独更改文件夹的所属组

5、同时更改文件的拥有者和所属组
语法:chown 用户名:组名 文件名
chown u101:g1015 install.log.syslog #同时更改文件的拥有者和所属组

6、同时更改文件夹和文件夹下的所有内容的拥有者和所属组
语法:chown -R 用户名:组名 文件名
chown -R u101:g1015 test01 #同时更改文件的拥有者和所属组

六:扩展命令:

cal  #查看日期
date  #查看时间
who #查看有哪些用户登录了系统
whoami #查看当前是哪个用户登录了系统
history #查看历史命令

less f101查看文件,按v键进入vi编辑器,:wq保存退出  :q! 强制退出
grep zpp /etc/passwd  #到/etc/passwd文件中查找zpp字符串
grep -n "root" /etc/group  #查看/etc/group文件中包含root的行并显示行号
cat install.log | grep isdn4k #到install.log文件中搜索内容:isdn4k(grep "isdn4k" install.log)

du -h 文件名 #查文件或目录的大小
#查看文件夹大小 du -h T01
#查看文件大小 du -h tt.txt

echo "" > f101 #清空文件f101中的内容,但仍然有一空行 (>是定向输出符,即将内容输出到指定位置;>>是追加符号)
cat /dev/null > f101 #清空文件f101中的内容,不会有空行

chkconfig --list #列出所有服务(相当于windows下的services.msc所列出的内容)

tcpdump -X -s 0 -w test.cap port 1813 #抓包命令 

ps #查看当前终端正在运行的进程
ps -ef #查看系统正在运行的进程
ps -ef | grep bash #查看系统正在运行的进程名包含bash的进程(即查看指定用户的进程)

[root@localhost ~]# ps -ef | grep wushigui
root      3744  2576  0 11:25 ?        00:00:00 sshd: wushigui [priv]
wushigui  3746(当前进程号)  3744(父进程号)  0 11:25 ?        00:00:00 sshd: wushigui@pts/2
wushigui  3747  3746  0 11:25 pts/2    00:00:00 -bash

kill -9 pid #强制终止(pid表示进程号,可以用ps命令查看到进程号)

top #查看当前系统的资源使用率(默认是5秒刷新一次,相当于windows的资源管理器)
d  强制踢出已登录用户:
w  #查看在线用户
          方式一:
        ps -ef | grep 用户名  #查到用户登陆的进程号对应的pid
        kill -9 登陆进程号
        ps -ef | grep test
        kill -9 3611            

         方式二:killall -9 -u 用户名
        killall -9 -u test

    方式三:如果一台服务器有在多处用同

        diff 文件1 文件2  #比较两个文件的内容
        df -h #查磁盘信息
        free -m #查内存

sed -ne '3,30p' termp #查看文件制定范围的行(例:第3行到第30行)
awk -F : '{print $1, $5}' /etc/passwd #查看/etc/passwd文件中的第1列、第5列(-F :表示用:号分隔,默认是空格分隔)
awk -F : '{print $1, $5}' /etc/passwd > f101

七:Vi命令扩展(命令模式下的操作):

三种模式:(1)命令模式
         (2)编辑模式
         (3)末行模式
三种的切换:
        命令模式切换到编辑模式:输入i/a。 
        编辑模式退到命令模式:esc

2、末行模式是以冒号开头。注意:末行模式必须是在命令模式下操作。命令:
(1):set nu            显示行号
(2):set nonu          不显示行号
(3):w                 保存
(4):q                 退出
(5):wq                保存加退出
(6):n      n行数      跳转到指定行 
(7):q!                强制退出 
(8):w 文件名          另存为
 用命令:set ff?  可以看到dos或unix的字样. 
 用:set ff=unix把它强制为unix格式,也可以用sed 这样的工具来做:

(9):n1,n2s/需要替换的字符串/替换字符串/参数
n1表示从第n1行开始,表示一个具体的数字,比如:1
n2表示从第n2行结束,表示一个具体的数字,比如:20
参数:g表示所有找出字符都替换没有确认。
      c表示每一次都确认
      i表示忽略大小写,但是i需要跟c或是g一起使用。

:s/is/IS/ #替换当前行第一个is为IS
:s/is/IS/g #替换当前行所有is为IS

(n为数字,若n为点好(即.),表示从当前行开始到最后一行)
:n,$s/is/IS #替换第n行开始到最后一行中每一行的第一个is为IS
:1,5s/is/IS #替换第1行开始到第5行中每一行的第一个is为IS

:n,$s/is/IS/g   #替换第n行开始到最后一行中每一行的所有is为IS
:1,$s/is/IS/g   #替换第1行开始到最后一行中每一行的所有is为IS

3、命令模式下的命令: 
(1)G       到末行    *
(2)gg      到首行
(3)$       到行尾     *
(4)^       到行首
(5)ngg     跳转到n行
(6)dd      删除一行,光标所在行
(7)ndd     删除n行,从光标所在行向下删除n行
(8)u       撤销
(9)o       新增一行并进入到编辑模式,向下增加。如果是大写的o,就是向上增加。
(10)i      进入编辑模式,在光标前编辑  *
(11)a      进入编辑模式,在光标后编辑  *
(12)x      删除一个字符。   *
(13)D      删除当前光标所在位置到行尾的内容  *
(14)/搜索字符        字符串搜索,查找下一个,按n, 向下查找。如果向上查找,按N。 *
(15)yy     复制   *
(16)nyy    复制n行,从光标所在的位置往下复制   *
(17)p      粘帖   *

你可能感兴趣的:(linux常用命令整理)