http://blog.csdn.net/pipisorry/article/details/39854265

查看用户的信息

pika:~$id pika
uid=1000(pika) gid=1000(pika) groups=1000(pika),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare),125(docker)

文件夹与路径

cd:变换目弽
pwd:显示弼前目弽
mkdir:建立一个新的文件夹

-m, --mode=模式。设定权限<模式> (相似 chmod),而不是 rwxrwxrwx 减 umask
  -p, --parents  能够是一个路径名称。此时若路径中的某些文件夹尚不存在,加上此选项后,系统将自己主动建立好那些尚不存在的文件夹,即一次能够建立多个文件夹; 
  -v, --verbose  每次创建新文件夹都显示信息
rmdir:删除一个空的文件夹

切换文件夹命令cd

cd [文件夹名] :切换当前文件夹至dirName (Change the current directory to DIR) 
1. cd / 进入系统根文件夹 
2. cd .. 返回上一级文件夹 
3. cd ~ 或cd 当前用户主文件夹 
(注意:“当前用户主文件夹”和“系统根文件夹”是两个不同的概念) 

4. cd - 返回进入此文件夹之前所在的文件夹

.         代表此层文件夹
.. 代表上一层文件夹
- 代表前一个工作文件夹
~ 代表“眼下使用者身份”所在的主文件夹
~account 代表 account 这个使用者的主文件夹(account是个帐号名称)

皮皮blog

文件与文件夹管理

删除与移动: rm, mv

rm -rf dir #删除文件夹下全部文件

rm -rf删除不了文件夹

#rm -rf 推荐系统1/
rm: cannot remove ‘推荐系统1/’: Directory not empty

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" width="440" height="81" />

在删除某个文件夹时,若有进程往该文件夹写入数据,则须要先停止该进程的服务(或kill掉该进程),所以我们的一些Shell代码在卸载或删除文件夹时就存在失败的可能。

[最暴力的 rm -rf 命令竟然删除文件夹失败了。为什么?]

只是更可能是文件系统出错了(lz就是,可能是由于之前删除未完毕时取消了吧):

Apparently there was a corruption in the filesystem that was preventing me from deleting the directory. Here are the steps I performed. Your mileage may vary...
Boot into archlinux live CD.
btrfsck --repair /dev/sda1
mount -t btrfs /dev/sda1 /mnt
rm -Rf /mnt/__active/home/$USER/.config/chromium~
umount /mnt
reboot
Warning: There are risks in performing the btrfsck --repair command. I suggest backing up any essential data prior to running that command. Read the link provided by rebootl above for more information on the risks.

这种话,最好开机时进行disk检查。如windows开机时设置检查就能够检查出错误。这样就能够删除这个文件夹了。

[

id=185824">[Solved] rm: cannot remove DIRECTORY: Directory not empty]

[cannot delete file with rm -rf]

mv

mv [-fiu] source destination

mv [options] source1 source2 source3 .... directory

选项与參数:
-f :force 强制的意思,假设目标文件已经存在。不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时。就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比較新,才会更新 (update)

文件拷贝和备份cp

cp [-adfilprsu] 来源文件(source) 目标文件(destination)

如sudo cp a a.$(date +%Y-%m-%d)

cp [options] source1 source2 source3 .... directory

选项与參数:

-a  :相当于 -dr --preserve=all 的意思。至于 dr 请參考下列说明;(经常使用)
-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身;
-f :为强制(force)的意思,若目标文件已经存在且无法打开,则移除后再尝试一次;
-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(经常使用)
-l :进行硬式链接(hard link)的链接文件创建,而非拷贝文件本身;
-p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份经常使用);
-r :递回持续复制。用于文件夹的复制行为;(经常使用)
-s :复制成为符号链接文件 (symbolic link)。亦即“捷径”文件;
-u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制。
--preserve=all :除了 -p 的权限相关參数外,还增加 SELinux 的属性, links, xattr 等也复制了。 最后须要注意的。假设来源文件有两个以上,则最后一个目的文件一定要是“文件夹”才行!

RSync实现文件备份同步

rsync -aXS /var/lib/docker/.  DIR

-a, --archive 归档模式。表示以递归方式传输文件。并保持全部文件属性

[linux下rsync命令具体整理]

[RSync实现文件备份同步]

取得文件的文件名称与文件夹名

basename /etc/sysconfig/network
network     获取最后的文件名称。

dirname /etc/sysconfig/network
/etc/sysconfig      获取的变成文件夹名了

也能够在脚本中运行着用../../$(basename $DIR)

皮皮blog

文件内容查阅

