1.ls命令(list缩写)
通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)、查看目录信息等等
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
ls -lhrt 按易读方式按时间反序排序,并显示文件详细信息
ls -lrS 按大小反序显示文件详细信息
ls -l t* 列出当前目录中所有以“t”开头的目录的详细内容
ls | sed "s:^:`pwd`/:" 列出文件绝对路径(不包含隐藏文件)
find $pwd -maxdepth 1 | xargs ls -ld 列出文件绝对路径(包含隐藏文件)
2.cd命令(change directory缩写)
命令语法:cd [目录名]。说明:切换当前目录至dirName
cd / 进入要目录
cd ~ 进入"家"目录
cd - 进入上一次工作路径
cd !$ 把上个命令的参数作为cd参数使用
3.pwd命令(print working directory缩写)
查看当前工作目录路径
pwd 查看当前路径
pwd -P 查看软链接的实际路径
4.mkdir命令(make directory缩写)
创建文件夹
mkdir t 当前工作目录下创建名为t的文件夹
mkdir -p /tmp/test/t1/t 在tmp目录下创建路径为test/t1/t的目录,若不存在,则创建
5.rm命令(remove缩写)
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状: rm [选项] 文件…
rm -i *.log 删除任何.log文件;删除前逐一询问确认
rm -rf test 删除test子目录及子目录中所有档案删除,并且不用一一确认
rm -- -f* 删除以-f开头的文件
6.rmdir命令(remove directory缩写)
从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。注意:不能删除非空目录
rmdir -p parent/child/child11 当parent子目录被删除后使它也成为空目录的话,则顺便一并删除
7.mv命令(move缩写)
移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。 当第二个参数为目录时,可将多个文件以空格分隔作为第一参数,移动多个文件到参数2指定的目录中
mv test.log test1.txt 将文件test.log重命名为test1.txt
mv log1.txt log2.txt log3.txt /test3 将文件log1.txt,log2.txt,log3.txt移动到根的test3目录中
mv -i log1.txt log2.txt 将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
mv * ../ 移动当前文件夹下的所有文件到上一级目录
8.cp命令(copy缩写)
将源文件复制至目标文件,或将多个源文件复制至目标目录。注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加-i参数,则不会提示,而是直接覆盖!
cp -ai a.txt test 复制a.txt到test目录下,保持原文件时间,如果原文件存在提示是否覆盖
cp -s a.txt link_a.txt 为a.txt建议一个链接(快捷方式)
9.cat命令(concatenate)
cat主要有三大功能:
- 一次显示整个文件:cat filename
- 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
- 将几个文件合并为一个文件:cat file1 file2 > file
cat -n log2012.log log2013.log 把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
cat -b log2012.log log2013.log log.log 把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
10.more命令
功能类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示
->>命令参数:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
->>常用操作命令:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
例子:
more +3 text.txt more +3 text.txt
ls -l | more -5 在所列出文件目录详细信息,借助管道使每次显示5行
11.less命令
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
-i 忽略搜索时的大小写
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-s 显示连续空行为一行
/字符串: 向下搜索“字符串”的功能
? 字符串:向上搜索“字符串”的功能
n: 重复前一个搜索(与 / 或 ? 有关)
N: 向重复前一个搜索(与 / 或 ? 有关)
-x <数字> 将“tab”键显示为规定的数字空格
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
待补充,详情见参考... ...
面试常见问题
知道哪些linux指令?
(1)文件与目录操作
-
ls命令:查看linux文件夹中文件信息
ls -l:以长列表的形式列出文件和目录的详细信息
ls -Sr:以文件大小进行排序(文件小的在前)
ls -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
cd命令:切换目录 [目录名]。补充:绝对路径: 如/etc/init.d,当前目录和上层目录: ./ ../,主目录: ~/
pwd命令:查看当前的工作目录(显示当前路径)
-
du命令:查看文件或者目录所占的内存
- du -h :查看一个文件夹中所有文件的大小(包含子目录中的文件)
mkdir命令:mkdir [目录名],也可同时创建两个目录
rm命令:删除一个目录中文件或者目录(注:如果没有使用- r选项,则rm不会删除目录)
mv命令:移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)
-
cp命令:复制文件或者目录,还可以把多个文件一次性地复制到一个目录下
cp -a file1 file2 :连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir :把文件file1、file2、file3复制到目录dir中
-
In命令:建立链接
软链接(快捷方式):ln -s slink source
硬链接(物理地址): ln link source
find命令:搜索文件/目录
(2)文件查看与处理
cat命令:查看文件内容
more命令:查看一个长文件的内容
-
head/tail命令
head/tail - n: 查看文件的前n行/后n行
tail -f /log/msg : 查看实时添加到文件中的内容(日志)
-
grep 命令:从输入文件中查找匹配到给定模式列表的行,文本搜索命令。
grep code hello.txt:查找文件中的关键字
grep ^code hello.txt:查找文件中以code开头的内容
sed命令:文件中删除替换元素
sort命令:合并两个文件
awk命令:将一行按照字段处理,默认分隔符为空格或tab
(3)网络与进程管理
-
ps命令:将某个进程显示出来,补充:其中UID:进程拥有者,PID:进程ID,PPID:上级父程序的ID
ps -a:显示所有用户的所有进程
ps --ppid 进程名:子进程查父进程;ptree -p 进程名:父进程查子进程
ps -ef|grep xxx(如java) :显示进程pid(程序id),例显示所有java进程
ps -aux | grep xxx(-aux显示所有状态)
top命令:实时显示进程的状态
-
kill命令:使用kill命令来终结进程。
先使用ps命令找到进程id,使用kill -9 进程号,彻底杀死某个进程
kill -s 进程的名字
-
netstat 命令:检查网络是否连通
netstat -anp|grep 端口号: 查看端口号是否被占用(状态为LISTEN表示被占用)。
netstat -nap|grep 7779:知道进程id7779,查看其占用的端口
ifconfig命令:命令查看 ip 地址及接口信息(网络接口属性)
-
route命令:
- route -n:查看路由表
host命令:解析主机名,hostname命令:查看主机名
nslookup命令:查询dns记录,查看域名解析是否正常
sar命令: 查看网卡流量:sar -n DEV 1 2 命令后面1 2 意思是:每一秒钟取1次值,取2次。DEV显示网络接口信息
iostat命令: 查看IO情况 iostat -d -k 2 参数-d表示,显示设备(磁盘)使用状态; 2表示,数据显示每隔2秒刷新一次。
(4)打包与解压
-
tar命令:
tar -cvf xxx.tar file:创建非压缩的tar包
tar -tf xxx.tar :查看tar包中的内容
tar –xvf xxx.tar: 解压 tar包
zip/unzip xxx.zip: 压缩/解压zip
gzip -9 文件名:最大程度压缩
(5)其他
系统服务命令:server,systemctl等
关机重启注销命令:shutdown,reboot,logout等
rpm包管理命令:rpm -qa:已经安装的rpm包;rpm -ivh xxx.rpm:安装rpm包;rpm -e xxx:写在rpm包
yum包管理命令:yum list/update:升级/显示所有安装包等
ps:rpm与yum之间的关系
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
ps:linux通配符
“?”可替代单个字符。
“*”可替代任意多个字符。
巨人的肩膀: