Linux的基本命令



#目录与文件操作 pwd ls cd mkdir cp mv rm file
/*{{{*/
一.pwd 显示当前工作目录所在绝对路径(以/为起点表示的路径)
eg:pwd
#选项-P显示链接文件路径
二.ls 显示目录下文件及目录
可以带参数,指定目录或文件
可不带参数,显示当前目录

eg:查看主目录下workdir目录的内容(~代表用户主目录)
ls ~/workdir
ls

#A.选项 -a 显示所有文件,包括隐藏文件(以.开头的文件)
eg:(带参数:指定目录或文件)查看主目录下workdir目录下所有文件
ls -a /home/tim/workdir

eg:(不带参数)查看当前目录下所有文件及目录
ls -a

#B.选项 -l 显示文件或目录的属性信息,(仅解释文件大小,其它细节在文件系统部分解释)
eg:显示当前目录下文件及目录的属性信息
ls -l
eg:显示指定目录或文件的属性信息,注意可以带多个参数!
ls -l /home/tim examples.desktop

#C.选项 -h 以K,M,G为单位显示文件大小,与-l一起用。

注意:bash下通过alias命名了l,la,ll。效果请自行测试

注意:几个特别的目录 . .. / ~ -


三.cd 切换工作目录 关于文件系统的路径。绝对与相对

eg:不带选项和参数,返回当前用户的主目录.
cd回车

eg:切换到根目录下的home目录下
cd /home

eg:切换到上层目录
cd ..

eg:切换到前一个目录
cd -

eg:切换到上层目录的上层目录,从主目录切换到根目录.
cd ~
cd ../..

四.mkdir 新建空目录
eg:当前目录下创建目录dir
mkdir dir

eg:在/home/tim/workdir目录下创建目录dir
mkdir /home/tim/workdir/dir

#选项-p递归创建多层目录
eg:在~下创建dir1/dir2/dir3
mkdir ~/dir1/dir2/dir3 -p

五.cp 拷贝源文件或目录到目标文件或目录,可实现备份
eg:将共享目录下的文件拷贝到主目录下
cp /mnt/hgfs/share/jeffy-vim-v2.0.zip ~

eg:将主目录下的jeff-vim-v2.0.zip 备份为jeffy-vim-v2.0_bak.zip
cp jeff-vim-v2.0.zip jeffy-vim-v2.0_bak.zip

#选项-a拷贝整个目录内容
eg:将目录jeffy-vim-v2.0拷贝到Desktop目录下
cp jeffy-vim-v2.0 ~/Desktop -a

六.mv 移动源文件或目录到目标文件或目录,可实现重命名
eg:将主目录下的test.txt文件移动到共享目录下
vi test.txt
mv test.txt /mnt/hgfs/share

eg:将主目录下的Videos目录重命名为MyVideos
mv Videos MyVideo

七.rm 删除一个或多个文件或目录,物理删除,不可恢复。-rf
eg:删除在主目录下jeffy-vim-v2.0_bak.zip
rm jeffy-vim-v2.0_bak.zip

#选项-rf强制删除文件或目录
eg:删除主目录下的dir目录
rm -rf dir

八.file 查看文件类型
eg:查看主目录下test.c文件类型
file test.c

eg:查看主目录下shared文件类型
file shared

/*}}}*/

练习:
/*{{{*/
如果/mnt/hgfs/目录下没有可用目录,将共享目录换为~/Videos
cp
2.将用户主目录下的passwd文件备份为passwd-bak
cp
3.在用户主目录下新建目录test_dir
mkdir
4.将passwd-bak移动到test_dir目录下
mv
5.将test_dir目录下的passwd-bak文件改名为passwd

6.将test_dir目录拷贝到你的共享目录下

7.将共享目录下的test_dir目录改名为dir

8.删除以上产生的文件
/*}}}*/

#编辑与查看文件内容 touch vi/vim cat more/less head/tail sort uniq diff
/*{{{*/

九.touch 可用于创建新文件
eg:在主目录下创建文件test_touch
touch test_touch

十.vi / vim 新建或编辑
使用小技巧:
vi file +行号 打开文件时光标直接定位到指定行
vi file1 file2 -d 比较两个文件的差异

十一.cat 在标准输出(显示器)显示文件内容
eg:显示主目录下的文件test.c
cat test.c

