Linux之七常用基本命令

个人专题目录


常用基本命令

export

输出所有的环境变量。 如果你想查看某个特定变量的值,用echo $VARIABLE_NAME

$ export
AWS_HOME=/Users/adnanadnan/.aws
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LESS=-R

$ echo $AWS_HOME
/Users/adnanadnan/.aws

whatis

whatis 显示某个用户命令、系统调用或库函数的描述文档,或操作手册中存在的其他文档。

whatis something

示例:
$ whatis bash
bash (1)             - GNU Bourne-Again SHell

whereis

whereis 查找可执行文件、源文件或者说明文档的位置,使用的是一个系统自动构建的数据库。

whereis name

示例:
$ whereis php
/usr/bin/php

which

which 在环境变量 PATH 指定的所有文件夹中查找可执行文件的位置。它会打印出可执行文件的绝对路径。

which program_name 

示例:
$ which php
/c/xampp/php/php

clear

清空窗口中的内容。

shutdown

关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销

关闭防火墙

 执行命令   service iptables stop
 验证:      service iptables status

关闭防火墙的自动运行

执行命令   chkconfig iptables off
验证:      chkconfig --list | grep iptables

用户和群组

groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( '-r' 排除主目录)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
chage -E 2005-12-31 user1 设置用户口令的失效期限
pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

finger

输出某个用户的信息 
finger username

1. 时间日期类

date(让大家进一步使用man)

cal 输出当前月份的日历

2. 文件目录类

pwd

此命令显示出当前工作目录的绝对路径。

ls

功能:列出目录的内容

语法:ls [选项] [目录或是文件]

命令中主要选项的含义如下:

选项与参数:

-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)

-d :仅列出目录本身,而不是列出目录内的文件数据(常用)

-l :长数据串列出,包含文件的属性与权限等等数据;(常用)

每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修改的时间 名字

ls -R 递归查看目录里面的内容

ls -F 选项会在显示目录条目时,在目录后加一个/

ls -ltr 逆序罗列最新修改过的文件,实用。

ls -d 目录名称,显示是否有合符名字的目录

ls -R 目录名称,递归查看目录里内容

只列出目录

ls -lF|grep ^d

ls -lF|grep /$

解释

F的意思是把文件按照类型归类,并且在末尾加上/或*等符号标识

|连接符的意思是把前面命令的结果当做输入传给后面的命令

grep /$的意思是从中挑出以/结尾的行

grep ^d的意思是从中挑出以d开头的行

ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
ls -a 显示隐藏文件,文件名以“.”开始
ls -f 显示文件类型:‘/’表示目录文件;‘*’表示可执行文件;(无) 表示文本文件;
ls -r 显示一个递归的列表(含子目录下的所有文件)
ls -t 显示文件按时间排序,由近到远;
tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)

mkdir

-p,可以自行帮你创建多层目录

rmdir

删除一个空的目录

mkdir dir1 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树

cd

cd dirname
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录

cp

cp source dest 作用是复制文件
cp -r sourceFolder targetFolder 递归复制整个文件夹

cp filename1 filename2
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录

rm

删除一个文件
rm: directory: is a directory
如果想删除文件夹,需要添加 r 参数,这样会递归的删除文件夹内所有内容。可以使用 f 参数强制删除,略过确认环节。

rmdir deleteEmptyFolder 删除空目录 
rm -rf deleteFile 递归删除目录中所有内容

rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容

mv

mv oldNameFile newNameFile      重命令
mv /temp/movefile /targetFolder  移动文件

cat

选项与参数:

-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!

-E :将结尾的断行字节 $ 显示出来;

-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;

-T :将 [tab] 按键以 ^I 显示出来;

-v :列出一些看不出来的特殊字符

在 UNIX 和 Linux 中,它有以下几种用途

  • 把文本文件显示在屏幕上
  • 复制文本文件
  • 合并文本文件
  • 创建新的文本文件
cat filename
cat file1 file2 
cat file1 file2 > newcombinedfile
cat < file1 > file2 #copy file1 to file2

tac

从最后一行开始显示,可以看出 tac 是 cat 的倒著写!

