Linux笔记---常用命令

1. Linux下的shell

现在的Linux发行版都以bash作为默认的shell。shell是一个以C语言编写的程序,是用户和操作系统内核之间的通信桥梁。为了加快命令的运行,shell中定义了一些内置命令。cd、pwd、exit、echo等都是属于bash内置命令。当用户登录后,shell以及内置命令就被装载到内存。除内置命令外,Linux系统上还有很多可执行文件。放在/bin/ls中。这些命令只有被调用时,才由系统装入内存执行。
shell执行命令解释的具体过程为:用户输入命令提交后,shell程序首先检测它是否为内置命令,如果是,就通过shell内部的解释器将命令解释为系统调用,然后提交给内核执行;如果不是,shell会按照用户给出的路径或者根据系统环境变量的配置信息在硬盘寻找对应的命令,然后将其调入内存,最后再将其解释为系统调用,提交给内核执行。

  • shell通配符
    1). *:匹配任意一个或多个字符
    2). ?:匹配任意一个字符
    3). []:匹配任何包括在方括号内的单字符
  • shell重定向

Linux系统打开3个文件,即标准输入(键盘)、标准输出和标准错误输出(屏幕)。重定向就是不使用系统默认的标准输入/输出。

1). 输入重定向 <与<<
# 用wc命令统计输入给它的文件的行数、单词数和字符数
wc < /etc/shadow

2). 输出重定向 >与>>

# 将ps -ef输出的进程信息全部输入到ps.txt文件而不是屏幕
ps -ef > ps.txt
# 用more命令查看ps.txt文件(不想覆盖文件,可以使用\>\>)
more file1 file2 file3 > file

3). 错误重定向---2>

# 解压过程出错输出错误消息到error.txt文件
tar zxvf text.tar.gz 2> error.txt
  • shell管道---将前一个命令的输出作为后一个命令的输入