基本指令

  • cat 由第一行開始显示文件内容
  • tac 从最后一行開始显示,能够看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 相似,可是比 more 更好的是,他能够往前翻页!
  • head 仅仅看头几行
  • tail 仅仅看尾巴几行
  • od 以二进制的方式读取文件内容!

cat 由第一行開始显示文件内容

cat (concatenate)
选项与參数:
-A  :相当于 -vET 的整合选项。可列出一些特殊字符而不是空白而已。
-b  :列出行号,仅针对非空白行做行号显示。空白行不标行号。
-E  :将结尾的断行字符 $ 显示出来;
-n  :打印出行号。连同空白行也会有行号。与 -b 的选项不同;
-T  :将 [tab] 按键以 ^I 显示出来。
-v  :列出一些看不出来的特殊字符

Note: linux中的不可见字符有:^I表示一个tab符。$表示一个回车符,^M$表示windows下的回车换行符。

同一时候查看文件头10行和尾10行

cat file| (head && tail)

[How to read first and last line from cat output?]

vim 使用注意事项

查看文件类型和编码file

$ file -i 50万条.csv
50万条.csv: text/plain; charset=iso-8859-1
pipi@pipicmp:~/files/DATASETS/深圳一卡通数据$ file -i 50万条1.csv

50万条1.csv: text/plain; charset=utf-8

语系编码转换iconv

iconv选项
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码
-l, --list 列举全部已知的字符集
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息

递归转换(包含子文件夹)
find default -type d -exec mkdir -p utf/{} \;
find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;

[linux-利用iconv批量转换GBK文件到UTF-8编码方法]

DOS 与 Linux 的断行字符

Note: Unix系统里,每行结尾仅仅有"<换行>"。即"\n"。Windows系统里面。每行结尾是"<回车><换行>",即"\r\n";Mac系统里。每行结尾是"<回车>"。一个直接后果是。Unix/Mac系统下的文件在Windows里打开的话。全部文字会变成一行。而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

要安装:sudo apt-get install -y dos2unix

$ dos2unix [-kn] file [newfile]
$ unix2dos [-kn] file [newfile]
选项与參数:
-k :保留该文件原本的 mtime 时间格式 (不更新文件上次内容经过修订的时间)
-n :保留原本的旧文件。将转换后的内容输出到新文件。如: dos2unix -n old new

将 man_db.conf 转成 Linux 断行字符。并保留旧文件,新文件放于 man_db.conf.linux

$ dos2unix -k -n man_db.conf man_db.conf.linux

打开文件的默认命令

打开全部文件方法:
    在Ubuntu下,当须要打开其它格式文件时,咱们通常做法是进入到文件所在的文件夹。双击打开,非常影响效率。其实,能够通过命令xdg-open打开这些格式文件,甚至是网页,像打开文件一样简单。

xdg-open会选择合适的程序打开指定文件。跟双击打开效果一样。

$ xdg-open filename &
$ xdg-open ***.mp3
$ xdg-open http://baidu.com
具体操作例如以下:
xdg-open { file | URL }
xdg-open { --help | --manual | --version }
通过快捷键Ctrl+Alt+T能够打开shell,F11能够全屏显示(Alt+F9最小化窗体,Alt+F10最大化/恢复窗体),再辅予xdg-open命令,极大降低了鼠标操作,也大大提升了效率。

打开  .doc .docx .xls .xlsx .ppt .pptx
libreoffice filename &

打开pdf文件
evince filename.pdf &

Note: 忘了打&能够 Ctrl+z,然后打bg回车;文件名称中含空格要打成'\ '

创建新文件命令touch

touch myproject/settings/{__init.py,dev.py,prod.py,test.py}

Note:{...}能够创建多个文件

皮皮blog

命令与文件的查询

在 Linux 以下也有相当优异的搜寻指令!

通常 find 不非经常常使用的。由于速度慢之外。 也非常操硬盘!一般我们都是先使用 whereis 或者是 locate 来检查。假设真的找不到了。才以 find 来搜寻!

为什么呢?由于 whereis 仅仅找系统中某些特定文件夹以下的文件而已。locate 则是利用数据库来搜寻文件名称。当然两者就相当的高速。 而且没有实际的搜寻硬盘内的文件系统状态

which (寻找“可运行文件”)

# which [-a] command
-a :将全部由 PATH 文件夹中能够找到的指令均列出,而不止第一个被找到的指令名称

whereis (由一些特定的文件夹中寻找文件文件名称)

# whereis [-bmsu] 文件或文件夹名
选项与參数:
-l :能够列出 whereis 会去查询的几个主要文件夹而已
-b :仅仅找 binary 格式的文件
-m :仅仅找在说明文档 manual 路径下的文件
-s :仅仅找 source 来源文件
-u :搜寻不在上述三个项目当中的其它特殊文件
# whereis passwd # 全部的文件名称通通列出来!
# whereis -m passwd # 仅仅有在 man 里面的文件名称才抓出来!

