代码改变世界

从零开始学Linux[一]:基本命令:系统信息、目录、文件、文件编辑

2016-01-21 09:22  牛仔裤的夏天  阅读(406)  评论(0编辑  收藏  举报
摘要:linux基础学习:系统信息、目录、文件查找、文件操作、查看文件内容及大小、文件内容检索、软链接、VIM使用。

现在Linux的使用非常普遍。对于一个小白来说,满屏幕的字母,看起来就是一头雾水~   目前由于工作需要学习hadoop,所以会linux是最最基础的,好吧,一点一点开始学习吧~

1.系统信息&命令帮助  

uname -a 当前操作系统所有有用信息
uname -r 当前操作系统内核版本
lsb_release -a 列出所有版本信息

whereis find 寻找find命令手册
whereis -b find 寻找find文件命令存在位置
which ls 查看ls存在哪个目录
which which 查看which存在哪个目录
who 当前有多少用户登录在系统
whoami 显示我是谁

man find 获取find的帮助信息 cd /usr/share/man
whatis ls 查询ls命令执行什么功能
apropos search 用apropos查找search相关的命令

2.目录及目录权限修改

pwd 显示当前目录
cd 更改当前目录为用户的主目录
sudo mkdir work 创建目录
mkdir -p test100/mydir 在test100不存在的情况下,创建,并创建子目录mydir (-p创建多级目录)
sudo chgrp workgroup work (chgrp为更改一个目录的所属用户组)
sudo chmod g+rwx work 修改权限 g代表用户组 r读 w写 x可执行
sudo chmod o-rwx work 撤销其他用户对该目录的读写可执行 o代表other
sudo chown lewis work 将work目录的属组改为lewis

3.文件查找

ls 列出所有文件
ls -lrt 列出所有文件按照时间排序
ls -F 文件加上特殊标志,区分不同种类文件
ls -a 显示当前目录所有隐藏文件
ls -l 显示文件的各种属性 vdir
ls m* 以m开头的文件
ls m??? 以m开头后边有三个字母的文件。
ls m*[od] 以m开头,以o或者d结束的文件
ls g*[m-p] 以g开头,以m n o p结束的文件
find ./ -name *bash* 当前目录中寻找名称包含bash的文件
find /etc -name init.d -type d -print 在etc目录中寻找名为init.d而且文件类型是目录的文件。
find /usr/bin/ -type f -atime +100 -print 在/usr/bin/ 查找最近一百天没有使用过的命令 (atime表示最后一次使用)
find ./ -type f -mtime -1 -print 寻找最近一天之内修改过的文件
locate bash 查找系统中包含bash的文件
sudo updatedb 强制刷新locate目录数据库

4.文件操作及文件权限修改

touch hello 创建一个0字节的文件,如果touch一个已经存在的文件,那么就会改变这个文件最后的打开时间戳
ls -l hello 显示文件的创建时间 (继续touch hello看到访问时间更新)
mv test test1 移动test到test1中
mv -i hello mvtest/ 移动文件时若有同名文件,提示是否覆盖
mv -b hello mvtest/ 避免文件被覆盖,后跟波浪线的是源文件
mv hello~ hello.bakup 重命名文件
cp pse2 test2 复制pse2文件到test2中
cp -r mvtest/ test3 将mvtest及其子目录复制到test3中
rm hello 删除hello文件
rmdir test1 删除test1目录
rm -i test 删除test文件时给个提示
rm -r test100删除test100及其所有子目录

drwxr-xr-x 2 westnorth westnorth 4096 2009-04-23 05:19 Music菜单
d表示该文件为目录
rwx表示目录属主的权限
r-x表示该用户所在组的其他用户的权限
r-x表示所有其他用户对该目录的权限
2 该文件或目录硬连接的数目
westnorth 该文件由哪个用户创建
westnorth 该文件属于哪个组
4096 linux目录文件大小
2009-04-23 05:19 文件创建日期

sudo chown lewis mvhello 更改mvhello文件的属主
sudo chown -R lewis test3 将test3及其所有子目录所有者都更改为lewis

chmod u+x test 给test的属主用户增加可执行权限
chmod a+x test 给所有用户增加x权限
chmod a-x test 给所有用户取消x权限
chmod ug=rw,o=r test 给用户和组赋予读写权限,其他用户读权限
chmod o=u test 将用户的创建者的权限赋予其他所有用户

ln -s pse2 symbolpse2 创建pse2的符号链接文件 ls -F查看创建结果
ln -s dirtest/ sysmdir创建dirtest目录的符号链接文件
ln test2 hardsym 创建test2文件的硬链接文件 硬链接:将文件进行拷贝

ls > currentdir 将当前目录重定向到目录currentdir cat curentdir [输出重定向]
pwd > currentdir cat curentdir
pwd >>currentdir
cat 从键盘输入 Control+D 退出
cat < currentdir 将输入重定向到currentdir
cat << EOF 输入文字 当输入ECOF时编辑退出
cat << END >hello
ls | grep update 管道命令|
command1 | command2 把第一个命令command1执行的结果作为command2的输入传给command2

5.查看文件内容

cat .bashrc 一次性显示
cat -n .bashrc 显示行号
more .bashrc 显示一页,按空格键可向下继续显示文件
head -n 5 .bashrc 显示bashrc文件的前五行
tail -n 5 .bashrc 显示文件后五行
less .bashrc 与more命令类似,所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。
grep PS1 .bashrc 文件中寻找包含PS1的文本行
cat a.txt b.txt |wc -l 计算文件a,b共有多少行

6.查看文件大小

du常用的选项:
  -h:以人类可读的方式显示
  -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
  -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
  -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
  --apparent-size:显示目录或文件自身的大小
  -l :统计硬链接占用磁盘空间的大小
  -L:统计符号链接所指向的文件占用的磁盘空间大小

du -sh : 查看当前目录总共占的容量,而不单独列出各子项占用的容量。
du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。
du -h --max-depth=1 |sort :查看当前目录下所有一级子目录文件夹大小 并排序

du -ch abc* :列出以abc开头的文件的大小和总大小

8.文件内容检索及字段处理

1.awk

awk -F ','   '$2~/1/'  youfile #以逗号分割,输出第二列的值为1的数据

awk -F ','   '{print $2}' youfile #以逗号分割,输出第二列的值

awk -F ','   '{print $1"-"$2}'  youfile #输出$1-$2格式的数据

awk -F '[:/.]' '{print $4}' 以 : / . 分割,输出第四列 

2.sort

sort a.txt 从首字符向后依次按ASCII码值进行比较最后按照升序输出

sort -u a.txt  在升序输出行中去除重复行

sort -r  a.txt  降序排序

sort -n a.txt  以数值排序

sort -n -k2 -t:  a.txt  以第二列升序按数值排序

3.comm

comm -1 -3 file1 file2 两个文件之间的比较,求交集,差集等:-1 不显示在第一个文件出现的内容 ; -2:不显示在第二个文件中出现的内容; -3:不显示同时在两个文件中都出现的内容

4.uniq

uniq -c a.txt  在行首显示该行重复出现的次数 (在发出 uniq 命令之前,请使用 sort 命令使所有重复行相邻)

5.sed

sed -i 's/"//g' youfile   #去掉文件中的所有双引号

8.软链接及其拷贝

ln -s 源文件 目标文件  #为某一个文件在另外一个位置建立一个同步的链接

9.VIM的两种模式及常用编辑指令

VIM 分插入模式命令模式
i进入插入模式
[插入模式下]输入信息 :
hello world! 
Monday
Tuesday
Thrusday
Friday
Saturday
Sunday
按esc,输入:w weeb 将内容保存为week文件
[命令模式下]:使用jk作为向下,向上键,移动光标,一行的任意位置输入o,在该行下方添加新行,输入完毕,执行:wq保存

命令模式下的操作有:

a:向当前光标所在的字母后面插入文本
A:向当前行末尾插入文本
o:向当前行之后添加新行
O:向当前行之前添加新行
H:向左移动
L:向右移动
J:向下移动
K:向上移动
^:移动到行首(shift+6)
$:移动到行尾(shift+4)
G:移动到文件尾
Ctrl+F:向下翻页
Ctrl+B:向上翻页
/hello:查找文本中的hello位置,并光标移动到该位置