more

一页一页的显示文件内容

空白键 (space):代表向下翻一页;

Enter:代表向下翻『一行』;

q:代表立刻离开 more ,不再显示该文件内容。

Ctrl+F 向下滚动一屏

Ctrl+B 返回上一屏

= 输出当前行的行号

:f 输出文件名和当前行的行号

less

与 more 类似,但是比 more支持的功能更多

空白键 :向下翻动一页;

[pagedown]:向下翻动一页;

[pageup] :向上翻动一页;

/字串 :向下搜寻『字串』的功能;

?字串 :向上搜寻『字串』的功能;

n :重复前一个搜寻 (与 / 或 ? 有关!)

N :反向的重复前一个搜寻 (与 / 或 ? 有关!)

q :离开 less 这个程序;

head

只看头几行

head -n 10 example.txt 查看文件头10行

tail

只看尾巴几行

tail -n 10 example.txt 查看文件头10行

history

所敲命令历史

重定向命令

ls -l > a.txt 覆盖写

ls -al >> aa.txt 追加写

nl

给文件添加行号并输出

example.txt

nl -s". " example.txt 

sed

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

选项参数 功能
-e 直接在指令列模式上进行sed的动作编辑。
命令 功能描述
a 新增,a的后面可以接字串,在下一行出现
d 删除
s 查找并替换

example.txt

Hello This is a Test 1 2 3 4

把 example.txt 所有空格替换为连字符并输出

sed 's/ /-/g' example.txt
Hello-This-is-a-Test-1-2-3-4

把所有数字替换为 "d"

sed 's/[0-9]/d/g' example.txt
Hello This is a Test d d d d

sort

对文件中的行进行排序

选项 说明
-n 依照数值的大小排序
-r 以相反的顺序来排序
-t 设置排序时所用的分隔字符
-k 指定需要排序的列

example.txt

f
b
c
g
a
e
d

对 example.txt 中的行进行排序

sort example.txt

tr

转换或删除字符

example.txt

Hello World Foo Bar Baz!

把所有小写字母转换成大写字母

cat example.txt | tr 'a-z' 'A-Z' 
HELLO WORLD FOO BAR BAZ!
把所有的空格都转换为换行符
cat example.txt | tr ' ' '\n'
Hello
World
Foo
Bar
Baz!

uniq

统计或精简重复的行

example.txt

a
a
b
a
b
c
d
c

输出 example.txt 中所有不重复的行(需要先进行排序, 否则相同行中间的行会被忽略)
sort example.txt | uniq

a
b
c
d

输出去重后的所有行,并显示不重复行中每一行在原文件中的重复次数
sort example.txt | uniq -c

3 a
2 b
2 c
1 d

wc

输出文件中的行、单词、字符个数。

wc filename
-l 算行数
-w 算单词数
-C 算字符数

$ wc demo.txt
7459   15915  398400 demo.txt
demo.txt中有 7459 行, 15915 个单词以及 398400 个字符.

设置别名

执行 nano ~/.bash_profile 来打开 bash_profile

alias dockerlogin='ssh www-data@adnan.local -p2222' # 在 .bash_profile 中设置别名

快速进入某个目录

nano ~/.bashrc

export hotellogs="/workspace/hotel-api/storage/logs"

source ~/.bashrc
cd $hotellogs

保存环境变量

当你在 shell 中执行 export FOO = BAR, 环境变量只在当前 shell 和它的子 shell 中存在,如果想在将来能够永久使用这个环境变量,只需要在 ~/.bash_profile 文件后面添加要执行的命令即可。

echo export FOO=BAR >> ~/.bash_profile

你可以很容易地通过传递不同的参数给 bash 命令来调试脚本。例如, -n 将会只检查脚本的语法错误而不执行脚本。 -v 将会在命令执行前输出它们。 -x 将会在命令行处理之后输出命令。

bash -n scriptname
bash -v scriptname
bash -x scriptname

3. 文件权限类

chmod

改变文件或者目录权限

文件: r-查看;w-修改;x-执行文件