#选项-n 显示文件内容时显示行号
eg:显示主目录下的文件test.c同时显示行号
cat -n test.c

十二.more/less 分屏显示文件
cat 显示文件时一次性全在屏幕上显示出来了,查看前面内容不太方便,
more/less命令能解决这个问题
使用异同点
eg:分屏显示文件内容
more /etc/passwd
less /etc/passwd

相同操作方法
d键下翻页,b键上翻页
回车下翻行,空格下翻页

不同操作:less支持上下键,pagedown和pageup键上下翻行翻页
显示区别,more显示当前显示内容百分比。

退出按q键。

十三.head/tail 显示文件开头/结尾
如果只想查看文件开头或最后几行内容,可使用head/tail命令,默认显示10行
eg:查看/etc/passwd文件开头10内容
head /etc/passwd
eg:查看/etc/passwd文件结尾处10内容
tail /etc/passwd

#选项-num指定显示内容的行数
eg:查看/etc/passwd文件开头20行内容
head -20 /etc/passwd
tail 用法类似
head与tail常与管道结合使用


十四.sort 按行排序从小到大显示文件内容,注意排序结果不会影响原文件
显示结果与语系相关,为了以ASCII码值为结果使用LANG=C统一
可以通过echo $LANG查看
eg:排序查看文件内容
vi test.c
每行写入字符,数字,符号
sort test.c

#选项-r从大到小的顺序排序显示
eg:逆序排序查看文件内容
sort -r test.c

#选项-n对数字排序时以数值结果排序,而不是ASCII码值排序
eg:按数字数值排序
vi test
每行写入数字
sort test
sort -n test
显示区别

#选项-o指定排序结果输出到文件
eg:将test.c 排序结果写回test.c
sort test.c -o test.c

十五.uniq显示文件内容,去掉相邻重复的行
eg:显示时重复相邻行只显示一行。
uniq test

十六、diff按行比较两个文件的不同,将两具文件中不同内容显示出来
常用于程序新旧版本对比
eg:显示sort1.c与sort2.c不同处
diff sort1.c sort2.c
显示结果不直观,建议用vim sort1.c sort2.c -d代替,直观对比
显示结果中a表示追加,d表示删除,c表示更改,
<表示属于第一个文件,>表示属于第二个文件.

/*}}}*/

#查找与搜索 find grep
/*{{{*/
十七、find在当前目录下递归查找文件显示路径,即包括子目录
用法:find -name filename
或find -name 'filename'
或find -name "filename"
eg:在当前目录(主目录)下查找test.c文件
find -name test.c

用法:find 路径 -name filename
eg:在workdir目录下查找test.c文件
find ~/workdir -name test.c

十八、grep在文件中查找字符串
eg:在/etc/passwd 文件中查找"tim"
grep "tim" /etc/passwd

#选项-n显示字符串所在行号
eg:在/etc/passwd文件中查找"tim",并显示所在行号
grep "tim" /etc/passwd

eg:在当前目录下所有文件中搜索"main"(不包括子目录)
grep "main" *

eg:在当前目录下所有文件中搜索"main"(包括子目录)
grep "main" * -nR

#搜索字符串的匹配方式 ^ $
eg:查找所有含有tim的字符串
将/etc/passwd 拷贝到主录目下
cp /etc/passwd ~
grep "tim" passwd

eg:查找以tim开头的字符串
grep "^tim" passwd

eg:搜索以tim结尾的字符串
grep "tim$" passwd

eg:搜索出只含"tim"的字符串
grep "^tim$" passwd

/*}}}*/

#打包目录与压缩文件,(结合ppt 3 66页) zip unzip gzip gunzip bzip2 bunzip2 tar
/*{{{*/

十九、zip对多个文件进行压缩,生成.zip后缀名压缩文件,unzip进行解压缩
!用法:zip 压缩包名.zip 文件1 文件2 ……
eg:将test.c test1.c test2.c 压缩到test.zip文件中
zip test.zip test.c test1.c test2.c

eg:将test.zip解压到当前目录下
unzip test.zip

二十、gzip对一个文件进行普通压缩,不能对目录压缩
eg:将test.c压缩成test.c.gz
gzip test.c

二十一、gunzip对gz格式压缩文件解压
eg:将test.c.gz解压
gunzip test.c.gz