locate / updatedb

# locate [-ir] keyword
选项与參数:
-i :忽略大写和小写的差异。
-c :不输出文件名称。仅计算找到的文件数量
-l :仅输出几行的意思。比如输出五行则是 -l 5
-S :输出 locate 所使用的数据库文件的相关信息,包含该数据库纪录的文件/文件夹数量等
-r :后面可接正則表達式的显示方式

find文件查找命令

[linux find命令]

皮皮blog

文件与文件夹的默认权限与隐藏

Linux文件属性

在你以root的身份登入Linux之后,下达ls -al 看看。会看究竟下的几个咚咚:

[root@www ~]# ls -al

total 156
drwxr-x--- 4 root root 4096 Sep 8 14:06 .
drwxr-xr-x 23 root root 4096 Sep 8 14:21 ..
-rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg
-rw------- 1 root root 199 Sep 8 17:14 .bash_history
-rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout
-rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile
-rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc
-rw-r--r-- 1 root root 100 Jan 6 2007 .cshrc
drwx------ 3 root root 4096 Sep 5 10:37 .gconf <=范例说明处
drwx------ 2 root root 4096 Sep 5 14:09 .gconfd
-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log <=范例说明处
-rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog
[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ]
[ 权限 ][连结][拥有者][群组][文件容量][ 改动日期 ][ 檔名 ]

  • 第一个字符代表这个文件是『文件夹、文件或链接文件等等』:

    • 当为[ d ]则是文件夹。比如上表档名为『.gconf』的那一行;
    • 当为[ - ]则是文件,比如上表档名为『install.log』那一行。
    • 若是[ l ]则表示为连结档(link file)。
    • 若是[ b ]则表示为装置文件中面的可供储存的接口设备(可随机存取装置);
    • 若是[ c ]则表示为装置文件中面的串行端口设备。比如键盘、鼠标(一次性读取装置)。
  • 接下来的字符中,以三个为一组,且均为『rwx』的三个參数的组合。当中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可运行(execute)。要注意的是,这三个权限的位置不会改变,假设没有权限。就会出现减号[ - ]而已。
    • 第一组为『文件拥有者的权限』。以『install.log』那个文件为例,该文件的拥有者能够读写。但不可运行;
    • 第二组为『同群组的权限』;

改变文件属性与权限

chgrp :改变文件所属群组

chown :改变文件拥有者

chmod :改变文件的权限, SUID, SGID, SBIT等等的特性

Note: chgrp, chown等指令可能都须要使用root的身份才干够处理。而且不能通过-R来改变软链接文件夹下全部文件权限,一定要用实际文件夹。

chown

[root@www ~]# chown [-R] 账号名称 文件或文件夹
[root@www ~]# chown [-R] 账号名称:组名 文件或文件夹
选项与參数:
-R : 进行递归(recursive)的持续变更,亦即连同次文件夹下的全部文件都变更

Note:用户必须是已经存在系统中的账号,也就是在/etc/passwd这个文件中有纪录的username称才干改变。

比如复制行为(cp)会复制运行者的属性与权限,所以复制的文件还是属于root所拥有(这里假设root是之前的owner)。如此一来,即使你将文件拿给bin这个使用者了,那他仍然无法改动的(看属性/权限就知道了吧)。所以你就必须要将这个文件的拥有者与群组改动一下。

范例

pika:~$sudo chown -R pika:pika /usr/local/hadoop-2.6.4

将install.log的拥有者改为bin这个账号:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

将install.log的拥有者与群组改回为root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

chmod

数字类型改变文件权限

文件的权限字符为:『-rwxrwxrwx』,这九个权限是三个三个一组的。当中。我们能够使用数字来代表各个权限,各权限的分数对比表例如以下:

r:4           w:2           x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是须要累加的,比如当权限为:[-rwxrwx---] 分数则是:

owner = rwx = 4+2+1 = 7      group = rwx = 4+2+1 = 7       others= --- = 0+0+0 = 0

# chmod [-R] xyz 文件或文件夹
选项与參数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。

-R : 进行递归(recursive)的持续变更,亦即连同次文件夹下的全部文件都会变更

符号类型改变文件权限

我们能够藉由u, g, o来代表三种身份(1)user (2)group (3)others的权限!此外。 a 则代表 all 亦即全部的身份!

那么读写的权限就能够写成r, w, x!

# chmod  u=rwx,go=rx  .bashrc
# 注意喔!

那个 u=rwx,go=rx 是连在一起的。中间并没有不论什么空格!
[root@www ~]# ls -al .bashrc
-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc

权限mask

