Linux系统不像windows系统那样图形界面做的那么美观漂亮,点击图标即可,Linux下都是使用命令行的形式来和系统进行交互(当然也有图形界面,只是做的不是那么完善),使用Linux命令相比而言还是比较方便的。我们知道windows使用的命令行的方式是DOS命令,Linux下是使用的命令则是shell命令,每一条命令都会被shell命令行解释器解析执行的。
以下将带领大家学习下Linux下常用的一些基本命令,有了这些命令我们就可以打开Linux的大门去和它进行交流。当然我们查看命令的详细的内容可以通过man+命令的方式获取有关命令的帮助文档,关于man命令的使用如下:
(序):
man man -> 查阅man的帮助文档
man 1 命令 ->查阅命令的相关文档 eg:man 1 ls
man 2 系统调用函数接口 eg:man 2 open
man 3 库函数调用接口 eg:man 3 fopen
这几个是最常用的,其他的用到的时候可以查阅。
以下为man 加上数字的含义:
(1)ls
作用:列出目录的内容
【1】ls +相对路径
ls 或 ls . -> 列出当前目录下的内容
ls .. -> 列出上一级目录下的内容
ls ./dir 或 ls dir -> 列出当前目录下的dir目录下的内容
【2】ls + 相对路径
ls /home/linux/dir 或 ls ~/dir ->列出/home/linux/dir 目录下的内容
【3】ls -l 文件名/路径 <---> ll 文件名/路径 ->查看文件的详细信息(eg:ls -l file)
ls -li 文件名/路径 ->查看文件的详细信息(包括inode号)
【4】ls -R --->以目录树的形式显示目录内容
(2)cd
作用:切换路径
【1】cd +相对路径
cd 或 cd ~ -> 切换到家目录(eg:进入/home/linux下)
cd / -> 切换到根目录下
cd - -> 切换到上一次路径
cd .. -> 切换到上一级路径
【2】cd + 相对路径
cd /home/linux/dir 或 ls ~/dir ->切换到/home/linux/dir 目录下
(3)touch
作用:创建一个文件,更新文件的时间戳
touch file ->如果file这个文件不存在,创建file这个文件;如果file这个文件存在,更行file的时间戳
touch file1 file2 file3 -> 创建file1、file2、file3(创建多个文件)
(4)mkdir
作用:创建一个目录
mkdir dir ->创建一个目录
mkdir dir1/dir2/dir3 -p ->递归创建多级目录
(5)rm
作用:删除一个文件或者目录
rm file -> 删除文件
rm dir -r -> 递归删除目录
(6)mv
作用:移动或者重命名
mv src_file / src_dir dst_file / dst_dir -> 移动(源和目的都存在)或者重命名(目的不存在)
(7)cp
作用:拷贝文件或者目录
cp src_dir dst_dir ->把原来的目录拷贝一份 eg: cp ../dir/file dir/ 将上一级目录下的dir/file拷贝di下
cp src_dir dst_dir -a ->把原来的目录拷贝一份(所有)
cp src_dir dst_dir -r ->把原来的目录拷贝一份(递归),用于拷贝目录
(8)cat tac more
作用:在终端显示文件内容(不打开文件)
cat file ->查看file内容
tac file ->反向输入一个文件的内容
more file ->显示一个文件一个屏的内容(用于文件内容比较多的情况,按 空格 查看下一屏,q退出)
(9)通配符
匹配一个字符 ?
匹配任意长度的字符串 * eg: *.txt
匹配指定的字符1和3 [13]
eg:[13].txt ---1.txt 2.txt
匹配一个指定范围的单个字符 [1-3] eg:[13].txt
---1.txt 2.txt 3.txt
匹配除了指定字符外的字符 [^1]
(10)重定向
改变输入和输出的方向,这就叫做重定向。
1-- 输出重定向,新建模式。
ls > test.txt 文件不存在创建,存在清零
2-- 输出重定向,追加模式
ls
>> test.txt 文件不存在创建,存在追加到末尾
3-- 输入重定向
<
wc < test.txt
4-- 出错重定向
2> , 2>> (2表示标准出错)
&> , &>>
(11)echo
作用:显示一行文本
echo "hello" -> 终端输出字符串(带引号原样输出,不带引号有多个空格只会保留一个)
echo -n "hello" -> 终端输出字符串(不换行)
echo -e "hello\nworld" ->遇到\n换行
echo "hello" >> file ->重定向字符串到文件中(追加方式)
(12) diff
作用:比较两个文件的异同
diff file1
file2 -> 比较file1和file2的内容
(13)df
作用: 用于查看磁盘空间的使用情况。
df -aTh a:所有 T:类型 h: K,M,G(人类可识别)识别)
(14)du
作用:查看文件的大小
du -ah
file 测所有的文件的大小
(15)wc
作用:测试文件的行数、字符数、字节数
wc -l file.txt测试行数
wc -w file.txt 测试单词的个数
wc -m file.txt 测试的是字符数
wc -c file.txt 测试的是字节数
(16)管道
作用:管道道可以把一系列命令连接起来,第一个命令的输出可以第二个命令的输入...
| 表示 管道
ls /usr/bin | wc -w
(17)命令置换
作用:命令替换是将一个命令的输出作为另一个命令的参数。
ls `pwd`(为esc下的 ``)
(18)进程相关命令
ps 查看进程信息 // process snapshot 进程快照
ps ajx 进程详细信息
ps aux 进程更加详细信息
top 动态显示系统中的进程
shift + < shift + > 进行翻页操作 q 退出
kill 给进程发送一个信号
kill -l 列出当前系统支持的信号种类
kill -9 pid 杀死pid这个进程
pstree 树状形式,显示进程的信息
./a.out & 就是将一个进程放到后台运行。
(19)查找字符串 grep
find
1-- 知道内容,找文件(按字符串查找文件路径)
格式:grep [选项] “描述” [路径]
grep "关键词" ./* -R <==> grep "内容" 路径 递归
(./ 为当前路径 * 所有文件)
eg:grep "main" ./* -R
2-- 知道文件名字,找路径(按名称查找文件路径)
格式:find [路径] [选项] [描述]
find ./* -name 文件名 eg:find ./* -name copy.c
eg:find . -type d/f -name filename
find . -type d/f -mtime -10 //最后更改时间 十天内
find
. -type d/f -atime -10 //访问时间
(20)date cal
作用:显示日期/日历
sudo date -s hh:mm:ss 修改时间
sudo date -s mm/dd/year 修改年月日
修改时区:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cal 显示日历
(21)网络配置
1-- ifconfig 查看网络信息
sudo ifconfig eth0 down 关闭网卡
sudo ifconfig eth0 up 开启网卡
2-- ping 测试网络是否畅通
ping 域名
ping ip地址
对方开着防火墙, 那么 ping 不通
3-- nslookup 域名解析
nslookup 网址
nslookup ip地址
(22)uname -r 查看内核版本号
uname
-a 查看linux内核等的一些信息(详细)
uname -n 查看计算机名称
(23)软件包的安装
【1】本地安装:
sudo dpkg -i .*deb 安装软件包(当前路径下的deb包)
sudo dpkg -r 软件名 卸载软件包(不删除配置文件)
sudo dpkg -P 软件名 卸载软件包(删除配置文件)
sudo dpkg -s 软件名 查看软件包安装状态
sudo dpkg -L 软件名 查看软件包的安装列表
【2】在线安装:
sudo vi /etc/apt/source.list 打开此文件是镜像源(服务器网站)
sudo vi /var/cache/apt/archieves 打开存放的是在线下载的软件包(*.deb)
sudo vi /lib/apt/lists 打开引索文件
sudo apt-get install 软件名 安装软件包
sudo apt-get updata 更新软件源
sudo apt-get remove--purge 软件名 删除文件包括配置文件
sudo apt-get remove purge 软件名
删除文件不包括配置文件sudo apt-get clean 删除缓冲中的软件包
sudo apt-get cheak 检测软件包的依赖关系
sudo apt-cache policy 软件包 查看软件包安装状态
sudo apt-cache show 软件包 查看软件包信息
sudo apt-cache depend 软件包 查看软件的依赖关系
sudo apt-cache redepends 软件包 查看软件的被依赖关系
(24)mkfifo
管道名称 创建管道文件
(25)ipcs
ipcs -m 查看当前系统上存在的共享内存
ipcrm -m shmid 删除当前系统上指定的共享内存
ipcs -s
查看当前系统上存在信号量集合
ipcrm -s semid 删除当前系统上指定id的信号量集合
(26)sudo shutdown -r(重启)/-h(关机) now(立刻)/+30(30分钟后)/12:00 关机和重启
sudo reboot ---->重启
(27)文件的压缩
1-- gzip 压缩 , 没有归档功能, 文件夹不能被压缩
gzip filename // 生成 filename.gz
gunzip *.gz // 解压
2-- bzip2 压缩, 没有归档功能
bzip2 filename
bunzip2 *.bz2
3-- zip 压缩, 压缩文件和文件夹
zip filename.zip filelist
unzip *.zip
4-- tar 归档并且压缩
tar -cjf *.tar.bz2 filelist //压缩
tar -xvf *.tar.bz2 // 解压
tar -czf *.tar.gz filelist
tar -xvf *.tar.gz // 解压
(28) od
od -c file 以可读文本的形式在终端打开
(29) head
tail
head 显示文件开头部分的内容, 默认显示前10行
tail 显示文件末尾部分的内容,默认显示后10行
(30)ln
1-- 硬链接(两个文件的inode号相同,是同一个存储区域,修改一个另一个也改变)
并没有创建新的文件,所以不占新的空间,主要是用来对文件进行备份使用的。
ln filename linkfile 不允许对目录硬链接
ls -lhi
ls -li (查看inode号)
2-- 软链接(产生了新文件,开辟新的存储空间,应该用绝对路径,否则不能把链接文件放在其他目录)
ln -s filename linkname
创建了新的文件,类似于windows 下面快捷方式 支持目录操作
eg: ln -s `pwd`/file link(绝对路径)
(31)用户管理
1-- /etc/passwd 用户相关信息 sudo+vi+/etc/passwd打开
linux:x:1000:1000:linux::/home/linux:/bin/bash
用户名:密码:uid:gid:用户信息:家目录:shell
2-- /etc/group 组的相关信息
linux:x:1000:
组名:密码:组ID:成员列表,彼此用逗号隔开
3-- /etc/shadow 密码具体信息
【1】添加用户
sudo adduser u1
会在/home下建立以用户名为目录名的家目录
【2】删除用户
sudo deluser --remove-home u1
【3】将不同用户添加到同一个组中:
usermod -g 组名 用户名 // usermod -g u1 u2
【4】删除组:
delgroup groupname
(32)file
作用:查看文件信息
file+文件名
(33)su
作用: 切换用户
su 用户名
(34)sudo
作用:获得超级用户权限
eg:sudo vi /ect/network/interface
(35)history
作用:查看历史记录信息
history 查看历史命令
history >> test.txt
1-- 临时性
直接修改 HISTSIZE=1000
echo $HISTSIZE
2-- 永久性
vi .bashrc s
HISTSIZE=1500
source .bashrc 重启生效
(36)pwd
作用: 获得当前终端所在的路径
(37)whereis
作用:查看命令位置
whereis 命令名
eg:whereis ls
(38)chmod
作用:修改权限
chmod 权限掩码 文件
eg :chmod 777 file.sh
chmod u+x file.sh
(39)time
作用:查看命令/程序运行时间
time ls
(40)clear
作用:清屏
(41)bc
作用:进入数学运算中
(42)sed
作用:替换一个字符串等
eg: sed "s#src_str#dst_str/g" file.txt > file.txt.tmp
mv file.txt.tmp file.txt.tmp
说到这里就把Linux的基本的常用命令说完了,当然Linux下的命令有很多,作为Linux系统管理员来说,这些命令是远远不够的,有许多我们没有见过的命令,在此就不在赘述。可能还有许多命令加上其他的参数之后还有其他的功能,对此可以通过查阅man手册来学习,对于其中不足指出望提出宝贵意见。