您的位置:首页 > 运维架构 > Linux

常用Linux命令和讲解

2015-09-19 08:19 627 查看
系统信息
arch 显示机器的处理器架构(1)
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

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

文件和目录
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)
mkdir dir1 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的编码
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)

文件搜索
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 显示一个二进制文件或可执行文件的完整路径

挂载一个文件系统
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 显示已经挂载的分区列表
ls -lSr |more 以尺寸大小排列文件和目录
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类系统)

返回顶部索引 ^

用户和群组
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 登陆进一个新的群组以改变新创建文件的预设群组

返回顶部索引 ^

文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消
ls -lh 显示权限
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chown user1:group1 file1 改变一个文件的所有人和群组属性
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
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 位

返回顶部索引 ^

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

返回顶部索引 ^

打包和压缩文件
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格式压缩包

set 与 shopt

这两个命令主要用于定制shell环境。

set -o [option] (打开设置)

set +o [option] (关闭设定)

eg : set -o vi

set +o vi

shopt -p [option] (查看当前的shopt设置)

shopt -u option (option选项设置复位)

shopt -s option (启动option选项)

eg: shopt -s cdspell (开启cd的纠错功能)

eg: shopt -u cdspell (关掉cd的纠错)

source 与.

Source命令也称为“点命令”,也就是一个点符号(.)。

source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

比如将我们对于.bashrc的修改生效,我们没必要重启bash,只需要

source ~/.bashrc 或是 . ~/.bashrc

source的另外一个功能就是可以执行命令序列,可以将命令序列写在一个文件中

用source直接执行,比如source abc.sh(这个和mysql中的source很像)

cd

cd - 在最近两个访问目录之间切换

CDPATH=/home/baiqingqi 设置cd的基本目录

alias cd1="cd .."

alias cd2="cd ../.."

dirs/popd/pushd

可以将目录压入和退出栈

eg: pushd .

popd

shopt -s cdspell

可以纠正cd目录时候的错误

eg: cd ~/docments

感觉是用了行编辑距离,可以在行编辑距离为2以内纠错

date

显示/设置时间和日期命令

eg: date --date="1 day ago"

eg: date --date="10 months 2 days ago"

eg: date {mmddhhmiyyyy.ss}

eg: date +%T -s"22:19:53"

eg: date --date="3 hours"

eg: date --date="this Wed"

ssh

ssh -V 查看ssh的版本

ssh -vl baiqingqi 125.39.25.202; -v参数是加入调试信息

~ 这个是ssh的转义符号,可以完成很多有用的ssh功能

比如,网络中断的时候强制断开ssh链接。输入:

~.(请先输入一个enter,ssh转义必须位于行首,再输入.断开链接)

在比如在在ssh中切换,输入:

~^Z(先转义ssh,再输入Ctrl + z,这个可以用于不喜欢用screen 的同学,

操作完了之后可以通过jops 查看,fg %命令切换回原来的ssh)

grep

grep [options] pattern [file]

eg: grep baiqingqi /etc/passwd

ps aux|grep fang_s|grep -v grep

-v选项作用是选择不包含后面的内容

grep -c pattern [file] 统计包含的行数

eg:grep -cv baiqingqi /etc/passwd

grep -i pattern [file] 忽略大小写

grep -r 在子目录中递归的查找

find

基本用法: find 路径 约束条件

find /etc -name "*ssw*"

find . -type f -size +10M (找出当前目录大于10M的文件)

find . -mtime +60 (找出60天内为修改的文件)

find . -mtime -2 (找出最近2天修改过的文件)

find . -name abc -type f -print0 | xargs -0 /bin/rm -f (删除当前

目录下的abc文件)

find /home/baiqingqi -type f -mtime +60 | xargs tar -cvf /tmp/`date '+%d%m%Y'_archive.tar`

(将我的主目录下60天以内没有被修改的文件归档)

join

基本用法:join [options] file1 file2

比如join a.txt b.txt > c.txt

tr

一般用法 tr [option] SET1 [SET2]

转换文件内容,一般会配合cut,sort,uniq命令一起使用

eg: tr a-z A-Z < c.txt > d.txt

(将c.txt中的所有小写字母转换为大写字母并输出到了d.txt文件中)

eg: tr -d[\$A-Z] < d.txt

(将d.txt中的所有大写字母和$字符删除)

xargs

xargs 是一个功能强大的命令,其主要功能是:它可以将一个命令的输出作为

另外一个命令的输入。

eg: find /etc -name "*.conf" | xargs ls -lh

(将etc下的所有.conf文件显示出来,同ls -lh /etc/*.conf)

cat url-list | xargs wget --tries=45

(下载url-list中的所有url,同wget --tries -i url-list)

find . -name -type f "*.jpg" |xargs tar -cvzf images.tar.gz

ls *.txt |xargs -n1 -i cp {} /tmp

(将当前目录下的所有.txt文档复制到tmp目录下)

cut -d: -f1 < /etc/passwd |sort|xargs echo

sort

对一个文本文件排序,功能也很强大。

eg: sort a.txt

sort -n a.txt (把a.txt中的第一个字段按照数字大小排序)

sort -nk2 a.txt(按照a.txt中的第二个字段并当作数字来排序)

sort -t: -nf2 a.txt(利用:作为分隔符,并将第二个字段当作数字排序)

tr [:\$] " " < a.txt |sort -nk3

(把a.txt中的:与$符号去掉并按照第三个字段的数值大小排序)

tr [:\$] " " < a.txt |sort -rnk3

(把a.txt中的:与$符号去掉并按照第三个字段数值大小反向排序,并去除重复的元素)

sort -t. -nk1 -nk2 -nk3 -nk4 /etc/hosts

(基于ip地址对/etc/hosts文件排序)

uniq

cut -d" " -f1 a.txt |sort |uniq -ic

(将a.txt中的第一个字段排序并统计重复量,-i不计大小写)

cut -d" " -f1 a.txt |sort |uniq -cd

(将a.txt中的第一个字段排序并统计重复量,并且只输出含有重复的量)

cut

cut命令主要用于显示一个文本文件中特定的列和其他命令的输出

常用参数-d, -f, -c, -b

eg: cut -d: -f1,2 a.txt

eg: cut -c 5- a.txt

eg: cut -b7-10 a.txt

stat

stat命令主要用于查看文件或者文件系统的状态和属性

eg: stat a.txt

eg: stat -f /

(查看系统文件的某些属性)

diff

比较两个文件的差异,输出不友好

eg: diff -w a.txt b.txt

(比较a.txt 和b.txt的差异,乎约空格)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: