首页 > 代码库 > linux常用命令

linux常用命令

linux入门 百度文库: http://wenku.baidu.com/course/view/4fdf50e2524de518964b7d00

linux装在U盘上 http://zhidao.baidu.com/link?url=rFBh95J8tH1MnmB64is-3kiryYj2_75XADG15FT6O-IvVUoy_VY9rm4wMUm0zOOelvQZlZpxWMATEbPqV_z1fa

 
Ctrl+z 暂停命令
 
 
ls
 
linux里面  文件和文件夹叫文件
 
-h  数字以M或G为单位
-a  显示全部文件  包括隐藏文件
-l   显示文件详细信息
-R  大R    递归显示子目录结构
-ld  [文件名]显示目录和链接信息
 

file  [文件名]   显示文件的类型和信息

touch   创建空白文件
如果创建一个已经存在的文件会更新文件的修改时间

cd   目录切换
..  上一级目录
.  当前目录
~  用户家目录
-   上一个工作目录

pwd  当前的工作目录cvd
 

cp  源文件(夹) 目标文件(夹)
-r   (用于复制文件夹)递归复制整个目录
-v   显示详细信息
-p   不改变文件属性

mv   移动、重命名
mv  源文件(夹)   目标文件(夹)
移动到当前文件夹可以重命名
-p

rm
删除文件(夹)
-r 删除文件夹(递归删除)
-i 交互式
-f  强制删除,没有警告提示

mkdir 创建目录
-p递归创建
rmdir  删除一个空的目录
rm -r  删除一个非空目录

文件系统目录
bin   可执行文件(叫命令)
boot  引导目录(和内核)
dev   设备文件(设备在linux被抽象为文件)
etc    所有配置文件
home  家目录(每一个用户都有一个家目录 ),保存用户的文件、
lib     库文件(相当于windows的dll)
media   挂载外设用的比如光盘和USB盘
opt   通常用来装大型软件
proc   系统的实时信息(只存在内存中)第次启动都会创建: 可以通过查看里面的文件内容,得到系统的信息/数字文件夹代带一个进程/
sbin   只有root用户才能执行的文件(或叫命令)super bin
sys  系统底层的信息
tmp   临时目录,里面的内容会自动删除
usr   一般的软件装在这里
var  保存一些会经常变化的信息,里面有日志,邮件
 


时间
date
重新定义输出格式   date +%Y--%M--%D     --可以改成别的   前面要加+号
date -s "20:20:20"    修改时间
hwclock (clock)   显示硬件时针时间
cal     显示日历
uptime  查看系统的运行时间
 

查看文件的内容
命令后加文件
echo "要输出的内容"
cat  显示文件的内容
more 翻页显示文件的内容(只能向下翻页)
less  翻页显示文件的内容(带上下翻页)
head  用以显示文件的头几行(默认10行)  head -n 3 显示3行
tail  显示文件的末尾几行(同上)    (-f  追踪显示文件更新     用来查看日志,文件更新内容也会更新)

查看硬件信息
lspci  查看PC设备  -v  查看详细信息
lsusb 查看USB设备  -v同上
lsmod  查看加载的模块(模块=windows驱动)

关机、重启
shutdown
-h  关闭
-r   重新启动
例:
shutdown -h now   立即关机
shutdown -h +10  10分钟后关机
shutdown -h 23:30    23:30关机
shutdown -r now  立即重启
poweroff  立即关机
reboot  立即重启

归档、压缩
zip  new.zip myfile  把myfile压缩为new.zip
unzip myzip.zip 解压缩
gzip myfile  压缩(gzip格式)
if
tar 用以归档文件,不是压缩命令
tar -cvf  归档后的文件(out.tar)  要归档的文件(夹)(/etc)
tar -xvf myfile.tar  解开归档的文件
tar -cvzf backup.tar.gz /etc
-z 参数将归档后的归档文件进行gizp压缩以减少大小
tar -zxvf file.tar.gz  解压缩归档压缩的文件

查找locate
locate  快速打找文件和文件夹,此命令需要建立数据库,此命令是从数据库中查找文件,速度比较快,每天更新一次,只能通过关键字查找
locate  keyword
updatedb 更新数据库
 
