1. 程式人生 > >linux 基礎命令(二)

linux 基礎命令(二)

linux 命令

今天繼續和大家分享(承接上一章)

(40)vim +文件名(編輯文件,如果文件不存在也是可以編輯的,但是必須保存,單獨使用vim是打開vim的使用手冊,裏面一樣可以編輯

文字,但是保存退出前要這麽寫shift+:w(空格)/路徑/文件名)

[root@localhost boke]# cat file
2
o3
2
o3
[root@localhost boke]# vim no(我在裏面直接shift+:,q)
[root@localhost boke]# cat no
cat: no: No such file or directory
[root@localhost boke]# vim no(我在裏面直接shift+:wq)
[root@localhost boke]# cat no
[root@localhost boke]# 

(41)grep -v +關鍵字(過濾出不包含關鍵字的行)
其他用法:這裏講的不錯(http://blog.51cto.com/silgon/204579)
(42)file + 目錄/文件名(查看文件屬性)

[root@localhost boke]# ls
a  a1b  b  c  file  file1  no  vim
[root@localhost boke]# file a
a: directory
[root@localhost boke]# file no 
no: empty
[root@localhost boke]# file vim 
vim: ASCII text
[root@localhost boke]# 

(43)strings +data類型文件(查看數據類型文件,格式不怎麽好看)

[root@localhost boke]# file /var/log/wtmp 
/var/log/wtmp: data
[root@localhost boke]# cat /var/log/wtmp (這種查看會有亂碼)
~~~reboot2.6.32-431.el6.x86_64 ??5~~~runlevel2.6.32-431.el6.x86_64 ?155~~~runlevel2.6.32-431.el6.x86_64p°?*~,.tty33LOGIN,.p

°?..tty44LOGIN..p°?*.tty22LOGIN*.p°?0.tty55LOGIN0.p°?8.tty66LOGIN8.p°??tty7:0ding:0??$+?pts/0/0ding:0.0p?ts/0/0ding
                                                                                                                       ?

?(§apts/4ts/4ding192.168.1.1387?d 
j   pts/1柔Z0       pts/2??:       0apts/3Z-?1Σpts/1ts/1ding192.168.1.138-6?3§apts/4{J? 

pts/2ts/2ding192.168.1.138K?Σpts/K??ppts/1ts/1ding192.168.1.138                                                          

                                                                                                   tty1:0ding:0,?? 
           ?pts/1/1ding:0.05???fpts/2ts/2ding192.168.1.138(pts/0(?W腮

pts/0ts/0ding192.168.1.138.??fpts/2r?npts/0rfpts/0ts/0ding192.168.1.138+?b/([root@localhost boke]# XshellXshellX
-bash: XshellXshellX: command not found
[root@localhost boke]# strings /var/log/wtmp 
reboot
2.6.32-431.el6.x86_64
runlevel
2.6.32-431.el6.x86_64
runlevel
2.6.32-431.el6.x86_64
tty3
LOGIN

(44)shutdown (關機,重啟命令)
-h now(立即關機)
-r now(立即重啟)
(45)poweroff,reboot(也是關機,重啟)
(46) hostname(查看主機名)

[root@localhost boke]# hostname 
localhost.localdomain

(47)who(查看當前那些用戶在線上)

[root@localhost boke]# who
ding     pts/0        2018-04-19 13:39 (192.168.1.138)
ding     tty1         2018-04-19 10:30 (:0)
ding     pts/1        2018-04-19 10:30 (:0.0)

(48)ll --full-time(顯示詳細時間)
[root@localhost boke]# ll --full-time

total 24
drwxr-xr-x. 3 root root 4096 2018-04-18 13:03:57.061996611 +0800 a
-rw-r--r--. 1 root root    0 2018-04-18 12:58:46.195998792 +0800 a1b
drwxr-xr-x. 2 root root 4096 2018-04-18 13:02:36.033996833 +0800 b

(49)mkdir與touch連用(例子說明)

[root@localhost boke]# mkdir {1..3}
[root@localhost boke]# touch {1..3}/lizi{1..3}

[root@localhost boke]# tree .
.
├── 1
│?? ├── lizi1
│?? ├── lizi2
│?? └── lizi3
├── 2
│?? ├── lizi1
│?? ├── lizi2
│?? └── lizi3
├── 3
│?? ├── lizi1
│?? ├── lizi2
│?? └── lizi3

(50)type,man,--help,info,help,/usr/share/doc(全部是幫助命令)
type:判斷命令是外部的還是內部的
help:內部命令使用方法
--help:外部命令使用方法
man:命令使用方法,配置文件(man一共有8個章節,默認第一章節,要看配置文件使用man

5 +文件/一般是存放在 /usr/share/doc)
/usr/share/doc:存放軟件幫助文檔
info:方法,配置文件(太詳細。。。)

(51)date(時間,時間間隔太大的話有可能會造成登錄不上機器)
-s(修改時間,"年月日+分時秒"一起修改必須加上雙引號)
(52)tzselect,timedatectl(6系統查看修改時區,7系統查看修改時區。這些都屬於系統時間)
(53)hwclock(硬件時間)
(54)hwclock --hctosys(硬件時間同步系統時間)hwclock --systohc(系統時間同步硬件時間)
(55)cal(查看日歷,後面可以輸入月份/年份)



用戶和組

      1.相關文件
    (1)passwd-----用戶信息
    (2)shadow----用戶密碼策略
    (3)gshadow------組密碼策略
    (4)default/useradd------創建用戶時的一些參數
    (5)group-----組的信息
    (6)shells-----當前支持的bash(命令解釋器)
    (7)skel------家目錄默認參考文件
    (8)login.defs-----創建用戶時密碼策略,權限等默認參數
    *以上文件全部在/etc目錄下

[root@localhost boke]# vim /etc/passwd

root:x:0:0:root:/root:/bin/bash
以上以:作分隔本別代表(用戶,密碼占位符,uid--用戶唯一標識符,gid---組唯一標識符,用戶說明信息,用戶家目錄,用戶使用的

shell)


[root@localhost boke]# vim /etc/shadow

root:$1$Aj.ZRFcN$mt8l5V.YExG0HtFPb7iWo/:17632:0:99999:7:::
以上以:作分隔本別代表(用戶,加密後的密碼,最近一次修改密碼的時間---從1970-1-1開始往後多少天,密碼最短有效期,密碼最長有

效期,密碼過期的前幾天警告,密碼失效日期寬限幾天給你修改,賬戶失效日期,保留位)


[root@localhost boke]# vim /etc/group

root:x:0:
以上以:作分隔本別代表(組名,組密碼占位符,gid,該組的成員---以,作為分隔)


[root@localhost boke]# vim /etc/gshadow

bin:::bin,daemon
以上以:作分隔本別代表(組名,組密碼,組的管理員,該組成員!!!代表無效)

uid類型範圍
6 系統 7系統
超級用戶 0 0
系統用戶 1-499 201-999
普通用戶 500-60000 1000-60000
65535 最大支持數(這裏強調下,65535是個數,不是範圍!也就是說你創建用戶可以給他指定65536!!)


(1)useradd,groupadd +用戶名+選項(創建用戶/組)
-u(指定uid)
-g(指定gid或組名--默認組)
-G(指定附屬組)
-d(指定家目錄)
-s(指定shell)
(2)id + 用戶(查看用戶信息)
(3)passwd + 用戶名(給用戶添加密碼,用戶初創建root要給密碼才能登陸,普通用戶自己改密碼要知道原來的密碼,還要符合一定規

則)
(4)echo 密碼 |passwd --stdin 用戶(批量給用戶設置密碼,就是快了一些,但是密碼明文不安全)
(5)group +用戶名(用戶屬於那些組)
(6)usermod +選項+參數(6系統裏面只能這樣,7系統無所謂,修改現有的用戶)
-u (修改uid)
-g(修稿默認組)
-G(指定附屬組,多個用,分隔)
-d(修改家目錄)
-s(修改shell)
-aG(添加附屬組,不覆蓋原來的)
(7)groupmod -g gid 組名(修改組的gid)
(8)groupadd -n 新組名 老組名 (修改組名)
(9)gpasswd 組名(修改組密碼)
(10)userdel -r 用戶(刪除用戶,如果不加-r,郵件,組都還存在)
(11)groupdel 組名(刪除組,如果組裏面包含著用戶,那時不可以刪除的,你得把用戶移出去或刪除才行)
(12)chage + 用戶(向導方式修改用戶密碼策略)
(13)chsh + 用戶(修改用戶shell)



用戶切換
su - + 用戶(標準切換用的是被切換用戶的環境變量)
su +用戶(這個理論上講應該是當前用戶的變量,但是我切換過去是可以用的被切換用戶變量)
su -l+用戶(與su - 一樣)
su -m + 用戶(使用當前變量,這裏是正確的)
su -c 命令 +用戶(接指令)
(當前用戶變量可以用env查看,全部變量用set查看)(除了root,su到任何用戶都需要密碼:這樣不×××全)


sudo(相較於su,安全,方便管理)
有了sudo普通用戶在不切換到root用戶也可以執行一些root可執行的事情,具體能執行多少事情看root在他的控制文件裏怎麽寫的,接來

下去看看

[root@localhost ~]# visudo

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

以上從root開始介紹(那個用戶 在哪裏 以誰的身份 執行什麽命令--命令必須是絕對路徑---絕對路徑可以用which+命令查看。命

令前面有!代表不執行)

這裏我添加這條

root    ALL=(ALL)       ALL
tom     ALL=(root)      /usr/sbin/useradd

[root@localhost ~]# su -m tom
bash: /root/.bashrc: Permission denied
bash-4.1$ sudo useradd haha

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for tom:
bash-4.1$ if haha

^C
bash-4.1$ id haha
uid=503(haha) gid=503(haha) groups=503(haha)
sudo -u 用戶 +命令(一般是root給你其他人身份時使用)
sudo -k (清楚密碼緩存)

linux 基礎命令(二)