目录: r-列出目录内容;w-在目录中创建和删除;x-进入目录

删除一个文件的前提条件:该文件所在的目录有写权限,你才能删除该文件。

chmod -options filename
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
chmod g-s /home/public 禁用一个目录的 SGID 位
chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位

chgrp

改变文件或者目录的所属组

chgrp 最终目的组 文件或目录

chown

改变文件或者目录的所有者

chown 最终落地用户 将被修改的文件

chown .落地用户组 将被修改的文件

文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消
ls -lh 显示权限
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chown user1:group1 file1 改变一个文件的所有人和群组属性
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件

文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性

umask

查看创建文件、目录的默认权限,缺省创建的文件不能授予可执行权限x

默认规则:

文件是666 减去 022等于644,

十进制的6等于二进制的110,所以第一组就是rw-

十进制的4等于二进制的100, 所以第二组就是r--

十进制的4等于二进制的100, 所以第三组就是r--

目录是777 减去 022等于755,

su -username

切换用户

4. 网络配置类

ifconfig

如何修改IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改并保存退出
重启 service network restart

dig

输出某个域名的 DNS 信息

dig domain

du

输出某些文件或目录的硬盘使用情况

du [option] [filename|directory]

Options:

  • -h (人类可读) 把结果以 KB、 MB 、GB 为单位输出。
  • -s (压缩总结) 输出一个目录总的磁盘空间占用情况,总结输出子目录的报告。

示例:

du -sh pictures
1.4M pictures
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)

5. 磁盘分区类

分区

fdisk -l

这个硬盘是20G的,有255个磁面;63个扇区;2610个磁柱;每个 cylinder(磁柱)的容量是 8225280 bytes=8225.280 K(约为)=8.225280M(约为);

Device Boot Start End Blocks Id System
分区序列 引导 从X磁柱结束 到Y磁柱结束 容量 分区类型ID 分区类型
  • s表示scsi硬盘

  • d表示disk

  • a表示第一块硬盘(a为基本盘(表示第一块硬盘,两块就会有b),b为基本从属盘,c为辅助主盘,d为辅助从属盘)

  • 数字,前四个分区用1~4表示,它们是主分区或扩展分区(当前都是主分区),从5开始才是逻辑分区

上面内容合在一块,表示我自己机器里面的第一块SCSI硬盘

挂载/卸载概念

对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构

Linux中每个分区都是用来组成整个文件系统的一部分,她在用一种叫做“挂载”的处理方法,

它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,

要载入的那个分区将使它的存储空间在这个目录下获得

关键词:分区 目录 挂载

查看目录挂在在那个分区下面:

命令:df 某个目录的全路径

mount umount

mount 【参数】 设备名称 落地挂载点目录

umount 落地挂载点目录

mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
fuser -km /mnt/hda2 当设备繁忙时强制卸载
umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
mount /dev/fd0 /mnt/floppy 挂载一个软盘
mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享

硬盘

df -h

列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况

选项与参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

-i :不用硬盘容量,而以 inode 的数量来显示

df -h 显示已经挂载的分区列表
ls -lSr |more 以尺寸大小排列文件和目录

6. 搜索查找类

find

查找文件或者目录

解释: 查找文件或者目录

命令:find+搜索路径+参数+搜索关键字

按文件名:find /home/esop -name '*.txt' 根据名称查找/目录下的filename.txt文件。

按拥有者:find /home/esop -user esop

$ find . -name README.md
$ find /home/user1 -name '*.png'
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限
find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径

grep

在文件内搜索字符串匹配的行并输出

grep+参数+查找内容+源文件

参数:

-c:只输出匹配行的计数。

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及 行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

你也可以通过 -i 参数强制忽略大小写。参数-r则被用来递归地查找指定文件夹下的所有文件,例如:

$ grep -r admin /etc/

awk

一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。awk 是文本操作最有用的命令。它按行处理整个文件,它默认用空格把每一行分隔成很多字段。最常用的语法是:

awk [选项参数] ‘pattern1{action1} pattern2{action2}...’ filename

pattern:表示AWK在数据中查找的内容,就是匹配模式

