个人专题目录
常用基本命令
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
- 案例实操
(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
- awk的内置变量
变量 | 说明 |
---|---|
FILENAME | 文件名 |
NR | 已读的记录数 |
NF | 浏览记录的域的个数(切割后,列的个数) |
- 案例实操
(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格式压缩包