Linux下文件目录颜色含义
查看Linux下文件及目录颜色的命令:dircolors -p
以下为常见的文件目录颜色:
更改文件属性和权限
chgrp:修改文件所属用户组,change group的简称;
chgrp [-R] 用户组 文件名 -R进行递归持续更改,连同子目录下的所有目录和文件。
chown:修改文件所有者,change owner的简称;
chmod:改变文件的权限。
Linux文件权限
1、Linux文件属性:ls -al查看文件
drwxr-xr-- 4 root root 4096 Sep 8 14:06 123.txt
各项含义为:权限 连接数 所有者 用户组 大小 修改时间 文件名
2、文件的类型和权限
drwxr-xr--
第一位为文件类型,rwx表示所有者的权限,可读可写可执行,用户组权限可读可执行,其他人权限可读。
第一个字符的汉字:
d,表示目录
-,表示文件
l,表示链接文件,相当于Windows下的快捷方式
d,可供存储的接口设备
c,串行端口设备,如鼠标、键盘等。
3、文件名
若文件名之前多一个 . 则代表这个文件为隐藏文件
Linux目录结构
1、/proc : 虚拟文件系统,将内核与进行状态归档为文本文件。是一种内核和内核模块用来想进程(Process)发送信息的机制,可以和内核内部数据结构进行交互,获取有关进程的有用信息,/proc存在于内存之中而不是硬盘上。因为/prco主要存放由内存控制的状态信息,所有大部分这些信息的逻辑位置位于内核控制的内存。对/proc进行一次“ls -l”可看到大部分文件都是0字节,因为/proc文件系统把自己注册到虚拟文件系统(VFS),直到当VFS调用它,请求文件、目录的i-node的时候,/proc文件系统才根据内核中的信息建立相应的文件和目录
/prco的文件可以用于访问有关内核的状态、计算机的属性、正在运行的进程的状态等信息。大部分/proc中的文件和目录提示系统物理环境最新的信息。
/proc文件系统可以用于获取运行中的进程的信息。在/proc中有一些编号的子目录。每个编号的目录对应一个进行id(PID)。
大部分的/proc的文件是只读的,实际上通过/proc中可读写的文件提供了对内核的交互机制,写这些文件可以改变内核的状态。/proc/sys目录存放所有可读写的文件的目录,可以被用于改变内核的行为。
2、/etc/sysconfig/i18n 可修改系统默认的语言
用户与用户组
1、Linxu中任何一个文件都具有User、Group和Others 3中身份,每个账号可以有多个用户组的支持。
2、默认情况下,所有的用户信息包括root都记录在/etc/passwd这个文件夹中;个人的密码是记录在/etc/shadow下;Linux所有的组名都记录在/etc/group中。
切换执行等级
来源网址:http://zhidao.baidu.com/question/38854260.html
相当于系统的运行状态(如Windows的休眠、睡眠、重启、关机等)。
Linux共有7中执行等级:
run level 0:关机
run level 1:单用户,无网络服务
run level 2:多用户,默认无网络服务
run level 3:纯命令行模式
run level 4:保留,默认同3
run level 5:含有图形界面模式
run level 6:重启
关机也可以用命令:init 0
正确关机方法(shutdown、reboot、sync)
不能强制关机的原因:
1、多用户,可能有多个用户同时在主机上工作;
2、可能造成文件系统的毁损,因为来不及将数据回写到文件中,有些服务的文件会有问题。
查看系统的使用状态:
1、看谁在线:使用命令who;
2、查看网络连接状态,用命令netstat -a
3、查看后台执行程序,用命令ps -aux
注意:关机和重启只有root账号才能进行
将数据同步写入硬盘中的命令 :sync
在linux中为了加快数据的读取速度,在默认的情况下,某些已经加载内存中的数据将不会直接被写回硬盘中,而是先暂存在内存中。sync命令用来强制将内存中尚未被更新的数据写入硬盘中。shutdown、reboot、halt等命令在关机前已经调用sync命令,但保险起见可在关机前多执行几次sync命令。root用户使用sync可以更新整个系统中的数据,一般账号只是将自己的数据更新至硬盘中。
惯用的关机命令:shutdown
可以自由选择关机模式:是要关机、重启或进入单用户操作模式;
可设置关机时间:可设置立即关机或者某个特定的时间关机;
可自定义关机消息:在关机前,将自己设置的消息发送给在线用户;
仅发出警告消息,不是真的关机;shutdown -k “警告信息”
可选择是否要用fsck检查文件系统。
shutdown -h/r 时间 可直接用Ctrl+C来取消;
shutdown -h/r 时间 & 将shutdown转入后台,用shutdown -c来结束
shutdown -h 将系统的服务停掉后,立即关机。
shutdown -r 将系统的服务停掉后,立即重启
reboot、halt、poweroff
shutdown可以依据目前已启动的服务来逐次关闭各项服务后才关机(会关闭所有的服务后再关机);halt能再不理会目前系统状况下,进行硬件关机(相当于硬件关机,不理会服务)。
man
使用man查看命令使用方法,显示的查询命令后的数字含义如下(如DATA(1))
代号代表内容
1用户在shell 环境中可以操作的命令或可执行文件
2系统内核可调用的函数与工具等
3一些常用的函数与函数库,大部分为C的函数库
4设备文件的说明,通道在/dev下的文件
5配置文件或者某些文件的格式
6游戏games
7惯例与协议等,如Linux文件系统、网络协议等
8系统管理员可用的管理命令
9跟kernel有关的文件
如果要下翻可使用空格键,或Page Down和Page Up。
Home去第一页 End去最后一页
/word向下查询word字符串
?word向上查询word字符串
用/或?查询时,可用n来继续下一个查询,用N进行反向查询
man -f 命令:查询某个命令的含义
man -k 字符串:列出带有该字符串的命令
零散命令
ls -al
显示目前支持的语言:echo $LANG
修改语言:LANG=en_US 只能在当次登录中生效,注销Linux后这个执行的命令就没有用了。
date
root@zlp-virtual-machine:/zlp/zhong_liping# date --help 当前时间:2013年1月15日 21:57
Usage: date [OPTION]... [+FORMAT]
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
-d, --date=STRING display time described by STRING, not `now'
date -d或--date next-day +%Y%m%d:20130116 注意next-day后有空格
last-day,yesterday,tomorrow,today ,还有date -d ‘2 days ago’等。
-f, --file=DATEFILE like --date once for each line of DATEFILE
类似–date参数显示DATEFILE文件中的每行时间
如文件date.txt中有20121212 19901223
则date -f或--file date.txt 后可接其他参数:会按照写的参数显示日期
-r, --reference=FILE display the last modification time of FILE
显示一个文件最后被修改的时间
-R, --rfc-2822 output date and time in RFC 2822 format.
Example: Mon, 07 Aug 2006 12:34:56 -0600
--rfc-3339=TIMESPEC output date and time in RFC 3339 format.
TIMESPEC=`date', `seconds', or `ns' for
date and time to the indicated precision.
Date and time components are separated by
a single space: 2006-08-07 12:34:56-06:00
-s, --set=STRING set time described by STRING
修改系统时间,必须用root用户。系统时间是Linux由操作系统维护的。在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通道修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大概11分钟)进行的,所以如果执行date -s后马上重启,修改的是时间就有可能没有被写入CMOS中。若要确保修改的硬件时间生效,可用clock/hwclock(ubuntu下)命令。
date -s hh:mm:ss 或YY/MM/DD
-u, --utc, --universal print or set Coordinated Universal Time
显示或设置通用(UTC)时间
--help display this help and exit
--version output version information and exit
FORMAT controls the output. Interpreted sequences are:输出格式 使用如date空格+%D
%% a literal % 字符%
%a locale's abbreviated weekday name (e.g., Sun)星期的简写
%A locale's full weekday name (e.g., Sunday)星期的全写
%b locale's abbreviated month name (e.g., Jan)月的简写
%B locale's full month name (e.g., January)月的全写
%c locale's date and time (e.g., Thu Mar 3 23:05:25 2005)日期和时间
%C century; like %Y, except omit last two digits (e.g., 20)世纪
%d day of month (e.g, 01) 一月的几号
%D date; same as %m/%d/%y显示月、日、年
%e day of month, space padded; same as %_d如果是%d,只有一位的时候显示0X,%e则显示为空格X
%F full date; same as %Y-%m-%d年月日
%g last two digits of year of ISO week number (see %G)显示年的后两位
%G year of ISO week number (see %V); normally useful only with %V年份,显示4位
%h same as %b月的简写,同%b
%H hour (00..23)小时,24小时制,两位数字表示
%I hour (01..12)小时,12小时制,两位数字表示
%j day of year (001..366)一年的第几天
%k hour ( 0..23)小时,24小时制
%l hour ( 1..12)小时,12小时制
%m month (01..12)月份,两位数字表示
%M minute (00..59)分钟,两位数字表示
%n a newline创建新的一行
%N nanoseconds (000000000..999999999)纳秒
%p locale's equivalent of either AM or PM; blank if not knownAM或PM,不知道的话用空白
%P like %p, but lower case am或pm
%r locale's 12-hour clock time (e.g., 11:11:04 PM)12小时的时间,并有AM或PM
%R 24-hour hour and minute; same as %H:%M24小时的小时和分钟
%s seconds since 1970-01-01 00:00:00 UTC从1970-01-01 00:00:00计算出的秒
%S second (00..60)秒,两位数表示
%t a tab相当于tab键
%T time; same as %H:%M:%S时间,小时分钟秒
%u day of week (1..7); 1 is Monday一星期的某一天,1表示星期一
%U week number of year, with Sunday as first day of week (00..53)一年中的第几周,星期天是一周的第一天,从00周开始
%V ISO week number, with Monday as first day of week (01..53)一年中的第几周,星期一是一周的第一天,从01周开始
%w day of week (0..6); 0 is Sunday一周的第几天,0表示星期天
%W week number of year, with Monday as first day of week (00..53)一年的第几周,星期一是一周的第一天,从00周开始
%x locale's date representation (e.g., 12/31/99)日期,月/日/年
%X locale's time representation (e.g., 23:13:48)时间,小时:分钟:秒
%y last two digits of year (00..99)年份,后两位
%Y year年份,四位
%z +hhmm numeric timezone (e.g., -0400)时区
%:z +hh:mm numeric timezone (e.g., -04:00)时区
%::z +hh:mm:ss numeric time zone (e.g., -04:00:00)时区
%:::z numeric time zone with : to necessary precision (e.g., -04, +05:30)时区
%Z alphabetic time zone abbreviation (e.g., EDT)时区,如CST
By default, date pads numeric fields with zeroes.
The following optional flags may follow `%':
- (hyphen) do not pad the field如%z为+0800,则%-z为+800
_ (underscore) pad with spaces用空格来填充,如%_d
0 (zero) pad with zeros用0来填充
^ use upper case if possible
# use opposite case if possible
date网上资料
来源网址:http://dadloveu.blog.51cto.com/715500/566129
http://dadloveu.blog.51cto.com/715500/566129
linux中用shell获取昨天、明天或多天前的日期:
在Linux中对mandate-d 参数说的比较模糊,以下举例进一步说明:
# -d, --date=STRING display time described by STRING, not `now’
[root@Gman root]#date-d next-day +%Y%m%d #明天日期
20091024
[root@Gman root]#date-d last-day +%Y%m%d #昨天日期
20091022
[root@Gman root]#date-d yesterday +%Y%m%d #昨天日期
20091022
[root@Gman root]#date-d tomorrow +%Y%m%d # 明天日期
20091024
[root@Gman root]#date-d last-month +%Y%m #上个月日期
200909
[root@Gman root]#date-d next-month +%Y%m #下个月日期
200911
[root@Gman root]#date-d next-year +%Y #明年日期
2010
DATE=$(date+%Y%m%d --date’2 days ago’) #获取昨天或多天前的日期
名称 :date
使用权限 : 所有使用者
使用方式 :date[-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明 :date能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
时间方面 :
% : 印出
% %n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面 :
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期和时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],
其中 MM 为月份,
DD 为日,
hh 为小时,
mm 为分钟,
CC 为年份前两位数字,
YY 为年份后两位数字,
ss 为秒数
把计 :
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号
例子 :
显示时间后跳行,再显示目前日期 :date+%T%n%D
显示月份和日数 :date+%B %d
显示日期和设定时间(12:34:56) :date--date12:34:56
设置系统当前时间(12:34:56):date--s 12:34:56
注意 : 当你不希望出现无意义的 0 时(比如说 1999/03/07),则能在标记中插入 - 符号,比如说date+%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。 当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
ntp时间同步
linux系统下默认安装了ntp服务,手动进行ntp同步如下
ntpdate ntp1.nl.net
当然,也能指定其他的ntp服务器
-------------------------------------------------------------------
扩展功能
date工具可以完成更多的工作,不仅仅只是打印出当前的系统日期。您可以使用它来得到给定的日期究竟是星期几,并得到相对于当前日期的相对日期。了解某一天是星期几
GNU 对date命令的另一个扩展是 -d 选项,当您的桌上没有日历表时(UNIX 用户不需要日历表),该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期究竟是星期几:
$date-d "nov 22"
Wed Nov 22 00:00:00 EST 2006
$
在本示例中,您可以看到今年的 11 月 22 日是星期三。
所以,假设在 11 月 22 日召开一个重大的会议,您可以立即了解到这一天是星期三,而这一天您将赶到驻地办公室。
获得相对日期
d 选项还可以告诉您,相对于 当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为 -d 选项的参数,就可以完成这项任务。
例如,您需要了解两星期以后的日期。如果您处于 Shell 提示符处,那么可以迅速地得到答案:
$date-d ’2 weeks’
关于使用该命令,还有其他一些重要的方法。使用 next/last指令,您可以得到以后的星期几是哪一天:
$date-d ’next monday’ (下周一的日期)
$date-d next-day +%Y%m%d(明天的日期)或者:date-d tomorrow +%Y%m%d
$date-d last-day +%Y%m%d(昨天的日期) 或者:date-d yesterday +%Y%m%d
$date-d last-month +%Y%m(上个月是几月)
$date-d next-month +%Y%m(下个月是几月)
使用 ago 指令,您可以得到过去的日期:
$date-d ’30 days ago’ (30天前的日期)
您可以使用负数以得到相反的日期:
$date-d ’dec 14 -2 weeks’ (相对:dec 14这个日期的两周前的日期)
$date-d ’-100 days’ (100天以前的日期)
$date-d ’50 days’(50天后的日期)
这个技巧非常有用,它可以根据将来的日期为自己设置提醒,可能是在脚本或 Shell 启动文件中,如下所示:
DAY=`date-d ’2 weeks’ +"%b %d"`
if test "`echo $DAY`" = "Aug 16"; then echo ’Product launch is now two weeks away!’; fi
执行命令格式的说明
zlp@zlp-virtual-machine:~$command [-Options] parameter1 parameter2...
命令 选项 参数1 参数2
说明:
一行命令中第一个输入的部分绝对是“命令(Command)”或“可执行文件”;
command为命令的名称;
中括号[]并不存在于实际的命令中,而加入参数设置时,通常参数前会带 - 号;有事会使用参数的完整全名,则参数钱带有 -- 符号,如--help;
parameter为衣服在option后面的参数或者command的参数。
命令,选项,参数等中间以空格来区分,不论空几个shell(命令行模式登录后取得的程序称为shell)都是为空一格;
按下Enter键后,该命令立即执行,Enter代表一行命令的开始启动;
命令太长的时候可以使用反斜杠 \ 来转义Enter字符,是命令连续到下一行;(反斜杠后立即接特殊字符才能转义)
在Linux系统中,英文大小写字母是不一样的。
命令之后的参数除前面带有 - 号外,某些特殊情况下,参数前面会有带 + 的情况。如date命令。
命令行
zlp@zlp-virtual-machine:~$ 最前面的zlp是当前登录的用户,@之后是主机名,~表示当前所在的目录,$是提示符。
~符号代表的是用户的主文件夹,针对不同的用户是个变量,如root的主文件夹是/root,用户zhongliping的主文件夹是/home/zhongliping。
在Linux中默认root的提示符为#,其他用户提示符为$。
使用exit注销用户。
X Window与命令行模式
1、重启X Window的方法:a、注销重新登录;b、按下Alt+Ctrl+Backspace;
2、X Window与命令行互切
Ubuntu:Cthl+Alt+Shift+[F1-F6]
其他系统可能是:Cthl+Alt+[F1-F6]
注意:如果在命令行界面要切换的时候,只需Alt+[F1-F7],不需要Ctrl,F7是到图形界面
如果之前打开了图形界面,则在命令行Alt+F7回到图形界面;如果图形界面没打开,则输入命令startx
3、修改启动方式
Linux默认启动后进入X Windos,但可以修改参数直接进入命令行界面,这个实在系统初始化时进行的。对于大部分Linux系统,初始化使用init进行,/etc/inittab为其配置文件。
不明白的地方
2012-12-18:
1、service gdm stop 提示stop instance
2、如何关闭X Window,然后使用startx启动X
内核
内核是一个操作系统的核心,是基于硬件的第一层软件扩充,提示操作系统最基本的功能,是操作系统工作的基础,负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备却东程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对他们进行保护。通常把这一部分称之为操作系统的内核。
文件系统
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结果,即在磁盘上组织文件的方法,负责管理和存储文件信息的软件机构。文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需的数据结构。
从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
x86结构及CPU
来源网址:http://zhidao.baidu.com/question/242711294.html
1、x86架构:最早的Intel发展出来的CPU代号为8086,因此这种架构的CPU被称为x86架构。x86指的是特定微处理器执行的一些计算机语言指令集,定义了芯片的基本使用规则。x86是一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,x是对所有*86系统的简单通配符定义。
2、CPU 32位和64位:
所谓的32位与64位实际上是指计算机的寻址空间大小,也就是在一个时钟频率动作下寻找内存做出多少位的计算动作。2的5次方是32,而6次方则是64,对于采用二进制的计算机运算来说,寻址位数增加了,性能就能大幅度跃升。32和64位操作系统是针对的CPU设计。
一般来讲32位的CPU对于我们来讲是最理性的CPU,对于软件开发来讲足够了。
但是2的32次方 = 4294967296bit = 4G左右
很显然32位CPU只有4G左右的内存寻址空间,对于一些服务器来讲4G的内存的远远不够的了。我们需要更加大的内存寻址空间的话就需要对CPU进升级。64位CPU就这样诞生了。64位CPU的内存寻址空间是多少你算算看!呵呵,
2的64次方(理论上)。
64位的操作系统针对64位CPU设计的,增加了一些64位的指令,但还是和32兼容的。对于我们普通用户来讲64位系统意义不大。
寻址空间一般指的是CPU对于内存寻址的能力,就是能最多用到多少内存的一个问题。数据在存储器(RAM)中存放是有规律的,CPU在运算的时候需要把数据提取出来就需要知道数据在哪里,这时候就需要挨家挨户的找,这个就叫寻址,但如果地址太多超出了CPU的能力范围,CPU就无法找到数据了。CPU最大能查到多大方位的地址叫寻址能力,CPU的寻址能力以字节为单位,如32位寻址的CPU可以寻址2的32次方大小的地址也就是4G,这也是为什么32位的CPU最大能搭配4G内存的原因,再多的话CPU就找不到了。
32位的意思可以管理的内存空间达到4G是没错,实际能用的内存只能3G左右(XP系统),这是由于还有其他的一部分内存空间要用于输入输出的管理。
3、句柄
句柄指一个对象的标识,而指针是一个对象的首地址句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是windows用来标志应用程序中建立的或是使用的唯一整数。