action:在找到匹配内容时所执行的一系列命令

选项参数 功能
-F 指定输入文件折分隔符
-v 赋值一个用户定义变量
awk '/search_pattern/ { action_to_take_if_pattern_matches; }' file_to_parse

/etc/passwd 文件为例,该文件包含以下数据:

root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync

我们想从这个文件中过滤出每一行的 username 部分。-F 参数用来指明用来把行内内容分隔的分隔符。这个例子中,我们用:来分隔。{ print $1 } 意思是输出行内第一个匹配的字段。

awk -F':' '{ print $1 }' /etc/passwd
  1. 案例实操

(0)数据准备

$ sudo cp /etc/passwd ./

(1)搜索passwd文件以root关键字开头的所有行,并输出该行的第7列。

$ awk -F: '/^root/{print $7}' passwd 
/bin/bash

(2)搜索passwd文件以root关键字开头的所有行,并输出该行的第1列和第7列,中间以“,”号分割。

$ awk -F: '/^root/{print $1","$7}' passwd 
root,/bin/bash

注意:只有匹配了pattern的行才会执行action

(3)只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"dahaige,/bin/zuishuai"。

$ awk -F : 'BEGIN{print "user, shell"} {print $1","$7} END{print "dahaige,/bin/zuishuai"}' passwd
user, shell
root,/bin/bash
bin,/sbin/nologin
。。。
xubh,/bin/bash
dahaige,/bin/zuishuai

注意:BEGIN 在所有数据读取行之前执行;END 在所有数据执行之后执行。

(4)将passwd文件中的用户id增加数值1并输出

$ awk -v i=1 -F: '{print $3+i}' passwd
1
2
3
4
  1. awk的内置变量
变量 说明
FILENAME 文件名
NR 已读的记录数
NF 浏览记录的域的个数(切割后,列的个数)
  1. 案例实操

(1)统计passwd文件名,每行的行号,每行的列数

$ awk -F: '{print "filename:"  FILENAME ", linenumber:" NR  ",columns:" NF}' passwd 
filename:passwd, linenumber:1,columns:7
filename:passwd, linenumber:2,columns:7
filename:passwd, linenumber:3,columns:7

(2)切割IP

$ ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk -F " " '{print $1}' 
192.168.1.102

(3)查询sed.txt中空行所在的行号

$ awk '/^$/{print NR}' sed.txt 
5

cut

cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。

选项参数 功能
-f 列号,提取第几列
-d 分隔符,按照指定分隔符分割列

example.txt

red riding hood went to the park to play

用空格分隔每一行,并输出第2,7,9列

cut -d " " -f2,7,9 example.txt
riding park play

egrep

输出文件中匹配指定模式的行,是 grep 命令的扩展模式,支持更多正则表达式(等同于 grep -E)。

example.txt

Lorem ipsum
dolor sit amet, 
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.

输出包含 Lorem 或 dolor 的行

egrep '(Lorem|dolor)' example.txt
or
grep -E '(Lorem|dolor)' example.txt

Lorem ipsum
dolor sit amet,
et dolore magna
duo dolores et ea
sanctus est Lorem
ipsum dolor sit

7. 进程线程类

ps

天字一号进程是所有进程的父进程

查看进程 ps 显示的信息选项

字段 说明
PID 进程识别号
TTY 终端机号
TIME 此进程所消CPU时间
CMD 正在执行的命令或进程名

最常用的方法是

ps -a:显示当前终端的所有的进程信息

ps -u:以用户的格式显示进程信息

ps -x:显示后台进程运行的参数

ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作

ps -ef是以全格式显示当前所有的进程

-e 显示所有进程。

-f 全格式。

结束指定 PID 代表的进程

kill PID

结束某个名字代表的所有进程

killall processname

netstat

显示网络统计信息的命令

此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容,此命令直接输入即可使用

netstat -anp

an,按一定顺序排列输出

p, 表示显示哪个进程在调用

查看端口8080的使用情况,见下:

netstat -anp |grep 8080

&

之前的命令作为后台进程运行在 subshell 中
command &

lsof