find 高级查找文件(夹)
find 查找位置 查找参数
查找位置:. 表示当前目录  / 全部文件
find  / -name *.conf  查找文件名为.conf格式的
find . -perm 777  -perm表示权限 为777的文件
find . -type d   文件类型为d (文件夹)
find . -name "a*" -exec ls -l {} \;   -exec 表示执行,将找到的结果传给ls -l执行, 除了ls -l其他的都是固定格式
find 的查找条件 -name  名字  -perm权限  -user属于某个用户  -group属于某个组  - ctime 基于时间 -type类型 -size 基于文件大小





VIM
VIM 命令直接启动
VIM 是VI的增强版,特别是支持GUI
vim 目标文件的路径
如果目标文件存在,则打开,如果不存在则创建

VIM 三种模式 :
命令模式(常规模式)
启动后,默认的模式,任何模式按esc回到命令模式,可以完成选择、复制、粘贴、撤销等操作
插入模式
命令模式中按“i",可进入,在插入模式可以输入编辑文本内容,esc可以返回命令模式
ex模式
命令模式中按 “:”可进入,进入ex模式,光标会移动到底部,在这里可以保存修改或退出VIM
 
 
命令模式:
i  在光标前插入文本
o 在当前行的下面插入新行
dd  删除整行
yy  将当前行的放入缓冲区(复制)
n+yy  将n行的内容放入缓冲区(复制n行)
p   将缓冲区中的文本放入光标后 (粘贴)
u  撤销上一个操作
r   替换当前字符
/   查找关键字
 
EX模式
:w  保存当前修改
:q  退出
:q!   强制退出,不保存修改
:x    保存并退出 相当于  :wq
:set number   显示行号(或 :set nu)
:!   系统命令  执行一个系统命令并显示结果
:sh   切换到命令行,使用ctrl+d 切换回vim









FDISK 分区工具
 
Linux 所有设备都被抽象为一个文件,保存为/dev目录下
硬盘设备名称一般hd[a-z]或sd[a-z]   ([a-z])为分区号,, 如hda,hdb,sda,sdb
IDE 设备为hd[a-z],SATA,SCSI,SAS, USB 设备为sd[a-z]
 
fdisk -l -h   查看硬盘信息(-h用单位表示 )
fdisk /dev/sda    对/dev/sda硬盘进行分区操作并进入分区界面
partprobe   让内核更新分区表
 
文件系统
 
操作系统通过文件系统管理文件及数据,磁盘或分区需要创建文件系统之后才能够为操作系统使用,创建文件系统的过程
又称之为格式化
没有文件系统的设备为裸(raw)设备
MKE2FS 用来创建文件系统
mke2fs -t ext3 /dev/sda2
参数:
-b blocksize  指定文件系统块大小
-c   建立文件系统时检查坏损块
-l label   指定卷标
-j   建立文件 系统日志
-t  文件类型
 
DUMPE2FS    查看分区的文件系统信息
dumpe2fs /dev/sda1
 
E2LABEL   为文件系统添加标签
 
e2label /dev/sda1 tool  将sda1的标签改变  tool
 
FSCK  检查差修复损坏的文件系统
fsck /dev/sda2
-y  不提示而直接修复
对于识别为文件的损坏数据(文件系统无记录),fsck会将该文件放入lost+found
系统启动时会对磁盘进行fsck 操作



文件系统挂载
 
磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用。windows会自动挂载,比如C盘,D盘
 
mount /dev/sdb1(要挂载的分区) /mnt(挂载点,可以是任务目录)
参数:
-t 指定文件系统的类型(默认是自动读取的)
-o 指定挂载的选项:
ro, rw  以只读或读写形式挂载,默认是rw
sync 代表不使用缓存,直接写入磁盘
async 使用缓存,默认是async
noatime 每次访问文件时不更新文件的访问时间
atime  更新文件的访问时间
remount  重新挂载文件系统
(多个选项用,分开)
mount -o remount, ro /dev/sdb1 /mnt  重新挂载并设置为只读
 
*mount -l  查看硬盘的挂载点
 
umount  卸载已挂载的文件系统,
umount /dev/sda3  =  umount /mnt
如果出现device is busy报错,表示文件系统正在被使用,无法卸载,
查看文件系统的进程
fuser -m /mnt
正在被使用的文件
lsof /mnt
 
