Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。
开关机操作:shutdown、reboot、install、chsh、exit、last
文件与目录操作:file、cd、pwd、rmdir、cp、rm、mkdir、mv、ls、head、more、less、tail、od、cat
压缩与解压:.gz、.tar.gz、.bz2、.zip、.rar、.Z
其他操作:chattr、lsattr、sudo 、apt-get、date、cal
shutdown 关闭计算机
shutdown -t:在改变到其它运行级别之前,告诉init程序多久以后关机。
shutdown -k:并不真正关机,只是送警告信号给每位登录者。
shutdown -h:关机后关闭电源。
shutdown -c:cancel current process取消目前正在执行的关机程序。
shutdown -time:设定关机前的时间。shutdown -m: 将系统改为单用户模式。
reboot 重新启动计算机
reboot -n: 在重开机前不做将记忆体资料写回硬盘的动作。
reboot -w:并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
reboot -d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
reboot -i: 在重开机之前先把所有与网络相关的装置停止。
chsh 更改使用者shell设定
chsh -l:显示系统所有Shell类型。
chsh -v:显示Shell版本号。
一般缺省shell是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下:
Changing fihanging shell for cao Password:
New shell [/bin/bash]: /bin/tcsh
exit 退出系统
last 显示近期用户或终端的登录情况
last -n:指定输出记录的条数。
last -ffile:指定用文件file作为查询用的log文件。
last -t tty:只显示指定的虚拟控制台上登录情况。
last -h 节点:只显示指定的节点上的登录情况。
last -i IP:只显示指定的IP上登录的情况。
last -1:用IP来显示远端地址。
last -y:显示记录的年、月、日。
last -ID:知道查询的用户名。
Linux命令与Shell
所谓Shell,就是命令解释程序,它提供了程序设计接口,可以使用程序来编程。学习Shell对于Linux初学者理解Linux系统是非常重要的。 Linux系统的Shell作为操作系统的外壳,为用户提供了使用操作系统的接口。Shell是命令语言、命令解释程序及程序设计语言的统称,是用户和 Linux内核之间的接口程序。如果把Linux内核想象成一个球体的中心,Shell就是围绕内核的外层。当从Shell或其它程序向Linux传递命令时,内核会做出相应的反应。Shell在Linux系统的作用和MSDOS下的COMMAND.COM和Windows 95/98 的 explorer.exe相似。Shell虽然不是系统核心的一部分,只是系统核心的一个外延,但它能够调用系统内核的大部分功能。因此,可以说 Shell是Unux/Linux最重要的实用程序。
file 判断文件类型:
file -v:在标准输出后显示版本信息,并且退出。
file -z:探测压缩过的文件类型。
file -L:允许符合连接。
file -f name:从文件namefile中读取要分析的文件名列表。
pwd 显示当前所在目录
ls 显示目录内容
ls –a:显示包括隐藏文件在内的所有文件,Linux中文件名以“.”开头表示该文件是隐藏文件。
ls –r:反向排序
ls –u:以最后存取时间排序ls –t:以最后修改时间排序
ls –S:根据文件大小排序
ls –l :显示目录下所有文件夹或目录的权限,所有者,大小,修改时间。
ls –h:使用KB、MB、GB为单位显示;须以l格式显示(-lh)
cd 改变工作目录
cd .. :返回上一级目录
cd ~ :切换到当前目录的家目录
cd test :切换到当前目录下test文件夹内
cd - :将当前目录切换到上一个工作目录
mkdir 创建目录
mkdir test :在当前目录下建立名为“test”的目录
mkdir test1 test2 :在当前目录下建立名为test1和test2的目录
mkdir –p test3/abc :建立多级目录
rmdir 删除空目录,一个目录被删除之前必须是空的,不能删除非空目录。
rmdirtest1
cp 复制文件或目录复制文件
cp -u -v test1test4 :只有源文件较目的文件的修改时间新时,才复制文件
cp test1 test4 :将文件test1复制成文件test2
cp -i test1 test2 :采用交互方式将文件test1复制成文件test2
cp -f test1 test2 :将文件test1复制成test2,因为目的文件已经存在,所以指定使用强制复制的模式
cp -R dir1 dir2 :将目录dir1复制成目录dir2
cp -p a.txt tmp/ :复制时保留文件属性
cp -P /var/tmp/a.txt ./temp/ :复制时保留文件的目录结构
rm [选项] 文件
rm -f fname 忽略不存在的文件,从不给出提示。
rm -i fname 进行交互式删除
rm -r, fname 指示rm将参数中列出的全部目录和子目录均递归地删除。
rm -v fname 详细显示进行的步骤
例如:rm -i test1 将文件夹test1删除
mv 用来移动文件或者将文件改名,经常用来备份文件
mv [选项] 源文件或目录 目标文件或目录
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
例如:mv -i a.txt test3 将文件a.txt移动到test3下
mv a.txt b.txt 将文件a.txt更名为b.txt
head 显示开头或结尾某个数量的文字区块
head [参数]... [文件]
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数
例如: head -n 5 b.txt 显示b.txt中前五行
tail 显示指定文件末尾内容,不指定文件时,作为输入信息进行处理
tail[必要参数][选择参数][文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
例如:tail -n 5 b.txt 显示b.txt末尾5行
more 按页来查看文件的内容
常用参数:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
-c 从顶部清屏,然后显示
-l 忽略Ctrl+l(换页)字符
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
常用操作:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
less 随意浏览文件,可以向前和向后翻页
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
od 按不同进制显示文件
od [-A 地址进制] [-t 显示格式] 文件
A指定地址进制包括:
o 八进制(系统默认值)
d 十进制
x 十六进制
n 不打印位移值
-t指定数据的显示格式,主要参数有:
c ASCII字符或反斜杠序列(如\n)
d 有符号十进制数
f 浮点数
o 八进制(系统默认值)
u 无符号十进制数
x 十六进制数
例如:od -A x -t c b.txt 地址为十六进制,数据为ASCII格式显示
cat 从第一行开始显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示
用法:cat b.txt 显示b.txt的内容
cat >c.txt 创建新文件
cat b.txt c.txt >d.txt 将b.txt和c.txt合并到新文件中
tac 与cat相反,从最后一行开始显示
lsattr 显示文件属性
lsattr [参数] [文件或目录]
-a 显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".."。
-d 显示,目录名称,而非其内容。
-l 此参数目前没有任何作用。
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
chattr 改变文件属性
chattr[-R][+/-/=<属性>][文件或目录...]
属性:
a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防以外删除。
-R递归处理,将指定目录下的所有文件及子目录一并处理。
+<属性> 开启文件或目录的该项属性。
-<属性> 关闭文件或目录的该项属性。
=<属性> 指定文件或目录的该项属性。
用法:chattr +i /etc/resolv.conf 防止系统中某个关键文件被修改
sudo 提升权限来运行命令
sudo -b 会在后台运行命令
sudo -s 会运行以提升权限指定的外壳,为你提供#提示符
sudo su 会让你成为root用户,并装入你那些自定义的用户环境变量。
apt-get 自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统,一般需要sudo
用法:
sudo apt-getinstall vsftpd 安装 ftp
apt-get remove packagename 卸载一个已安装的软件包
apt-get clean 这个命令会把安装的软件的备份也删除,但不会影响软件的使用。
apt-get upgrade 更新任何已安装的软件包
apt-get dist-upgrade 将系统升级到新版本
date显示系统时间
date 显示系统当前时间
date -s20160414 将系统日期设置为20160414,并且时间为00:00:00
date -s18:00:00 设置具体时间,不会对日期做更改
date -s“18:00:00 2016-04-14″ 设置全部时间
cal显示公历(阳历)日历
cal-1 显示一个月的日历
cal-3 显示三个月的日历
.gz
gunzip FileName.gz 解压
gzip-d FileName.gz 解压
gzip FileName 压缩
.tar.gz 和 .tgz
tar zxvf FileName.tar.gz 解压
tar zcvf FileName.tar.gz DirName 压缩
.bz2
bzip2 -d FileName.bz2 解压
bunzip2 FileName.bz2 解压
bzip 2-z FileName 压缩
.tar.bz2
tar jxvf FileName.tar.bz2 解压
tar jcvf FileName.tar.bz2 DirName 压缩
.bz
bzip2 -d FileName.bz 解压
bunzip2 FileName.bz 解压
.tar.bz
tarjxvf FileName.tar.bz 解压
.Z
uncompress FileName.Z 解压
compress FileName 压缩
.tar.Z
tarZ xvf FileName.tar.Z解压
tarZ cvf FileName.tar.Z DirName 压缩
.zip
unzip FileName.zip 解压
zip FileName.zip DirName 压缩