linux 命令学习

dpkg  
安装文件

alias
别名

http://zhidao.baidu.com/link?url=dmNPtLrj7_JgYkeHIv5L2FCcLSRjVnGLUieWx5sGlpKr54Zoe3J9d4i7EAkVe3yPOarOqKojiL2DXWacd2OXGBRzQe5FBwJaUNH0dKorRJ_
locate whereis find type
参数 -ls  就是 显示详细信息,用户名,权限,路径,更改日期
locate:
使用前  先sudo updatedb 
再locate
如 locate hostst
type:
看这个 命令是buildin 还是 下载的
如type cd 
find:
整个目录下
find -name hostst*
在当前目录下 find hoststo* -ls


1、
ls:
ls 最基本的
ls -a
ls -all
ls -l  大小,权限,所有者
ls -t  time 
ls -1  一行一个
ls -R 显示子目录
ls -R -1  == ls -1R
ls 3*  列出3开头的,*为通配符
ls -r 相反顺序
ls -1rt
ls -l * |grep "^-"|wc -l ---文件个数  
ls -l * |grep "^d"|wc -l    ---目录个数
ls | sed "s:^:`pwd`/:"   在ls中列出文件的绝对路径,或者直接pwd即可

2、
cd
cd / 进入系统根目录
pwd 查看当前目录
cd ..  退后一层
cd  进入用户主目录
cd ~  进入用户主目录
cd /opt/soft  跳转到制定目录,从根目录开始加/
cd -   进入上一个进入 的目录
cd !$  把上个命令的参数作为cd参数使用。 


3、
pwd
pwd 查看”当前工作目录“的完整路径
pwd -P  显示出实际路径,而非使用连接(link)路径;
pwd -L
当前目录被删除了,而pwd命令仍然显示那个目录


4、
mkdir
1用来创建指定的名称的目录
2创建目录的用户在当前目录中具有写权限
3目录名不能重复
mkdir test1  当当前目录创建test1这个目录
ll = ls -all
mkdir -p test2/tst  如果test2不存在,创建test2再创建tst,常用于创建一次多个目录
mkdir -m 设定权限
如mkdir -m 777 tst2
mkdir -v tst
显示创建信息,如显示 created directory '....'
mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}}
一个命令创建项目的目录结构
显示
mkdir: 已创建目录 “scf”
mkdir: 已创建目录 “scf/lib”
mkdir: 已创建目录 “scf/bin”
mkdir: 已创建目录 “scf/doc”
mkdir: 已创建目录 “scf/doc/info”
mkdir: 已创建目录 “scf/doc/product”


5、
rm
删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
-f, --force    忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R,
--recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。
-v
--verbose    详细显示进行的步骤
--help     显示此帮助信息并退出
--version  输出版本信息并退出
rm file1 直接删除
rm -f file1 直接删除
rm -i *.log  删除前 逐一确认
rm -r test1  这个目录下的都删除,可能交互
rm -rf test1  直接删除 ,不交互
rm -- -f 删除以-f 开头的文件


6、
rmdir
1删除空目录
2必须是空目录
3必须具有对父目录的写权限。
- p
递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。 

-v, --verbose  显示指令执行过程 

实例:

rmdir tst 
rmdir -p tst/prot  如果tst中prot为空,且tst 中只有prot,则都删除了