自动挂载
配置文件/etc/fstab用来定义需要自动挂载的文件系统,文件中第一行代表一个挂载配置,格式如下:
/dev/sda3            /mnt   ext4          defaults    0 0
需要挂载的设备   挂载点   文件系统  挂载选项     dump,fsck相关选项
(mount -a命令会挂载所有fstab中定义的自动挂载项)



Linux 的帮助信息
命令加 -h 或 --help
ls --help   显示ls 的帮助信息
如果帮助信息左下角显示 ":" 表示可以查询 输入“/内容”
man + 命令 显示命令的帮助信息
-k  查找带关键字的所有命令

用户基础
使用linux时,需要以一个用户的身份登入,一个进程也需要以用户的身份运行,用户的权限可以限制使用者或进程可以使用、不可以使用哪些资源。
-每个用户拥有一个UserID,操作系统实际使用的是用户ID,而非用户名
-每一个用户属于一个主组,属于一个或多个附组
-每一个组拥有一个GroupID
-每一个进程以一个用户身份运行,并受该用户可访问的资源限制
系统中的每一个文件都有一个所属用户及组
 
用户ID为32位,从0开始,用户ID限制在60000以下:
用户分为三种:
-root 用户  (ID为0的用户为root用户)
-系统用户  (1-499)
-普通用户  (500以上)
*有些设备也有自己的ID,被当作用户
使用ID命令可以显示当前用户的信息
相关文件 :
-/etc/passwd    用户的信息
-  /etc/shadow   保存用户的密码
- /etc/group  保存组的信息
查看登录的用户:
-whoami   显示当前用户
-who   显示有哪些用户已经登录系统
-w 显示有哪些用户已经登录并在干什么
创建用户:
-useradd 用户名
这个命令执行的操作:
1、在/etc/passwd中添加用户信息
2、如果使用passwd,则将密码加密保存在/etc/shadow中
3、为用户建立新的家目录 /home/adduser
4、将/etc/skel中的文件复制到用户的家目录中     (里面有一些隐藏文件包括注销时运行的命令的文件和,登录时运行的命令的文件 ,可以在skel里手动建立一个文件之后所有用户的家目录都有这个文件 )
5、建立一个与用户用户名相同的组,新建用户默认属于这个组
修改用户信息:
-usermod 参数 username
参数:
-l 新用户名
-u 新userid
-d 用户家目录位置
-g  用户所属主组
-G   用户所属附属组
-L   锁定用户使其不能登录
-U    解除锁定
删除用户
userdel username   保留用户的家目录
userdel -r username    同时删除用户的家目录
创建,修改,删除组
groupadd groupname
groupmod -n newname oldname
groupmod -g newGid oldGid  组ID
groupdel groupname

文件权限
Linux中,每个文件拥有三种权限:
-r(读取)
-w (写入)
-x (执行)
对于目录用户必须有rx权限,否则不能浏览目录

Linux权限基于UGO,模型进行控制:
-U代表User,G代表Group,O代表Other
-每一个文件的权限基于UGO进行设置
-权限三个一组(rwx),对应UGO分别设置
-每一个文件拥有一个所属用户(U)和所属组(G),不属于该文件所属或组的使用O权限
 
ls -l 命令的信息(格式)
UGO权限   链接数量  所属用户 所属组 大小 时间 文件名

修改文件所属用户、组
-chown改变文件的所属用户:
chown 用户名  文件名
-R  (大写)递归修改目录下的所有文件
-chgrp在改变文件的所属组:
chgrp 组名 文件名
-R 同上
 
修改权限
chmod 模式 文件
(-R 可以递归修改)
-模式的模式:
u,g,o分别代表用户、组和其他
a可以代指ugo
+,-代表加入或删除对应权限
r,w,x代表三种权限
示例:
chmod u+rw chen
chmod g-x chen
chmod go+r chen
chmod a-x chen
 
支持数字表示权限:
-r = 4 (2^2)
-x = 2 (2^1)
-x = 1 (2^0)
使用数字表示权限时,每组权限分别为对应数字之和:
rw = 4 +2 = 6
rwx = 4+2+1 =7
r-x = 4+1 =5
chmod 660 chen == rw-rw----
chmod 775 chen == rwxrwxr-x


网络基本配置
linux中,网上以eth0,eth1命名,
lspci   查看PCI硬件信息
lsusb  查看usb硬件信息
ifconfig -a 查看所以网上接口信息
ifconfig -eth0 查看特定接口
ifup eth0 开启网卡
ifdown eth0  关闭网卡
setup  向导配置网络地址
 