权限mask的设置採用数字式的。相同第一个数字表示全部者的权限mask,第二个数字表示群组的权限mask,第三个数字表示其它用户的权限mask

假设umask=000,就表示不屏蔽不论什么用户的不论什么权限,即全部用户具有读、写和运行权限,再比如fmask=033,就表示文档全部者具有读、写和运行权限,而群组和其它用户仅仅具有读取的权限。

[LINUX UMASK具体解释]

windows分区权限产生的问题

[linux系统挂载windows分区错误]

皮皮blog

from: http://blog.csdn.net/pipisorry/article/details/39854265

ref:

linux:文件及文件夹管理的更多相关文章

  1. Linux命令(14)文件和文件夹权限管理:chmod

    linux文件和文件夹权限简介: chmod命令用于改变linux系统文件或目录的访问权限.用它控制文件或目录的访问权限. Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方 ...

  2. Linux温习(三)Linux文件和文件夹管理

    关于Linux文件夹的几个常见概念 路径 对文件位置信息的描写叙述机制.是指从树型文件夹中的某个文件夹层次到其内某个文件的一条通路.分为相对路径和绝对路径: 工作文件夹 登入系统后.用户始终处于某个文 ...

  3. linux 常用命令-文件、文件夹管理

    1. 创建文件夹: mkdir dirName 删除文件夹: rm -rf * 删除当前目录下的所有文件以及文件夹(非交互式) rm -r  --recursive 递归式删除所删除目录以及子目录(有 ...

  4. Linux基础_3_文件/文件夹权限管理

    注:权限遮罩码: 控制用户创建文件和文件夹的默认安全设置,文件默认权限为666-umask的值,文件夹默认权限为777-umask的值. root默认0022,普通用户默认0002. 文件的默认权限不 ...

  5. Linux下查看文件和文件夹大小

     当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力.    du可以查看文件及文件夹的大小. ...

  6. 【转】Linux下查看文件和文件夹大小

    当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力.    du可以查看文件及文件夹的大小. ...

  7. Linux下查看文件和文件夹大小(转)

    觉得挺有用的,就转到了自己的博客里,方便以后查询: 转自:http://www.cnblogs.com/benio/archive/2010/10/13/1849946.html 当磁盘大小超过标准时 ...

  8. Linux下查看文件和文件夹大小的df和du命令

        转自:http://www.yayu.org/look.php?id=162 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比 ...

  9. 【Linux/Ubuntu学习 14】Linux下查看文件和文件夹大小

    当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力.    du可以查看文件及文件夹的大小. ...

随机推荐

  1. Fix: Windows Script Host access is disabled on this machine

    If you receive this Windows Script Host access is disabled on this machine, Contact your administrat ...

  2. Linux下Shell元字符的释义

    Linux下shell的巧妙应用,对系统的运维很有四两拨千斤的功效! Shell元字符 注意: () 在当前shell的子shell进程运行命令 {}在当前shell进程运行命令

  3. NE555

    Turn-off time less than 2μsMax. operating frequency greater than 500kHzTemperature stability of 0.00 ...

  4. Heroku第三方服务接入指南(二)

    上文我们讲了第三方服务.Heroku.用户三者的关系,这一篇进入正题,了解第三方厂商(下文简称厂商)怎样为Heroku开发服务.这里仅仅做简介,了解heroku大致是怎么做的.假设你的平台.希望接入第 ...

  5. oracle 、mysql、 sql server使用记录

    oracle .mysql. sql server使用记录 mysql常用命令: mysqld --启动mysql数据库 show databases; -- 查看数据库 use database; ...

  6. iOS App转让流程详情教程篇

    最近对公司旗下两款app进行转让,正好记一下操作流程: 1.登录iTunes发布网站,找到app,查看App信息下方有个[转让 App] 按钮. 2.点进去,是如下界面,里面包含是否满足转让条件,理论 ...

  7. svn备份与还原_脚本_(dump命令)

    今天备份svn, 能保证好用就行先, 回头再研究 buerguo.bat @echo off :: 关闭回显 :: 说明:如有命令不明白,请使用帮助命令:命令/? .如:for/? :: 设置标题 t ...

  8. Navicat sqlserver2016 08001

    环境: Windows10(主机是联想的) SqlServer2016 Navicat11 错误: 启动SqlServer各种服务, 端口1433 没错, Navicat连接时08001错误 分析: ...

  9. LUA可变长参数 ... 三个点

    本文翻译自 LUA官方文档 When a function is called, the list of arguments is adjusted to the length of the list ...

  10. C语言stat()函数:获取文件状态

    相关函数:fstat, lstat, chmod, chown, readlink, utime 头文件:#include<sys/stat.h>  #include<uninstd ...