7、
mv
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
-b :若需覆盖文件,则覆盖前先行备份。 
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t  :
--target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
实例:
mv -参数 源文件 目标文件
mv 1.py 2.py  把1.py改名字为 2.py
mv 1.py tst  把1.py 移到tst中
mv 1.py 2.py 22.py tst  把三个文件都移动过去
也可用mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt 
mv -i 1.py 22.c 如果22.c已经存在,会问是否覆盖,如果没有-i,则覆盖了
cat 22.c 可以查看文件里面内容
mv -f 2.c 1.py  如果有 直接覆盖。如果没有,改名字。
mv tst1 tst2 如果目录tst2不存在,改名字,如果存在 移动到tst2中去
mv *../   把当前文件夹下所有文件 移到上一级目录
mv test3/*.txt test5  子目录文件移动
mv log1.txt -b log2.txt  移动前 先备份




8、
cp 
将源文件复制至目标文件,或将多个源文件复制至目标目录。
-a, --archive    等于-dR --preserve=all
    --backup[=CONTROL    为每个已存在的目标文件创建备份
-b                类似--backup 但不接受参数
   --copy-contents        在递归处理是复制特殊文件内容
-d                等于--no-dereference --preserve=links
-f, --force        如果目标文件无法打开则将其移除并重试(当 -n 选项
                    存在时则不需再选此项)
-i, --interactive        覆盖前询问(使前面的 -n 选项失效)
-H                跟随源文件中的命令行符号链接
-l, --link            链接文件而不复制
-L, --dereference   总是跟随符号链接
-n, --no-clobber   不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference   不跟随源文件中的符号链接
-p                等于--preserve=模式,所有权,时间戳
    --preserve[=属性列表   保持指定的属性(默认:模式,所有权,时间戳),如果
               可能保持附加属性:环境、链接、xattr 等
-R, -r, --recursive  复制目录及目录内的所有项目
实例:
cp 1.py test21
复制单个文件到目标目录,文件在目标文件中不存在
cp -a test1 tst2  复制整个目录 如果tst2不存在,则创建tst2,如果存在,则复制整个目录到tst2中
cp -s log.log log_link.log  复制的 log.log 建立一个链接 log_link.log
链接的颜色 为浅蓝色


9、
touch
用来修改文件时间戳,或者新建一个不存在的文件。
-a   或--time=atime或--time=access或--time=use  只更改存取时间。
-c   或--no-create  不建立任何文档。
-d  使用指定的日期时间,而非现在的时间。
-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m   或--time=mtime或--time=modify  只更改变动时间。
-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间,而非现在的时间。
实例:
touch  1.py 2.py  创建不存在的文件,如果文件存在则没反应
touch -r log.log log2012.log 把log2012.log 时间改成log.log的时间
touch -t 201211200720 1.py 修改时间


10、
cat
功能
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:cat file1 file2 > file
-A, --show-all           等价于 -vET
-b, --number-nonblank    对非空输出行编号
-e                       等价于 -vE
-E, --show-ends          在每行结束处显示 $
-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行 
-t                       与 -vT 等价
-T, --show-tabs          将跳格字符显示为 ^I
-u                       (被忽略)
-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
实例:
cat -n 22.c 221.c  将文件内容加上行号后显示
cat -n 22.c
cat -b log2012.log log2013.log log.log
把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
cat -n log2012.log > log.log 
把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里 
cat >log.txt<<EOF
将终端信息存入 log.txt 并以EOF结束
tac log.txt 反向显示 ,cat 反过来 为tac

11、
nl
计算计算机中文件的行数
nl -b
nl -b a file 都列出行号
nl -b t file 空行不列出
nl -n 
nl -n rz file  行号加0,(默认6位)
nl -w   行号占用的位数

nl -b a 1.py
nl -n rz 1.py
nl -b a -n rz -w 3 1.py


12、
more
显示文件内容
按页 显示 ,与 cat不同
按空格是 显示下一页,按换行是 显示下一行,按 b键往回一页


参数有:
+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 1.py  直接显示
more +3 .py 从第三行开始显示
more +/day3 1.py 第一个出现day3 的地方开始显示,并从该行前两行开始显示
more -5 1.py 一次显示 5行
ls -l|more -5


13、
less
搜索功能,pagedown up功能


参数


-b <缓冲区大小> 设置缓冲区的大小
-e  当文件显示结束后,自动离开
-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g  只标志最后搜索的关键词
-i  忽略搜索时的大小写
-m  显示类似more命令的百分比
-N  显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q  不使用警告音
-s  显示连续空行为一行
-S  行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b  向后翻一页
d  向后翻半页
h  显示帮助界面
Q  退出less 命令
u  向前滚动半页
y  向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]:   向上翻动一页


实例
less 1.py
ps -ef|less 
history|less
less 1.py 2.py  浏览多个文件
输出n 切换到第二个,输入p 切换到第一个
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令 
j - 向前移动一行
k - 向后移动一行


14、
head 
显示文件开头
参数
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示文件前n个字节
-n<行数> 显示的行数


head -n 5 1.py  
head -c 30 1.py  显示文件前30个字节
head -n -6 2.py  除了最后n行外的内容
head -c -30 1.py 显示除了最后30个字节的内容


15、
tail 
查看日志文件,会随着日志刷新而变化(-f)
显示末尾内容
tail -n 5 1.py  显示最后5行
tail -f test.log 循环查看文件内容
tail -n +5 1.py  从第五行开始查看文件


16、
      which  查看可执行文件的位置。
       whereis 查看文件的位置。 
       locate   配合数据库查看文件位置。
       find   实际搜寻硬盘查询文件名称。
which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的

which lsmod


17、
whereis
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。 
语法
whereis [-bmsu] [BMS 目录名 -f ] 文件名


18、
locate
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行。
locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)
不加参数
查找和pwd相关的所有文件
locate pwd
搜索etc目录下所有以sh开头的文件 
locate /etc/sh
搜索etc目录下,所有以m开头的文件
locate /etc/m


19、
find 
功能太强大,跳过




23
linux的目录结构
http://www.cnblogs.com/peida/archive/2012/11/21/2780075.html


24
文件结构


















































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值