网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0
DNS配置文件
/etc/resolv.conf
静态主机名配置文件
/etc/hosts
主机名配置文件
/etc/sysconfig/network
 
 
网络测试
网络连通性
ping 192.168.1.1
host www.baidu.com
dig www.baidu.com
显示路由表
ip route
追踪到达目标地址的网络路径
traceroute www.baidu.com
网络质量测试
mtr www.baidu.com
 
 
修改主机名
永久修改:
/etc/sysconfig/network     修改这个 文件
 
CentOS 7  配置IP 用
nmtui  命令


管道和重定向
命令行shell 的数据流有以下定义:
 
名称                  说明       编号            默认
STDIN           标准输入        0            键盘
STDOUT        标准输出       1             终端
STDERR         标准错误       2             终端
 
 
 
重定向: >   将STDOUT 重定向到文件(覆盖)  echo "abc" > outfile
>>  同上(追加)
2>   将STDERR重定向到文件(覆盖)
2>&1 将STDERR与STDOUT结合   报错和输出结果都会保存
<  重定向STDIN   grep abc < /etc/passwd   (在passwd里文本内查找abc)
管道:
|    将一个命令的STDOUT作为另一个命令的STDIN    ls -l | grep bingxing
 


Linux命令行文本处理工具
 
grep基于关键字搜索文本
grep ‘linuxcast‘  /etc/passwd
find / -user linuxcast | grep Video
-i  忽略大小写
-n  显示结果所在行
-v  输出不带关键字的行
-A4  输出结果所有行之后的4行
-b2  输出结果所在行之前的2行
 
cut 基于列处理文本
cut -d: -f3 /etc/passwd  只显示passwd里面用:分开的第三列
grep linuxcast /etc/passwd | cut -d: -f3
-d 指定分割字符(默认是tab)
-f 指定输出的列号
-c 基于字符进行切割   cut -c2-6  /etc/passwd 只显示第2到第6个字符
 
wc 文本统计
wc+文件名
-l 只统计行数
-w只统计单词
-c只统计节数
-m 只统计字符数
 
sort 文本排序
sort+文件名(非中文)
-r  倒序排序
-n 基于数字进行排序
-f  忽略大小写
-u 删除重复行
-tc  使用c作为分隔符分割为列进行排序
-kx   当进行基于指定字符分割为列时,指定对哪(x=?)个列排序
 
diff文本比较
diff linuxcast linuxcast.net
-i  忽略大小写
-b  忽略空数量的改变
-u  统一显示比较信息(一般用以生成patch)
diff -u linuxcast linuxcast-new > final.patch
 
tr 处理文本内容
tr -d ‘TMD‘ < linuxcast
tr ‘a-z‘ ‘A-Z‘ < linuxcast
 
sed 以搜索差替换文本(使用的是正则表达式)
sed ‘s/linux/unix/g‘  linuxcast     s: 搜索   g : 全部替换
sed ‘1,50s/linux/unix/g‘ linuxcast
sed -e ‘s/linux/unix/g‘ -e ‘s/nash/nash_su/g‘ linuxcast    加e可以同时进行多个替换
sed -f sededit linuxcast    sededit  可以是一个文件,内容是 ‘‘里的内容,不要每次都写‘‘里的内容


RPM安装
 
安装软件:     rpm -i software.rpm
卸载软件:  rpm -software
升级形式安装:  rpm -U software-new.rpm
rpm支持通过http,ftp协议安装软件
rm -ivh http://www.linuxcast.net/software.rpm
可以加入以下参数:
-v 显示相关信息
-h  显示进度条
rpm -qa  列出所有安装的rpm软件
rpm -qf filename  查询目标文件属于那个rpm包
rpm -qi  packagename 查询指定已安装rpm软件信息
rpm -ql packaname 查询指定已安装rpm软件包含的文件
rpm -qip software.rpm 查询rpm文件的信息
rpm -qlp software.rpm 查询rpm文件包含的文件
 
 
导入秘钥:
rpm --import rpm-gpg-key-centof-6
验证rpm文件:
rpm -K linuxcast--1.0-i-i386.rpm
验证已经安装的软件
rpm -V software

 

linux常用命令