查看端口属于哪个程序

lsof -i:6379

lsof(list open files)是一个列出当前系统打开文件的工具。

在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

nohup

nohup 代表 No Hang Up,也即不要挂起。这条命令允许其它命令、进程或shell脚本在你退出shell之后继续在后台运行,把它和 & 结合使用可以创建后台进程

rpm

RPM 包 - (Fedora, Redhat及类似系统)
rpm -ivh package.rpm 安装一个rpm包
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
rpm -U package.rpm 更新一个rpm包但不改变其配置文件
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -e package_name.rpm 删除一个rpm包
rpm -qa 显示系统中所有已经安装的rpm包
rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包
rpm -qi package_name 获取一个已安装包的特殊信息
rpm -qg "System Environment/Daemons" 显示一个组件的rpm包
rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表
rpm -q package_name --whatprovides 显示一个rpm包所占的体积
rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l
rpm -q package_name --changelog 显示一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
rpm --checksig package.rpm 确认一个rpm包的完整性
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
rpm -Va 检查系统中所有已安装的rpm包- 小心使用
rpm -Vp package.rpm 确认一个rpm包还未安装
rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包
rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包

YUM 软件包升级器 - (Fedora, RedHat及类似系统)
yum install package_name 下载并安装一个rpm包
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件
APT 软件工具 (Debian, Ubuntu 以及类似系统)
apt-get install package_name 安装/更新一个 deb 包
apt-cdrom install package_name 从光盘安装/更新一个 deb 包
apt-get update 升级列表中的软件包
apt-get upgrade 升级所有已安装的软件
apt-get remove package_name 从系统删除一个deb包
apt-get check 确认依赖的软件仓库正确
apt-get clean 从下载的软件包中清理缓存
apt-cache search searched-package 返回包含所要搜索字符串的软件包名称

bg

列出所有被停止或后台运行的任务,或将一个已停止的任务后台运行。

jobs

列出在后台运行的任务,同时给出任务号

last

列出特定用户的登录记录

passwd

让当前登录的用户更改他的密码

quota

显示磁盘使用量和配额 quota -v

scp

在本地主机和远程主机之间或两个远程主机之间传输文件

从本地主机复制文件到远程主机

scp source_file user@host:directory/target_file

从远程主机复制文件到本地主机

scp user@host:directory/source_file target_file
scp -r user@host:directory/source_folder target_folder

这个命令也接受一个参数 -P,用来连接指定端口

scp -P port user@host:directory/source_file target_file

top

动态展示所有活跃的进程

uname

输出内核信息

uname -a
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS

uptime

输出服务器运行了多长时间以及有多少个用户登录

w

输出系统在线用户

whoami

输出现在登录的用户的用户名

whois

获取某个域名的 whois 信息

8. 压缩和解压类

1组

解释:压缩文件,只能将文件压缩为*.gz文件

命令:gzip+文件

特点:

1 只能压缩文件不能压缩目录

2 不保留原来的文件

gzip a.txt

gzip

gunzip,解压缩文件命令,gunzip+文件.gz

gzcat filename 在不解压的情况下,查看 gzip 压缩过的文件

2组

解释:打包目录,压缩后的文件格式.tar.gz

参数:

-c 产生.tar打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩

-x 解包.tar文件

命令:tar+上述参数+XXX.tar.gz+将要打包进去的内容

压缩:tar -zcvf XXX.tar.gz n1.txt n2.txt

解压:tar -zxvf XXX.tar.gz

3组

解释:压缩文件和目录的命令,window/linux通用且可以压缩目录且保留源文件

参数:-r 压缩目录

命令:zip+参数+XXX.zip+将要压缩的内容

案例:

压缩:zip mypackage.zip 1.txt 2.txt

解压:unzip mypackage.zip

gzip filename
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件
bzip2 file1 压缩一个叫做 'file1' 的文件
gunzip file1.gz 解压一个叫做 'file1.gz'的文件
gzip file1 压缩一个叫做 'file1'的文件
gzip -9 file1 最大程度压缩
rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包
tar -cvf archive.tar file1 创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容