美文网首页
linux小命令

linux小命令

作者: 赵一矛 | 来源:发表于2018-04-03 12:51 被阅读0次
基本文件和目录操作

日常的文件的操作有 文件的copy, move, rename, remove 等操作。
1)复制文件目录(复制指定目录下的全部文件到另一个目录中)
$ cp -r dir1 dir2(复制源目录为dir1, 目标目录为dir2, -r是递归把源目录下的目录递归的进行移动, dir2不存在的话自动创建)
$ cp -r dir1/* dir2(源目录/* 中*代表源目录下的文件和文件夹, dir2存在的情况下使用)
$ cp file1 file2

2)移动文件目录
$ mv dir1 Desktop/dir1

3)重命名文件目录
$ mv file1 file2
$ mv dir1 dir2

4)删除文件目录
$ rm file
$ rm -r dir

5)创建文件目录
$ mkdir dir
$ touch file
$ >file
$ vim file
编辑模式的操作
【i】 从目前光标所在处插入
【a】 从当前光标所在的下一个字符处开始插入
【A】 从光标所在行的最后一个字符处开始插入
【o】 英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入
【O】 英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入
替换模式
【r】 只会替换光标所在的那一个字符一次
【R】 会一直替换光标所在字符,直到按下[ESC]键为止
【[ESC]】 退出编辑模式回到一般模式
命令行模式
【:w】 保存文件
【:w!】 若文件为只读,强制保存文件
【:q】 离开vi
【:q!】 不保存强制离开vi
【:wq】 保存后离开
【:wq!】 强制保存后离开

6)查看文件内容
$ cat file # 适合比较短的文件
$ less file # 有快捷键,可以看比较长的文件
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页

7)查看文件类型 file
$ file file1
$ file dir1

8)查看文件大小
$ du -k file (-k以1024 bytes为单位)
$ du -m file (-m:多少字符)

9)文件打包(zip,tar,gzip,bzip2)
压缩
$ zip -r x.zip x/(-r表示递归打包包含子目录的全部内容)
解压缩
$ unzip x.zip

$tar -cvf dir1.tar. (在当前目录下压缩为dir1.tar压缩包)
$gzip dir1.tar (压缩为dir1.tar.gz文件)

$ tar -zxvf xxx.tar.gz (解压缩文件)
$ tar -zcvf xxx.tar.gz xxx/

$tar -cvf dir1.tar . (在当前目录下压缩为dir1.tar压缩包)
$bzip2 dir1.tar(压缩为dir1.tar.bz2文件)
$ tar -jxvf xxx.tar.bz2
$ tar -jcvf xxx.tar.bz2 xxx/

重定向
$cat file1 >file (将file1中的内容添加到file文件中)

$ cat file2 >file (file2中的内容添加到file文件中,但是file文件中以前的内容被覆盖)

$ cat file2 >> file (以前文件里的内容不会被覆盖)

$ cat file1 file2 >>file (将两个文件都输出到file文件中)

$ ls shit 2>output.txt (2为标准错误输出的文件描述符)

管道线
更多的时候,我们希望把前一个程序的输出作为后一个程序的输入来使用。
$ command1 | command2 |command3

举个例子

$ cat file.txt
d.txt
a.txt
c.html
b.txt
b.txt

查看file.txt文件的内容,接着去除内容里面重复的内容(使用uniq命令),只保留txt文件 (使用grep),然后按文件名字字母顺序排序,并输出到output.txt文件。
$cat file.txt|uniq |grep txt |sort >output.txt

权限
用户对文件通常会涉及"读","写", "执行"三种权限,对ls同一文件的权限控制,是对于所有者,组,其他用户。
$ ls -l a.txt
-rw-rw-r-- 1 peter peter 0 Aug 30 11:57 a.txt
-是文件类型的,表示普通文件。接下来的rw-是只所有者对文件是否具有读,写,执行的权限,r表示有读权限,w表示有写权限,-表示没有执行权限。接下来的rw-表示组的读写执行的权限,r--表示其他用户的权限。

对目录查看权限。
$ ls -ld mydir

修改文件的权限
chmod rw-rw-rw- a.txt (这个命令系统不认)
chmod 110110110 a.txt (这个命令系统也不认)
chmod 666 a.txt (成功给a.txt文件修改了权限)
所以文件的权限最后需要化为八进制表示。

同时我们也可以通过英文字符作为参数给文件赋予权限。
$ vim peter.sh
$ ./peter.sh (执行文件)
=>Permission denied.$ chmod +x peter.sh(赋予执行的权限)$ ./peter.sh`
=>hello peter

$chmod -x pter.sh (去除执行的权限)

其他形式的
$ chmod +w file
$ chmod -w file
$ chmod a+x file (a 所有用户)
$ chmod u+x file (u 文件的所有者)

进程
$man ps (报告系统当前的进程状态)

$ ps aux (查看系统当前的所有进程)
$ ps aux|less(内容太多,用less来做分页器,从开头查看)
root 28185 0.0 0.0 102964 1580 ? Ss 18:08 0:00 /sbin/lvmetad -f
第一个字段为那个用户执行这个进程 ,第二个PID就是我们要的进程号了。

$ ps aux|grep vim (查找vim进程)

$kill 2345 (杀死进程,2345为进程号)

后台执行

$ firefox & (启动firefox, 直接后台启动)

$firefox (前台启动,当前shell就会一直被占据)

如果想要程序在后台执行,先Ctrl-z将它挂起,然后
$bg
想要程序重新回到前台,就是当前的shell,
$ fg
可以用Ctrl-C 来关闭

kill进程
如果一个进程在shell的前台执行,可以直接用Ctrl-C来关闭
还可以用
$kill PID
$ killall program_name

如果程序杀不死,则可以用
$kill -9 PID强行杀死

相关文章

网友评论

      本文标题:linux小命令

      本文链接:https://www.haomeiwen.com/subject/ecvqhftx.html