二十二、bzip2对一个文件进行高比例压缩,不能对目录压缩
eg:将test.c文件压缩为test.c.bz2
bzip2 test.c

二十三、bunzip2 对bz2格式压缩文件进行解压
eg:将test.c.bz2解压
bunzip2 test.c.bz2

二十四、tar将多个文件或目录打包
#常用选项
-c 创建
-x 释放

-z 处理gzip压缩的tar包
-j 处理bzip2压缩的tar包

-v 显示详细信息
-f 指定打包或解包的文件,需放在选项最后

!用法
打包
eg:将jeffy-vim-v2.0打包生成jeffy-vim-v2.0.tar
tar -cvf jeffy-vim-v2.0.tar jeffy-vim-v2.0

解包
eg:将jeffy-vim-v2.0.tar解包
tar -xvf jeffy-vim-v2.0.tar

先打包,再使用gzip bzip2命令压缩
tar -cvf jeffy-vim-v2.0.tar jeffy-vim-v2.0
gzip jeffy-vim-v2.0.tar <= 生成jeffy-vim-v2.0.tar.gz
或bzip2 jeffy-vim-v2.0.tar <= 生成jeffy-vim-v2.0.tar.bz2

直接打包并压缩
以gzip压缩 -czvf,后缀.tar.gz 或.tgz
tar -czvf jeffy-vim-v2.0.tar.gz jeffy-vim-v2.0
tar -czvf jeffy-vim-v2.0.tgz jeffy-vim-v2.0

以bzip2压缩 -cjvf ,后缀.tar.bz2 或.tbz2
tar -cjvf jeffy-vim-v2.0.tar.bz2 jeffy-vim-v2.0
tar -cjvf jeffy-vim-v2.0.tbz2 jeffy-vim-v2.0

解压缩并解包 -xvf,对gzip与bzip2处理的文件均有效
tar -xvf jeffy-vim-v2.0.tar.bz2
tar -xvf jeffy-vim-v2.0.tbz2
tar -xvf jeffy-vim-v2.0.tgz

/*}}}*/

#其它命令 clear date echo which whereis man
/*{{{*/

二十五、clear 清屏
快捷键 ctrl + l

二十六、date 查看日期及时间
eg:date

二十七、echo显示一行文本,常用于显示环境变量值
eg:显示字符串hello world!
echo "hello world!"
echo hello world!
注意区别,加""原样输出,否则算多个字符串输出

eg:显示环境变是LANG的值,注意查看环境变量需要加$
echo $LANG

二十八、which 查找命令所在路径
eg:查找ls 所在路径
which ls

二十九、whereis 查找命令所在路径,源,man手册文件所在位置
whereis ls

三十、man 查帮助手册
eg:查ASCII码表
man ascii

eg:查whereis 命令帮助页
man whereis

eg:查函数strcmp

/*}}}*/

#系统维护命令 sudo su passwd shutdown
/*{{{*/
三十一、sudo以超级用户身份执行一条命令
eg:查看系统下存放账号密码文件内容,需超级用户权限
$cat /etc/shadow
$cat: /etc/shadow:Permission denied

$sudo cat /etc/shadow
$[sudo]password for tim: <=输入tim用户的密码,注意密码不会回显!

三十二、su临时切换用户
eg:切换到root用户
su
Passwd: <=输入root用户密码!
exit可退出切换的用户

eg:切换到root用户,并切换到root主目录/root
su -
Passwd: <=输入root用户密码

注意如果第一次切换root用户可能会提示密码错误

三十三、修改密码passwd
eg:修改tim用户密码
sudo passwd tim <=加sudo 是可以设置短密码

eg:修改root密码
sudo passwd root

三十四、shutdown关机命令
eg:5分钟后关机
sudo shutdown +5

eg:立即关机
sudo shutdown -h now

eg:立即重启
sudo shutdown -r now
sudo reboot

/*}}}*/

#用户管理 adduser deluser
/*{{{*/
三十五、adduser添加用户,会要求输入新用户密码,全名,
并在/home目录下创建新用户主目录
eg:sudo adduser max <=输入当前用户密码

三十六、deluser删除用户
eg:删除用户max
sudo deluser max

#选项--remove-home,删除用户同时删除该用户主目录
eg:sudo deluser --remove-home max
/*}}}*/

剩下命令
du df mount umount ln "ls -l" chmod chown chgrp ps kill

相关内容