# 将/etc目录及子目录下的所有文件分屏显示
ls -al /etc/* |more

2. 系统管理与维护

  • ls命令---列出文件及目录
# 来处当前目录下的所有文件及目录(包括隐藏文件)
ls -a
# 除文件名外,列出权限、使用者和大小等详细信息
ls -l 
# 列出home目录下的文件及目录
ls -l /home
# 列出所有文件及其详细信息
ls -al
  • pwd---获取当前工作目录的绝对路径
  • cd---改变当前工作目录
  • passwd---修改密码
  • su---改变用户身份
#普通用户成为超级用户
$su -
  • clear---清除屏幕信息
  • man---显示指定帮助信息
  • who---显示当前登录到系统的用户
  • w---显示登录到系统的用户信息
  • uname---显示操作系统相关信息
选项 说明
-a 显示操作系统全部信息
-m 显示CPU类型是32位还是64位
-n 显示操作系统主机名
-s 显示操作系统类型
-r 显示操作系统内核版本
  • uptime---输出系统任务队列信息
# 输出当前系统时间、开机到现在运行时间、目前有多少用户在线和系统平均负载等
uptime
16:03:08 up 4days, 1:49, 2 users, load average: 0.12, 0.20, 0.17
系统时间是16:03:08,运行已经4天1小时49分,有2个用户在线,1分钟、5分钟、15分钟前到现在的平均负载为0.12、0.20、0.17
  • free---显示内存状态
  • ps---显示进程动态
    常用选项组合ps -ef、ps aux
  • top---包括了uptime命令的信息、进程和CPU状态统计,以及进程详情

3. 文件管理与编辑

  • mkdir---创建目录
# 递归创建目录
mkdir -p /home/user1/user2
  • more---文件内容分屏显示
# 分屏显示Makefile
more Makefile
# 分屏显示Makefile,每屏10行,清除前一屏信息
more Makefile -c -10 Makefile
Enter键:逐行追加到屏幕,空格键:显示下一屏
  • cat---输出文件内容
  • grep---文本过滤
    grep根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就输出该行的内容。
    格式:grep [选项] 字符串 文件名
选项 说明
-A NUM 除了列出符合条件的行外,同时列出行后NUM行
-c 只显示符合条件的行数
-f file 事先将要搜索的样式写入文件,每行一个样式,然后以这个文件作为条件进行搜索
-i 搜索时忽略大小写
-n 在搜索结果中显示行号
-B NUM 与选项-A相反,除列出符合条件的行外,同时列出前NUM行
# 列出install.log文件中含有RPM字符串的行
grep RPM install.log
# 列出install.log文件中含有rpm字符串的行,忽略大小写,并标识出每行的具体行号
grep -ni rpm install.log
  • rm---删除文件或目录
选项 说明
-r 递归删除,不指定,rm将无法删除目录
-f 不用给出提示
-i 删除前进行确认
rm -rf的使用要慎重,一旦被删就不能恢复。必要时使用rm -ri来逐个确认要删除的文件。
  • touch---创建文件,或改变文件的访问和修改时间
  • ln---创建链接

Linux下有硬链接和软链接两种,硬链接如同对源文件的多个物理备份,只有所有硬链接文件被删除后,源文件才被删除。软链接如同Windows中的快捷方式。

格式:ln [选项] 源文件 目标目录
# 将/etc/inittab文件硬链接到/opt/backup目录下
ln /etc/inittab /opt/backup
ll /opt/backup/inittab
total 8
-rw-r--r-- 2 root root 1666 Jul 19 11:17 /opt/backup/iniitab # 完全感知不到源文件的存在
ll /etc/inittab
-rw-r--r-- 2 root root 1666 Jul 19 11:17 /etc/inittab
# 将/etc/inittab文件软链接到/opt下
ln -s /etc/inittab /opt
ll /opt/inittab
total 4
lrwxrwxrwx 1 root root 12 Jul 20 17:57 /opt/inittab -> /etc/inittab
  • file---显示文件类型
  • cp--文件目录拷贝
# 将当前目录下的所有文件复制到/tmp目录下
cp -r ./* /tmp
# 将/home/oracle目录及其子目录下的全部文件复制到/home/ixdba下
cp -r /home/oracle /home/ixdba
  • find---在指定路径下查找指定文件
    需要多加练习
  • split---分割文件为多个文件
  • mv---移动文件
    格式:mv [-i] 源文件或目录 目的文件或目录

4. 压缩与解压

  • tar---归档
# 将/etc目录下的所有文件打包并压缩,设置大报名为etc.tar.gz,同时保存到/opt目录下
tar -zcvf /opt/etc.tar.gz /etc # gzip压缩
tar -jcvf /opt/etc.tar.bz2 /etc # bzip2压缩
# 排除性打包:打包/home目录和/etc目录,排除/home下的ixdba目录
tar -exclude /home/ixdba -zcvf myfile.tar.gz /home/* /etc
# 查阅压缩包的内容
tar -ztvf /opt/etc.tar.gz
tar -jtvf /opt/etc.tar.bz2
# 解压压缩包
tar -zxvf /opt/etc.tar.gz
tar -jxvf /opt/etc.tar.bz2
# 解压压缩包中指定文件
tar -zxvf /opt/etc.tar.gz etc/inittab
# 解压压缩包中指定目录
tar -zxvf /opt/etc.tar.gz -C /tmp
  • dd---用指定大小的块转换或复制文件,同时可以对设备进行备份
    格式:

dd if="input_file" of="output_file" bs="block_size" count="number"

bs:指定一个块的大小,默认512字节
count:块的数量

将/etc/inittab文件备份到/opt/inittab.bak中

dd if=/etc/inittab of=/opt/inittab.bak
3+1 records in
3+1 records out

3+1表示有3个完整的512字节的块,1个未满512字节的块

将/dev/sda2整个磁盘分区进行备份,保存备份文件到/opt目录(输出路径不能相同,否则怎么都备份不完)

dd if=/dev/sda2 of=/opt/sda2.back

恢复备份包到相应的分区(要先卸载目标分区)

dd if=/opt/sda2.back of=/devl/sda2


###5. 磁盘管理与维护
* df---检查磁盘空间占用情况

查看当前系统磁盘分区情况

df -hT

* du---显示文件或目录占用的磁盘空间

显示当前目录下所有文件的大小

du -sh ./*

显示Linux系统/etc目录的总大小

du -sh /etc

sync---强制将内存数据写回磁盘,以免数据丢失(默认每个3秒系统会自动执行一次sync)

###6. 网络设置与维护
* ifconfig---配置网络或显示当前网络状态(root用户的命令)
命令:ifconfig [选项] [interface] [inet|up|down|netmask|addr|broadcast]
ifconfig命令选项说明

|选项|说明|
|------|------|
|-a|显示所有的网络接口信息,包括活动和非活动的|
|-s|仅显示每个接口的摘要信息,是有关接口活动性的,每个接口显示一行信息|
|-v|如果某个网络接口出现错误,将返回错误信息|

1). interface:网络接口名,类似于eth0、eth1和lo等(CentOS7.×版本中,为enp0s1、enp0s2),表示第1块网卡、第2块网卡和回环接口
2). up:激活一个网络接口
3). down:禁用一个网络接口
4). netmask:为一个指定的网络接口指定子网掩码
5). addr:为网络接口指定IP地址
6). broadcast:为指定的接口设置广播地址

显示所有网络接口信息

ifconfig


enp03: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.232 netmask 255.255.255.0 broadcast 192.168.81.255
inet6 fe80:a00:27ff:fe90:55 prefixlen 64 scopeid 0x20<link>
enter 08:00:27:90:00:55 txqueuelen 1000 (Ethernet)
RX packets 20378 bytes 1845248 (1.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 958 bytes 147065 (143.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 4 bytes 336 (336.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4 bytes 336 (336.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


从上面可以看出以下几点:
第1行:UP代表网卡开启状态,RUNNING代表网卡上的网线处于连接状态,MULTICAST代表支持组播,MTU:1500代表最大传输单元为1500字节。
第2行:依次显示网卡的IP地址、子网掩码和广播地址
第3行:IPv6地址的配置信息
第4行:ether后面表示硬件网卡的MAC地址。Ethernet表示连接类型为以太网
第5、6行:显示网卡接收数据包的统计信息和接收错误的统计信息
第7、8行:显示网卡发送数据包的统计信息和发送错误的统计信息
> 用ifconfig命令配置的网卡信息,在网卡重启或机器重启后,所有的配置都会失效,如果要让网卡配置永久生效,需要修改网卡的配置文件。

在网卡enp0s3上配置两个IP地址,分别为192.168.60.136、192.168.66.138,子网掩码为255.255.255.0

ifconfig enp0s3 192.168.60.136 netmask 255.255.255.0
ifconfig enp0s3:0 192.168.66.138 netmask 255.255.255.0

此时用ifconfig命令查看,就可以看到两个网卡的信息了,分别是enp0s3和enp0s3:0

修改网卡MAC地址为新的MAC地址

ifconfig enp0s3hw enther xx:xx:xx:xx:xx:xx

将网卡enp0s3禁用后再启用

ifconfig enp0s3 down
ifconfig enp0s3 up

* scp---将文件或目录从一个Linux系统复制到另外一个Linux系统

将本地文件复制到远程Linux

scp /home/ixdba/etc.tar.gz root@192.168.60.168:/tmp

将远程Linux文件复制到本地

scp root@192.168.60.133:/home/idxdba/etc.tar.gz /tmp

将本地/etc目录中所有文件及子目录复制到远程Linux系统root用户的/opt目录中

scp -r /etc root@192.168.60.135:/opt


* netstat---显示本机运行端口和路由表信息
格式:netstat [选项]

|选项|说明|
|------|------|
|-a|显示本机所有连接和监听端口|
|-n|以网络IP地址的形式显示当前建立的有效连接和端口|
|-r|显示路由表信息|
|-s|显示按协议的统计信息。默认情况下,将显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6的统计信息|
|-v|显示当前的有效连接,与-n选项类似|
|-t|显示所有的TCP协议连接情况|
|-u|显示所有的UDP协议连接情况|
|-c<秒数>|后面跟的秒数,表示每隔几秒就刷新显示一次|
|-i|显示自动配置接口的状态|
|-l|仅显示连接状态为LISTEN的服务的网络状态|
|-p|显示连接对应的PID与程序名|

显示当前系统的路由信息

netstat -rn

    Kernel IP routing table
    Destination      Gateway               Genmask       Flags    MSS    Window    irtt Iface
    0.0.0.0             192.168.81.250     0.0.0.0           UG        0          0               0   enp0s3
    169.254.0.0     0.0.0.0                   255.255.0.0   U           0          0               0   enp0s3
从上面可以看出,当前系统的默认网关是192.168.81.250,对应的网络接口为enp0s3

显示有效的TCP连接

netstat -an

显示已启动的网络连接、端口信息以及对应的进程ID和服务名

netstat -tlnpu

显示处于连接状态的资源信息

netstat -atunp

* traceroute---显示网络数据包传输至指定主机的路径信息、追踪传输路由状态
命令格式:traceroute [选项] [远程主机名或IP地址] [数据包大小]

|选项|说明|
|------|------|
|-i<网络接口>|使用指定的网络接口发送数据包|
|-n|直接使用IP地址而不使用主机名|
|-v|详细显示命令的执行过程|
|-w<超时秒数>|设置等待远程主机回应的时间|
|-x|开启或关闭对数据包的正确性检验|
|-s<来源ip>|设置本地主机发送数据包的IP地址|
|-g<网关地址>|设置来源的路由网关,最多可设置8个|

跟踪从本机到网站www.ixdba.net的数据包发送过程

traceroute -i eth0 -s 192.168.60.251 -w 10 www.ixdba.net 100

    上面指定eth0网络接口发送数据包,IP为192.168.60.251,并设置超时时间为10秒,最后设置发送数据包的大小为100kb。输出可以看到路由迂回,每个路由节点做3次时间测试。
    如果在指定的时间内,traceroute检测不到某个路由节点的回应,会在屏幕上输出"*",表示此节点无法通过。由于traceroute是利用ICMP连接的,有些网络设备(如防火墙)可能会屏蔽ICMP通过的权限,因此也会出现节点没有回应的状态,分析网络问题的需要知道这点。
* telnet---与远程主机通信或获取远程主机对应端口的信息

通过telnet协议登录到开启了telnet服务的远程主机上(不输入23端口也是可以的,因为telnet默认寻找的端口就是23)

telnet 192.168.60.123 23

查看某台Linux系统的22和80短偶是否打开以及分别开启了什么服务

telnet 192.168.60.88 22

如果 www.ixdba.net对应的80端口开启,输入get命令将显示端口对应的服务类型

telnet www.ixdba.net 80
get

* wget---从网络上下载某个软件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,131评论 2 34
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,130评论 9 467
  • (一)基本命令 命令格式: 命令 参数 1.ls 显示文件名,等同于dos下dir命令 命令格式:ls [opti...
    飞羽孟德阅读 1,870评论 0 3
  • 1.命令格式:ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网络设...
    Nuuuu阅读 3,701评论 0 12
  • 2017.11.20号 星期 一 天气 晴 今天又是新的一周,早上睁开眼睛,呀!6:40了,赶紧起床,然后...
    吕政民阅读 152评论 0 0